วันจันทร์ที่ 4 เมษายน พ.ศ. 2554

Ping Sweep

การ Ping Sweeps

เป็นเทคนิคที่นิยมใช้กันโดยทำการตรวจสอบหมายเลข IP Address เป็นช่วงซึ่งเป็นการส่ง ICMP Echo (Type 8)และตอบกลับด้วย ICMP ECHO_REPLY (Type 0) ซึ่งถ้ากำหนดเป็นช่วงมากก็จะเสียเวลา การใช้จะไม่ตรวจสอบหลายรอบซึ่งจะใช้เพียงครั้งเดียวเช่น Gping หรือ fping


การ Ping จะวิ่งไปสู่ช่วงของหมายเลขที่ใช้ หมายเลขที่เป็น Network ID กับ Broadcast ID จะไม่ใช้


Pinger เป็น Ping sweep ที่อยู่ในรูปแบบกราฟฟิก


คำสั่ง nmap เป็นวิธีการตรวจสอบ ซึ่งสามารถกำหนดพอร์ตที่ต้องการได้


ตัวอย่าง nmapnt –sP –PT80 192.168.1.0/24 ถ้าต้องการลองสามารถตรวจสอบพอร์ตอื่นๆได้ เช่น POP3 (110), IMAP4(143), AUTH(113), SMTP(25) เป็นต้น


คำสั่ง Hping เป็นคำสั่งที่ใช้ตรวจสอบซึ่งสามารถตรวจสอบแฟลก (Flag) ต่างๆได้ ซึ่งมีการใช้งานคล้ายๆกับ Traceroute โดยมีตัวอย่างดังนี้


Hping 192.168.1.2 –S –p 80 –f


โดยคำสั่งนี้จะตอบกลับด้วย flags=SA คือ SYN กับ ACK ดูเพิ่มเติมได้จากเว็บ www.kyuzz.org/antirez


คำสั่ง icmpenum ซึ่งเป็นการตรวจสอบเครื่องที่ทำงานอยู่โดยใช้ ICMP ECHO


ตัวอย่าง icmpenum –i2 –c 192.168.1.0


ข้อ ดีการใช้คือจะส่งแพ็ตเกตปลอมเพื่อป้องกันการตรวจสอบว่าส่งมาจากที่ใด ซึ่งใช้ –s เพื่อระบุหมายเลขที่กำหนดปลอม และ –p เพื่อดักจับแพ็ตเกตที่ตอบสนองกลับ




วิธีการป้องกัน Ping Sweep


ทำได้สองวิธี

   1. วิธีแรกคือตรวจจับ เช่นโปรแกรม Network-based Intrusion Detection System: IDS) เช่น Network Flight Recorder (NFR) และ Snort (http://www.snort.org/)
      ถ้าเป็นบน Windows ใช้ Genius 3.1 ซึ่งเข้าดูใน http://www.indiesoft.com/
      หรือใช้ตรวจสอบพอร์ตที่สแกนด้วย BlackICE จาก www.networkice.com
   2. การป้องกันเราสามารถตรวจสอบ และป้องกันเข้ามาได้โดยตัวอย่างที่ตรวจสอบคือ ICMP ชนิดที่เป็น ECHO จะใช้อยู่ประจำเราอาจจะทำการปิดไว้เพื่อป้องกัน Denial of Service เช่น Smurf หรือพวกที่เข้ามาโดยใช้ประตูหลังเช่น Ioki




ICMP Queries


เป็นการใช้โปรแกรม Ping sweep และตรวจสอบเวลาที่ใช้ ซึ่งทำให้เข้าใจถึงเครือข่ายปลายทาง


การตรวจสอบเวลาจากเราท์เตอร์ใช้คำสั่ง icmpquery –t 192.168.1.1 หรือตรวจสอบซับเน็ตด้วย icmpquery –m 192.168.1.1




การป้องกัน ICMP Query


คือป้องกันรหัสของ ICMP type Timestamp (ที่เป็นเลข 13) และ Address Mask (รหัส 17) ใช้ Snort หรือ NIDS




การตรวจสอบพอร์ต


Port scanning เป็นการต่อเชื่อมเข้าที่ TCP port หรือ UDP Port ดูว่าเครื่องทำงานอยู่หรือไม่ ซึ่งเครื่องปลายทางต้องอยู่ในภาวะ Listening


ซึ่ง ผู้ตรวจสอบสามารถที่จะตรวจสอบเครื่องที่ต่ออินเตอร์เน็ตได้ โดยดูจากพอร์ตที่เปิดอยู่ ซึ่งสามารถวิเคราะห์ได้ทั้ง UDP/TCP, บริการ, และระบบปฏิบัติการ


ประเภทของการสแกน


ในโปรแกรม Nmap ของ Fyodor ดูได้


-         TCP connect scan เป็นการเปิดการเชื่อมต่อด้วย TCP 3 ครั้งในการติดต่อคือ SYN, SYN/ACK, และ ACK


-         TCP SYN scan เป็นการเปิดเพียงครึ่งเพราะเซตแฟลก SYN ไว้เป็น 1 เครื่องจะตอบกลับด้วย SYN/ACK เป็นหนึ่งซึ่งก็พอสำหรับการทราบว่าบริการเครื่องเปิดอยู่ แต่ถ้าเครื่องไม่เปิดจะได้รับตอบกลับมาเป็น TCP RST/ACK


-         TCP FIN scan เป็นการส่ง FIN เป็น 1 ไปยังเครื่อง ซึ่งถ้าพัฒนาตามมาตรฐาน RFC 793 ก็จะส่ง TCP RST ซึ่งแสดงว่าเครื่องไม่ได้เปิดให้บริการ


-         TCP Xmas Tree scan เป็นการส่ง TCP FIN, URG และ PUSH ไปพอร์ตเป้าหมาย ซึ่งเครื่องปลายทางจะส่ง TCP RST ทุกพอร์ตที่ปิดกลับมา


-         TCP null scan ใช้ส่งแฟลกเป็น 0 เครื่องจะส่ง TCP RST ของทุกๆพอร์ตที่ปิดอยู่กลับมา


-         TCP ACK scan ใช้ค้นหา rule และ policy ต่างๆที่เซตไว้ที่ไฟร์วอลล์ ถ้าไฟร์วอลล์ที่ฉลาดจะกรองได้ด้วย


-         TCP windows scan เป็นการตรวจสอบพอร์ตใดที่กรองไว้ไม่ให้เข้าใช้ และได้รับการอนุญาต โดยระบบจะแจ้งค่า TCP Windows Size


-         TCP RPC scan ใช้เฉพาะเครื่องที่เป็นยูนิกซ์ ตรวจสอบว่ามี RPC services ใดบ้าง


-         UDP scan ตรวจสอบเครื่องปลายทางด้วย ICMP type PORT UNREACHABLE ซึ่งพอร์ตที่ปิดอยู่จะตรงกันข้าม




การค้นหาบริการทั้งหมดบน TCP/UDP


Strobe


เป็น เครื่องมือที่ใช้ในการสแกนพอร์ตโดยดูได้จาก (http://ftp://ftp.FreeBSD.org/pub/FreeBSD/ports.distfiles/strobe-1.06.tgz) เป็นเครื่องมือที่ทำงานได้เร็ว และสามารถตรวจสอบบริการต่างๆได้ ซึ่งตรวจสอบได้เฉพาะ TCP เท่านั้น

UDP_SCAN

เนื่องจาก Strobe ตรวจสอบได้เฉพาะ TCP port จึงมีเครื่องมือชุด SATAN (Security Administrator Tool for Analyzing Networks) ที่พัฒนาโดย Dan Framer และ Wietse Venema ในปี 1995 ซึ่งตัวใหม่ชื่อ SAINT ได้พัฒนาโดยดูจาก http://wwdsilx.wwdsi.com ซึ่งตรวจสอบ UDP scan ได้


การใช้ UDP_SCAN ถูกตรวจจับได้โดยบรรดา IDS (Intrusion Detection System) และไฟร์วอลล์ต่างๆที่ระบบจะแจ้งให้กลับผู้ดูแลทราบโดยทั่วไปค้นหาในพอร์ต มาตรฐาน

Netcat

เป็นเครื่องมือที่ถูกพัฒนาโดย Hobbit (hobbit@avian.org) ซึ่งสแกนแทบทุกเทคนิค เหมือนดาบสองคมโดยใช้ดังนี้


Nc –v –z –w2 192.168.1.1 1-140


เป็นการตรวจสอบ TCP/UDP ให้ใช้ –u และ –w2 เป็นการระบุเวลาในการรอคอยมาที่สุด


Network Mapper (nmap)


ดูได้จาก http://www.insecure.org/nmap) ซึ่งสามารถตรวจสอบได้ทั้งสอง ดูความช่วยเหลือจาก nmap –h


ตัวอย่างการใช้ nmap –sS 192.168.1.1


การ ใช้ Nmap นอกจากตรวจสอบแล้วยังสามารถที่ส่งแพ็คเก็ตปลอมได้ด้วย –D ซึ่งทำให้ยากต่อการติดตาม การปลอมหมายเลข IP Address ต้องเป็นที่อยู่ของเครื่อง Server จริงมิฉะนั้นจะกลายเป็น SYN Flood


ตัวอย่างการใช้ nmap –sS 192.168.1.1 –D 10.1.1.1


การ ตรวจสอบ ident scanning, Ident ดูใน RFC-1431 เป็นการเข้าไปที่พอร์ต 113 เพื่อค้นหาผู้ใช้ TCP connection ซึ่งจะเป็นเจ้าของระบบทำงานอยู่


ตัวอย่างการใช้ nmap –I 192.168.1.10


ซึ่งการที่ผู้เจาะระบบทราบข้อมูลตรงนี้ถ้ามีแอพพลิเคชั่นในการเข้าครอบครองสิทธิเป็นอันว่าเสร็จเรียบร้อยโรงเรียนแฮกเกอร์



FTP bounce scanning


เป็น การใช้ข้อบกพร่องของ FTP (RFC 959) ซึ่งเป็นวิธีการเปิดการเชื่อมต่อไปยัง FTP Server โดยใช้ FTP ที่รองรับ Proxy connection และยังใช้เทคนิคนี้ในการส่งจดหมายปลอมไปเพื่อป้องกันการตามรอย และโจมตี FTP ให้ดิสก์เต็ม หลีกเลี่ยงจากไฟร์วอลล์ ซึ่ง Nmap รองรับในการใช้ –b แต่ทำงานได้บางเงื่อนไขเท่านั้น


-         FTP ต้องมีไดเรคทรอรี่ที่อ่าน และเขียนข้อมูลได้


-         FTP Server ต้องยอมให้ Nmap ป้อนหมายเลขพอร์ตปลอมเข้าไปด้วยคำสั่ง PORT


ใน FTP หลังๆจะป้องกันไว้แล้ว




การ ใช้ Strobe จะได้รู้จักบริการที่เปิดอยู่กับเครื่อง ซึ่งถ้าดูบริการที่ทำงานอยู่ portmapper (หมายเลข 111), Berkeley R Service (พอร์ต 512-514), NFS (2049) หรือสูงกว่าเราคาดเดาได้ว่าเป็น Sun Solaris เพราะโดยทั่วไป Sun จะใช้บริการ RPC ที่พอร์ต 327xx ขึ้นไป


ถ้าตรวจสอบพบ Port 139 เป็น Windows 9x, Port 135, 139 เป็น Windows NT




เครื่องมือที่ใช้ตรวจสอบบน Windows-Based

NetScan Tools Pro 2000

เป็นเครื่องมือที่มีความสามารถรอบด้านทั้ง nslookup, dig, axfr, whois, ping sweeps, NetBIOS Name table scan, SNMP walks และอื่นๆ


การตรวจสอบพอร์ตทำได้ทั้ง TCP/UDP ปัจจุบันมีเวอร์ชั่น 4.0x แล้ว

SuperScan

เป็นเครื่องมือที่ใช้ตรวจสอบ TCP Port มีความยืดหยุ่น และฟรี โดยสามารถที่จะระบุหมายเลข IP Address ที่ต้องการได้

NTOScanner

เข้าไปที่ http://www.ntobjectives.com เป็นเครื่องมือที่รวดเร็ว และใช้ง่าย มีการดัมพ์นำผลลัพธ์มาแสดง

WinSacn

พัฒนาโดย Sean Mathias หรือ http://www.prosolve.com สามารถใช้คำสั่งในการทำงานได้ด้วย Scan.exe

IpEye

มาจาก http://ntsecurity.nu ซึ่งจะตรวจสอบพอร์ตด้วย Source port scanning ใช้ได้เฉพาะ Windows 2000 เท่านั้นและตรวจสอบทีละเครื่อง


ตัวอย่าง ipeye.exe 192.168.234.110 –syn –p 1 1023 –sp 20


มี การหลบเลี่ยงด้วยการใช้พอร์ต 20 และวิ่งเข้าไปในเครือข่ายภายใน ซึ่งไฟร์วอลล์คิดว่าอนุญาต แล้วก็ให้เข้าไป ซึ่งใช้ไม่ได้ง่ายกับเครือข่ายที่เป็น NAT (Network Address Translation)

WUPS

Windows UDP Port Scanner (WUPS) เข้าไปใน http://ntsecurity.nu ซึ่งมีการแสดงแบบกราฟฟิก และสามารถตรวจสอบพอร์ต UDP ได้อย่างรวดเร็ว




การป้องกันการตรวจสอบพอร์ต


วิธีพื้นฐานที่ใช้กันคือการใช้ Network-based IDS อย่างเช่น NFR หรือใช้ snort เพื่อตรวจจับการสแกนพอร์ตได้


ใน ยูนิกซ์มี scanlogd (http://www.openwall.com/scanlogd) จาก Solar Designer และ Psioni PortSentry จาก Abacus (http://www.psionic.com/abaus/) หรือการกำหนดกฎในไฟล์ของPortSentry  ซึ่งจะแม็บในแต่ละระบบที่แตกต่างกัน ซึ่งในซอฟต์แวร์นี้ทำงานภายใต้ Unix


ในเอกสารการป้องกันแฮกเกอร์ที่สแกนพอร์ตไปที่ http://www.openwall.com/scanlogd/P53-13.gz


Psionic Logcheck (http://www.psionic.com/abacus/logcheck) เข้ามาใช้ระบบแจ้งเตือนหากมีการเข้ามาเกินกว่าค่าที่กำหนด หรือใช้โปรแกรมวิเคราะห์เช่น Lance Spitzner (http://www.enteract.com/~lspitz/intrusion.html) ที่เป็นโปรแกรมเสริมใน Firewall-1 ชื่อ alert.sh สามารถตรวจสอบการสแกนพอร์ตได้


สำหรับระบบปฏิบัติการ Windows ก็มี BlackICE และ Zone Alarm ซึ่งเป็นทั้งไฟล์วอลล์ และ IDS


การป้องกัน


ถึงแม้ว่าจะป้องกันการตรวจสอบได้ยากที่ตรวจสอบ แต่สิ่งทำได้คือการผ่านบริการเท่าที่จำเป็น




การตรวจสอบประเภทของระบบปฏิบัติการ


เทคนิค ที่ทราบมีอยู่มากมายคือการค้นหา TCP/UDP port ซึ่งเมื่อทราบบริการแล้วก็ตรวจสอบข้อบกพร่องของระบบปฏิบัติการ ซึ่งเครื่องมือที่ใช้ได้แก่ nmap และ queso



Active Stack Fingerprinting


ก่อนเข้าสู่ nmap และ queso ต้องเข้าใช้ความหมายของ Active Stack fingerprint (ASF) ก่อน


ASF เป็นการตรวจสอบประเภทของระบบปฏิบัติการที่ใช้โดยจะดูจากไดรเวอร์ของโปรโตคอล


ซึ่งระบบแต่ละตัวจะมีการทำงานเป็นของตนเอง ซึ่งระบบจะหาความแตกต่างในแต่ละวิธี


-         FIN Probe


-         Bogus Flag prove


-         Initial Sequence Number (ISN) sampling


-         Don’t fragment bit monitoring


-         TCP initial window size


-         ACK value


-         ICMP error message quenching


-         ICMP message quoting


-         ICMP error message-echoing integrity


-         Type of Service (TOS)


-         Fragmentation handling


-         TCP options


ซึ่ง nmap –o 192.168.1.10 จะตรวจสอบและพิจารณาได้ OS ที่ควรจะเป็น


Queso เป็นเครื่องมือแรกๆที่ได้เปิดตัวใน http://www.apostols.org/projectz และได้ถูกนำไปใส่ใน nmap คำสั่งสามารถตรวจสอบได้ทั้งพอร์ต 80 และพอร์ตอื่นๆ




มาตรการป้องกันการตรวจจับใน ASF


การตรวจจับ มีเครื่องมือต่างๆที่ใช้ตรวจสอบได้แต่ไม่บอกถึงว่าถูกตรวจสอบด้วยเทคนิคใด


การป้องกัน สามารถเขียนป้องกันเองได้ โดยใช้ TCP_DROP_SYSFIN เพื่อให้ระบบไม่สนต่อการส่ง SYN หรือ FIN โดย nmap


ใช้ Proxy หรือ Firewall ในการบล็อกเพื่อป้อนกันไม่ให้เข้าใช้โดยง่าย




Passive Operating System Identification (POSI)


เราได้รู้จัก ASF โดยใช้ nmap และ queso แล้วมาดูการตรวจสอบแบบ POSI ซึ่งตรวจสอบยาก

Passive Stack Fingerprinting (PSF)

เป็น เทคนิคคล้าย ASF ซึ่งแฮกเกอร์จะเฝ้าดูอย่างเงียบกับการจราจรที่เกิดขึ้น โดยดูได้จากเอกสาร http://www.enteract5.com/~lspitz/finger.html ได้มีเครื่องมือ siphone ที่ตรวจสอบแบบ Passive ซึ่งดูได้จาก http://www.subterrain.net/projects/siphon

Passive Signatures

เราตรวจสอบค่าต่างๆดังนี้


-         Time To Live (TTL) จะตรวจสอบพบว่าค่าไม่เท่ากันในแต่ละระบบ


-         Window Size ซึ่งค่าดีฟอลท์จะต่างกัน


-         DF (Don’t fragment bit) ดูว่ามีการกำหนด DF bit หรือไม่ เพราะบางระบบมักจะเซตค่านี้เป็น 1 แต่บางระบบกำหนดเป็น 0


-         Type of Service ดูว่า TOS กำหนดไว้เป็นอะไร


ซึ่งค่าต่างๆเหล่านี้ให้ดูหลายๆอย่างประกอบกัน และเครื่องมือ siphon ก็อาศัยหลักการณ์เดียวกันนี้ด้วย


เช่นเราไป telnet และใช้ snort ในการตรวจสอบซึ่งจะพบค่า Seq, Ack, Win, TCP Option แล้วไปเปรียบเทียบกับไฟล์


หรือใช้ siphon –v –I x10 –o fingerprint.out แล้วไปตรวจสอบ


การป้องกันใช้หลักการเดียวกับ ASF




เครื่องมือการค้นหา และสำรวจอัตโนมัติ


Cheops (http://www.marko.net/cheops) เป็นเครื่องมือที่ใช้ตรวจสอบค่าต่างๆไว้ในแพ็ตเกตเดียวทั้ง queso และการตรวจสอบพอร์ต


Tkined เป็นเครื่องมือใน Scotty หาได้จาก http://wwwhome.cs.utwente.nl/~schoenw/scotty ซึ่งพัฒนารวมกัน และวิเคราะห์เครือข่ายเข้าด้วยกันแสดงเป็นกราฟฟิก


คลิปสอนการใช้งาน
ping sweep

กด + Thanks! แทนคำขอบคุณ ก็ดีใจแล้วครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น