หน้าเว็บ

วันเสาร์ที่ 4 กันยายน พ.ศ. 2553

การสแกน เพื่อการแฮคเกอร์

การสแกน


(Scaning)     (ดาวน์โหลด nmap-3.93-win32 ไปก่อนนะครับ )

Port Scanning เป็นหนึ่งในเทคนิคที่โด่งดังที่สุดที่ผู้โจมตีใช้ในการค้นหาบริการ Service ที่พวกเขาจะสามารถเจาะผ่านเข้าไปยังระบบๆได้ โดยปกติแล้วทุก ๆ ระบบที่ต่อเข้าสู่ระบบ LAN หรือระบบอินเทอร์เน็ตจะเปิด service อยู่บน port ที่เปิดเป็นตัวเลขต่างๆสำหรับการทำ Port Scanning นั้น ผู้โจมตีจะสามารถค้นหาข้อมูลได้มากมายจากระบบของเป้าหมาย ได้แก่ บริการอะไรบ้างที่กำลังรันอยู่ ผู้ใช้คนไหนเป็นเจ้าของบริการเหล่านั้น สนับสนุนการล็อกอินด้วย anonymous (แบบไม่ประสงค์ออกนาม)หรือไม่ และบริการด้านเครือข่ายมีการทำ authentication หรือไม่ การทำ Port Scanning ทำได้โดยการส่งข้อความหนึ่งไปยังแต่ละพอร์ต ณ เวลาหนึ่ง ๆ ผลลัพธ์ที่ตอบสนองออกมาจะแสดงให้เห็นว่าพอร์ตนั้น ๆ ถูกใช้อยู่หรือไม่และสามารถทดสอบดูเพื่อหาจุดอ่อนต่อไปได้หรือไม่ Port Scanners มีความสำคัญต่อผู้ชำนาญด้านความปลอดภัยของเครือข่ายมากเพราะว่ามันสามารถเปิดเผยจุดอ่อนด้านความปลอดภัยที่มีความเป็นไปได้ของระบบเป้าหมาย

ถึงแม้ว่า Port Scans สามารถเกิดขึ้นกับระบบของคุณ แต่ก็สามารถตรวจจับได้และก็สามารถใช้เครื่องมือที่เหมาะสมมาจำกัดจำนวนของข้อมูลเกี่ยวกับบริการที่เปิดได้ ทุกๆระบบที่เปิด สู่สาธารณะจะมีพอร์ตหลายพอร์ตที่เปิดและพร้อมให้ใช้งานได้ (ต้องรู้ว่าแต่ละ port ที่เิปิดนั้นคือบริการอะไร) ซึ่งตรงนี้คุณต้องทำการกำหนดสิทธิ์ต่างในแต่ละ port และจำกัดจำนวนพอร์ตที่จะเปิดให้แก่ผู้ใช้ที่ได้รับอนุญาตและปฏิเสธการเข้าถึงมายังพอร์ตที่ปิด

เทคนิคต่าง ๆ ของ Port Scan

ก่อนที่คุณจะป้องกัน Port Scans คุณก็จะต้องเข้าใจเสียก่อนว่า Port Scans ทำงานอย่างไร เนื่องจากมีเทคนิคของ Port Scanning อยู่มากมายหลายรูปแบบ ซึ่งมีเครื่องมือ Port Scanning ที่ทำงานโดยอัตโนมัติ เช่น Nmap และ Nessus ที่ผมแนะนำโปรแกรม 2 ตัวนี้ก็เพราะว่าโปรแกรม 2 ตัวนี้มีความยืดหยุ่นในการแสกนสูง สามารถกำหนดรูปแบบการแสกนได้อย่างอิสระ ไม่เหมือนกับโปรแกรมทั่วๆไปที่แสกนได้ไม่กี่อย่างๆ

________________________________________

การ scan ต่อไปนี้เป็นรูปแบบมาตรฐานสำหรับ Nmap และ Nessus

1. Address Resolution Protocol (ARP) scans จะตรวจหาอุปกรณ์ที่ทำงานในเครือข่ายโดยการส่งชุดของ ARP broadcasts และเพิ่มค่าของฟิลด์ที่บรรจุ IP address ของเป้าหมายในแต่ละ broadcast packet การ scan ชนิดนี้จะได้รับผลตอบสนองจากอุปกรณ์ที่มี IP บนเครือข่ายออกมาในรูปแบบของ IP address ของแต่ละอุปกรณ์ การ scan แบบนี้จึงทำการ map out ได้ทั้งเครือข่ายอย่างมีประสิทธิภาพ

2.The Vanilla TCP connect scan เป็นเทคนิคการ scan แบบพื้นฐานและง่ายที่สุด คือจะใช้ connect system call ของระบบปฏิบัติการไปบนระบบเป้าหมายเพื่อเปิดการเชื่อมต่อไปยังทุก ๆ พอร์ตที่เปิดอยู่ การ scan ชนิดนี้สามารถจับได้ง่ายมาก โดยล็อก (log) ต่าง ๆ ของระบบที่เป็นเป้าหมายจะแสดงการร้องขอการเชื่อมต่อ (connection requests ) และข้อความแสดงข้อผิดพลาด (error messages) สำหรับบริการที่ตอบรับการเชื่อมต่อนั้น

3.The TCP SYN (Half Open) scans เทคนิคนี้บางครั้งถูกเรียกว่า half open เพราะว่าระบบที่ทำการโจมตีไม่ได้ปิดการเชื่อมต่อที่ได้เปิดไว้ scanner จะส่ง SYN packet ไปยังเป้าหมายและรอการตอบสนอง ถ้าพอร์ตถูกเปิดไว้เป้าหมายก็จะส่ง SYN/ACK กลับมา แต่ถ้าพอร์ตถูกปิดอยู่ เป้าหมายก็จะส่ง RST กลับมา วิธีการ scan รูปแบบนี้ยากต่อการตรวจจับ ปกติเครื่องที่เป็นเป้าหมายจะทำหน้าที่ปิดการเชื่อมต่อที่เปิดไว้ และส่วนใหญ่จะไม่มีระบบการล็อกที่เหมาะสมในการตรวจจับการ scan ชนิดนี้

4.The TCP FIN scan เทคนิคนี้สามารถที่จะทะลุผ่านไฟล์วอลล์ ส่วนใหญ่, packet filters , cละโปรแกรมตรวจจับการ scan ไปได้โดยไม่ถูกตรวจพบ เพราะระบบที่ทำการโจมตีจะส่ง FIN packets ไปยังระบบของเป้าหมาย สำหรับพอร์ตต่าง ๆ ที่ปิดอยู่จะตอบสนองกลับไปด้วย RST ส่วนพอร์ตที่เปิดจะไม่สนใจ packets เหล่านั้นเลย ดังนั้นเครื่องที่ทำการโจมตีก็จะได้ข้อมูลว่ามันได้รับ RST จากพอร์ตไหนบ้างและไม่ได้ RST จากพอร์ตไหนบ้าง

5.The TCP Reverse Ident scan เป็นเทคนิคที่สามารถตรวจหาชื่อของเจ้าของแต่ละโพรเซสที่เป็นการเชื่อมต่อด้วย TCP บนเครื่องเป้าหมาย การ scan ชนิดนี้จะทำให้ระบบที่ทำการโจมตีสามารถเชื่อมต่อเข้าไปยังพอร์ตที่เปิดอยู่และใช้ ident protocol ในการค้นหาว่าใครเป็นเจ้าของโพรเซสบนเครื่องเป้าหมายได้

6.The TCP XMAS ถูกใช้เพื่อหาพอร์ตบนเครื่องเป้าหมายที่อยู่ในสถานะ listening โดยจะส่ง TCP packet ที่มี flag เป็น URG, PSH และ FIN ใน TCP header ไปยังพอร์ตของเครื่องเป้าหมาย ถ้าพอร์ต TCP ของเครื่องเป้าหมายปิดอยู่ พอร์ตนั้นก็จะส่ง RST กลับมา แต่ถ้าพอร์ตเปิดอยู่ก็จะไม่สนใจ packet นั้นเลย

7.The TCP NULL scan เทคนิคนี้จะส่ง TCP packet ที่มี sequence number แต่ไม่มี flag ออกไปยังเครื่องเป้าหมาย ถ้าพอร์ตปิดอยู่จะส่ง กลับมา RST packet กลับมา แต่ถ้าพอร์ตเปิดอยู่ ก็จะไม่สนใจ packet นั้นเลย

8.The TCP ACK scan เป็นเทคนิคที่ใช้ค้นหาเว็บไซต์ที่เปิดบริการอยู่ แต่ปฏิเสธการตอบสนองต่อ ICMP ping หรือค้นหากฎ (rule) หรือนโยบาย ( policy) ต่าง ๆ ที่ตั้งไว้ที่ไฟล์วอลล์เพื่อตรวจสอบดูว่าไฟล์วอลล์สามารถกรอง packet อย่างง่าย ๆ หรือเทคนิคชั้นสูง โดยการ scan แบบนี้จะใช้ TCP packet ที่มี flag เป็น ACK ส่งไปยังพอร์ตเครื่องปลายทาง ถ้าพอร์ตเปิดอยู่ เครื่องเป้าหมายจะส่ง RST กลับมา แต่ถ้าปิดอยู่ก็จะไม่สนใจ packet นั้น

9.The FTP Bounce Attack ใช้โพรโตคอล ftp สำหรับสร้างการเชื่อมต่อบริการ ftp ของ proxy วิธีการ scan แบบนี้ ผู้โจมตีจะสามารถซ่อนตัวอยู่หลัง ftp server และ scan เป้าหมายอื่น ๆ ได้โดยไม่ถูกตรวจจับ ดังนั้น ftp servers ส่วนใหญ่จะมีการ disable บริการของ ftp เพื่อความปลอดภัยของระบบ

10.The UDP ICMP port scan ใช้โพรโตคอล UDP ในการ scan หาพอร์ตหมายเลขสูง ๆ โดยเฉพาะในระบบ Solaris แต่จะช้าและไม่น่าเชื่อถือ

11.The ICMP ping-sweeping scan จะใช้คำสั่ง ping เพื่อกวาดดูว่ามีระบบไหนที่เปิดใช้งานอยู่ เครือข่ายส่วนใหญ่จึงมีการกรองหรือ disabled

โพรโตคอล ICMP เพื่อความปลอดภัยของระบบ
________________________________________

เทคนิคการ Ping Sweep

ในบทความต่อไปนี้ ผมจะมุ่งประเด็นเกี่ยวกับเรื่องการแสกนว่ามีเรื่องไหนยัง login อยู่หรือกำลังใ้ช้งาน และ port ต่างที่เครื่องเหยื่อไ้ด้เิปิดเอาไว้ จากบทความของผม เวลาุคุณจะต้องสนใจเครื่องของเหยื่อที่ port 139 กับ 445 เท่านั้น เพราะเ็ป็นส่วนจำเป็นในการ Hack Window

คือการ ping ไปยังเครื่องเป้าหมายที่จำนวนมากๆ ในวง Network ที่คุณใช้อยู่ หรือวง lan นั่นเอง (ใน Internet ก็ใช้ได้) โดยแสกนพร้อมๆกัน คล้ายกับการกราดยิง เพื่อตรวจสอบว่าเครื่องปลายทางได้เปิดอยู่หรือไม่ก็ตาม เช่นคุณมี IP x.y.z.6 ตรง x.y.z อาจเป็นตัวเลขใดๆก็ได้ แต่เลข 6 คือเลขชุดหลังของ ip คุณ เวลาคุณแสกนหาให้เขียนลงไปดังนี้ x.y.z.0/24 จากตรงเลข 6 เปลี่ยนเป็น 0/24 หมายความว่าเป็นการแสกน IP ตั้งแต่ x.y.z.1- x.y.z.255
ยกตัวอย่าง


สมมติคุณกำลังต่อเน็ต หรือกำลังใช้คอมอยู่ในวงแลน ให้คุณเิดหน้าต่างดอสขนึ้มา (หรือ Start > Run พิมพ์ cmd.exe) พอหน้าต่างดอสขนึ้มาให้คุณพิมพ์ ipconfig แล้วกด Enter


172.16.66.1 ถึง 172.16.66.225 ครับผม แต่เวลาแสกนถ้าคุณมากำหนดเป็นตัวเลขอาจต้องพิมพ์แบ่งช่วงเอาเอง แต่ถ้าคุณจะแสกน port ทั้งวงแลน คือ แสกนมันทุกเครื่องในวงแลนเลย เวลาคุณกำหนด IP ก็ต้องใ้คำสั่งกำหนด เป็น 172.16.66.0/24 โดยปรกติ ถ้าคุณใช้คำสั่ง ping ธรรมดา จะมีการส่ง ICMP ECHO (Type 8) ออกไปยังเครื่องปลายทางและรอคอย ICMP ECHO_REPLY (Type 0) ส่งกลับมา ถึงแม้ ping จะมีประโยชน์ในการทดสอบว่าเครื่องปลายทางนั้นเปิดอยู่หรือไม่ก็ตาม แต่มันจะเหมาะกับ Network ขนาดเล็กและขนาดกลางเท่านั้น ซึ่งถ้ามาใช้ในใน Network ขนาดใหญ่อย่าง Internet มักจะใช้ได้ไม่มีประสิทธิภาพ โดยใช้ –sP เป็นการ ping scan (กรณีนี้ผมไ้ด้ เอาโปรแกรม nmap มาแตกใส่ไว้ที่ไดร์ฟ C:)


C:>nmap –sP 172.16.66.0/24

คำสั่งนี้จะใช้ได้เมื่อคุณได้อยู่ในวง Network เดียวกับคุณ หรือ วงอื่น ซึ่งจะแสกนวงเดียวกับคุณ IP 172.16.66.0 – 172.16.66.255 หมายถึง คุณต้องมี IP ที่อยู่ระหว่าง 172.16.66.0 – 172.16.66.255 ถึงจะใช้คำสั่งนี้ได้ เช่นคุณมี IP = 172.16.66.216 สังเกตเลขชุดสุดท้ายที่อยู่หลังจุดให้ดีๆ อาจเป็นเลขอะไรก็ได้ จาก 1-255 ถึงจะใช้ 0/24 แทน หรือ

C:>nmap –sP 172.16.66.11-172.16.66.20

คำสั่งนี้จะแสกนเครื่องที่อยู่ในวง Network ที่มี IP ระหว่าง 172.16.66.11 - 172.16.66.20

C:>nmap –sP 172.16.66.* หรือ C:>nmap –sP 172.16.66.0/24

คำสั่งนี้จะแสกนเครื่องที่อยู่ในวง Network ที่มี IP 172.16.66.1 ถึง 172.16.66.255

โดยปรกติ ถ้าคุณใช้คำสั่ง ping ธรรมดา จะมีการส่ง ICMP ECHO (Type 8) ออกไปยังเครื่องปลายทางและรอคอย ICMP ECHO_REPLY (Type 0) ส่งกลับมา ถึงแม้ ping จะมีประโยชน์ในการทดสอบว่าเครื่องปลายทางนั้นเปิดอยู่หรือไม่ก็ตาม แต่มันจะเหมาะกับ Network ขนาดเล็กและขนาดกลางเท่านั้น ซึ่งถ้ามาใช้ในใน Network ขนาดใหญ่อย่าง Internet มักจะใช้ได้ไม่มีประสิทธิภาพ โดยใช้ –sP เป็นการ ping scan เพื่อเป็นการตรวจสอบว่ามีเครื่องใดกำลัง logon อยู่



nmap –sP 203.118.98.0/24


คำสั่งนี้จะใช้ได้เมื่อคุณได้อยู่ในวง Network เดียวกับคุณ หรือ วงอื่น ซึ่งจะแสกนวงเดียวกับคุณ IP 203.118.98.0 – 203.118.98.255 หมายถึง คุณต้องมี IP ที่อยู่ระหว่าง 203.118.98.0 – 203.118.98.255 ถึงจะใช้คำสั่งนี้ได้ เช่นคุณมี IP = 203.118.98. 10 สังเกตเลขชุดสุดท้ายที่อยู่หลังจุดให้ดีๆ อาจเป็นเลขอะไรก็ได้ จาก 1-255 หรือจะใช้ 0/24 แทน หรือ

nmap –sP 203.118.98.11-203.118.98.20

คำสั่งนี้จะแสกนเครื่องที่อยู่ในวง Network ที่มี IP ระหว่าง 203.118.98.11 - 203.118.98.20

nmap –sP 203.118.98.* หรือ C:>nmap –sP 203.118.98.0/24

คำสั่งนี้จะแสกนเครื่องที่อยู่ในวง Network ที่มี IP 203.118.98.1 ถึง 203.118.98.255

(เครื่องมือ nmap นี้ จะเป็นการหาแบบละเอียด เมื่อเทียบกับโปรแกรมอื่น แต่อาจใช้เวลานานกว่า)



เทคนิคการแสกนหลบ เมื่อเครื่องปลายทาง block ICMP

จะเป็นการ Ping Sweep ขั้นสูงที่เรียกว่า TCP Ping scan โดยการใช้พารามิเตอร์ –PT พร้อมกับระบุหมายเลข port ต่างๆเข้าไป ซึ่งการระบุเลข port นั้นจะต้องทราบว่าเครื่องส่วนใหญ่นั้นจะต้องเปิดเอาไว้เพื่อติดต่อสื่อสารกับเครื่องอื่นๆ เช่น http 80 , SMTP 25 , POP 110 , IMAP 143 และอื่นอีกมาก ซึ่งปรกติจะต้องเปิดไว้คือ http 80 ซึ่งอาจทะลุผ่าน firewall ได้ถ้ามีการกำหนด firewall ได้ไม่ดี

nmap –sP –PT 80 203.118.98.0/24

ตรงเลข 80 ที่ผมได้ทำสีไว้เป็นการแสกนผ่านทาง http 80 ซึ่งอาจเปลี่ยนเป็นเลข port อื่นๆได้ตามที่ได้กล่าวมาด้านบนซึ่ง port ต่างๆที่ได้ใส่ไปก็คือการหา service นั่นเอง SMTP 25 , POP 110 , IMAP 143

nmap –sP –PT 25 203.118.98.0/24 เป็นการหาว่าเครื่องในวงแลนคุณเครื่องไหนเปิด SMTP 25

nmap –sP –PT 110 203.118.98.0/24 เป็นการหาว่าเครื่องในวงแลนคุณเครื่องไหนเปิด POP 110

nmap –sP –PT 143 203.118.98.0/24 เป็นการหาว่าเครื่องในวงแลนคุณเครื่องไหนเปิด IMAP 143



เทคนิคการแสกนแบบ TCP FIN scan

เทคนิคนี้สามารถที่จะทะลุผ่านไฟล์วอลล์ ส่วนใหญ่ และมีการเก็บผลลัพธ์ไว้ในไฟล์ text

nmap –sF 203.118.98.0/24 –oN output.txt

จากบรรทัดบน –sF เป็นการแสกนแบบ Stealth FIN รายละเอียดให้ดูรูปประเภทการแสกนที่อยู่ช่วงแรกๆ และพารามิเตอร์ –o เป็นการบันทึกผลลงเป็นไฟล์ ส่วน N หลัง –o ตรง (-oN) หมายถึงให้บันทึกในรูปแบบที่อ่านเข้าใจได้โดยโปรแกรมจะสร้างไฟล์ output.txt หรือถ้าคุณต้องการบันทึกเพื่อจะนำไปใช้กับโปรแกรมอื่นๆ ให้ระบุเป็น พารามิเตอร์ –oM แทน

ผมเหนื่อยแระ ขี้เกียจทำเป็็นหัวข้อ

________________________________________

คุณอาจใช้ Option + Parameter อื่นๆ ผสมผสานกันได้ โดยประยุกต์จากตัวอย่างต่างๆที่ผมได้ทำเป็นตัวอย่างดังที่เห็นอยู่ ซึ่งจะทำให้การใช้งานเครื่องมือนี้ มีประสิทธิภาพมากขึ้น ในการแสกนหาเครื่องเหยื่อ ในโปรแกรม Nmap ได้อย่างลงตัวกับสถานะการณ์ (แต่ต้องหัดเอาเองบ้างนะ) ซึ่งผลจากการแสกนต่างๆนั้นรับรองได้้เลยว่าโปรแกรมอื่นคงทำไม่ได้อย่างโปรแกรมนี้ แต่มันก็ยากในการใช้งาน เพราะ Option ในตัวโปรแกรมช่างเยอะเหลือเกิน จะถอดใจตอนนี้ก็ยังไม่สายนะ ดูชื่อเว็บที่ผมตั้งสิ กรรมกรไซเบอร์ มันก็ต้องออกแรงกันหน่อย และสำหรับคนที่ยังไม่ถอดใจ ผมก็จะมีตัวอย่าง และ Tip เด็ดๆให้อีกเล็กๆน้อยๆ

Nmap มีความสามารถในการหลอก firewall เครื่องปลายทาง โดยการส่งแพ็คเก็ตปลอมจำนวนมากที่ไม่เกี่ยวข้องกับการแสกนเข้าไปในระบบ ด้วยการใช้พารามิเตอร์ –D และขณะเดียวกันก็ทำการแสกนจริงๆไปด้วย และด้วยการเพิ่มความยากในการตรวจจับ สามารถปลอม IP ADDRESS ของ server อื่นที่มีอยู่จริง แต่ถ้า IP ADDRESS ที่ปลอมนั้นไม่มีอยู่จริงๆ การแสกนของคุณจะเป็นการทำ SYN Flood ซึ่งไปเข้าเงื่อนไขการโจมตีระบบด้วย Denial of Service (การทำให้ Network ล่ม คือทำให้การรับส่งข้อมูลใน Network คับคั่งหรือที่เห็นง่ายๆก็คือ เน็ตจะช้า หรือเครื่องอาจหลุดจาก Internet ได้) วิธีดูจากข้างล่างนี้

nmap –sS 203.118.98.110 –D 203.114.234.5

-sS เป็นการแสกนแบบ TCP SYN scan 192.16.81.110 เป็น IP เครื่องเป้าหมายที่คุณจะแสกน และส่วนที่ตามหลัง Option –D คือ IP 203.114.234.5 เป็น IP Server ของอะไรก็ได้เช่น yahoo , sanook ซึ่งจะหา IP นี้ได้โดยการ เปิด ดอส ขึ้นมาแล้วพิมพ์ c:\ping www.yahoo.com เท่านี้คุณก็จะได้ IP Server จริงๆ ที่จะนำมาใช้ในคำสั่งนี้ แต่ถ้าคุณเอา ไอพีมามั่วๆ จะเป็น เข้าเงื่อนไขการโจมตีระบบด้วย Denial of Service

nmap –O 203.121.148.18

คำสั่งบนนี้ จะเป็นการหาข้อมูลจากเครื่องที่ มี IP 203.121.148.18 ว่ามีการเปิดที่ Port ไหนบ้าง และใช้ระบบปฏิบัติการอะไร แต่การแสกนอาจใช้เวลานาน ถ้าคนที่ใจร้อนอาจหันไปพึ่งโปรแกรมอื่น ผมก็ไม่ว่าอะไรครับ แต่ขอบอก โปรแกรมนี้ แสกนได้แม่นยำกว่าโปรแกรมอื่นอยู่มากทีเดียว

nmap –p80 –O 203.121.148.18

คำสั่งบนนี้ เป็นการใช้ option –p เข้ามาช่วยหา ในกรณีที่เครื่องเหยื่อได้เปิด port 80 เอาไว้



การประยุกต์ใช้งานอื่นๆ

nmap –sS –p 25,80,135-139,455 –n 203.118.98.110

จากคำสั่งบนนี้ เป็นการแสกนไปที่เครื่อง 203.118.98.110 ไปที่ port 25 , port 80 , port 135 , 136 ,137 , 138 ,139 , port 455 ว่าเปิดอยู่หรือไม่

nmap –sS –O 203.118.98.110

จะเห็นว่าคำสั่งนี้ คลอบคลุมกว่า 2 คำสั่งด้านบน ยิ่งถ้าคุณได้เพิ่ม Option –p แล้วใส่ port ที่ต้องการแสกนได้อีกด้วยครับ แต่บางที Option –sS อาจหลบ Firewall ไม่ได้

Option –T 4 เป็นอีก option ที่น่าสนใจเป็นอย่างมาก คุณลองใช้ option ลงไปร่วมกับ option อื่นได้ จะช่วยให้การแสกนนั้นรวดเร็วยิ่งขึ้นครับเช่น

nmap –sS –O –T 4 203.118.98.110

nmap –sP –PT80 –T 4 203.118.98.0/24

การแสกนตรวจประเภท Firewall

nmap –sW 203.118.98.110 และคำสั่ง nmap –sA 203.118.98.110

คำสั่งบนนี้ เป็นการตรวจสอบ Firewall ว่าเป็นประเภทไหน ในเครื่องที่มี IP 203.118.98.110 ทั้ง 2 Option นี้อาจเป็นตัวที่ใช้เจาะเครื่องที่มี firewall ป้องกัน เพื่อที่จะดูว่า จริงๆแล้วเปิด port อะไรบ้าง เพราะเราจะสามารถรู้ ระบบปฏิบัติการในเครื่องที่เราแสกนได้ จาก port ที่ได้เปิด

ในแต่ละเครื่อง ใน Internet คุณไม่สามารถไปดูที่หน้าจอได้ จึงยากต่อการรู้ว่า เครื่องนั้นๆ ใช้วินโดว์หรือ unix หรือ Linux เพราะฉนั้น คุณต้องดู port จากเครื่องเป้าหมาย แต่โปรแกรมแสกนธรรมดา จะไม่สามารถแสกน port ได้จากเครื่องที่ได้ติดตั้ง Firewall (แต่จริงๆ ก็เปิด port อยู่) จึงต้องใช้โปรแกรม nmap แสกน เพราะสามารถหลบ Firewall ได้

Window Port Default ข้างล่างนี้เป็น port มาตรฐาน ที่ Win มักจะเปิด และเราจะรู้ได้ หรือเดาได้ว่าใช้อะไร

Win 98/me 139

Win 2000/xp 139 – 445

Win 2000 Server 53 – 88 - 139 – 445

ส่วน UNIX / LINUX คุณจะเห็นความแตกต่าง port ที่เปิดเองครับ จะไม่เหมือน Window แน่นอนครับ
nmap –I ....IP....

อีก option ที่คุณน่าลองดู ว่าจะเกิดอะไรครับผม

การแฮกเกอร์

การแกะรอย
ในวินโดว์นั้น การแกะรอยต่างๆจากเครื่องอื่นๆในวงแลนหน่วยงานก็ตาม หรือจะเป็นใน Internet ก็ตามทีรวมไปถึง Website ต่างๆ คุณจำเป็นต้องอาศัยเครื่องมือต่างๆ(โปรแกรม) ซึ่งถ้าเก๋าหน่อยคุณสามารถที่จะเปิดดอสมาแล้วพิมพ์ก็ได้แล้ว แต่ถ้าไม่เก๋าจริงๆก็ควรหาโปรแกรมต่างๆมาใช้งาน ซึ่งโปรแกรมสมัยนี้การใช้งานและแสดงผลต่างๆ ดูง่ายต่อความเข้าใจ เรามาเริ่มทำความเข้าใจก่อนเกี่ยวกับพื้นฐานนะครับ


บทนำ

การที่ผู้บุกรุกจะกระทำการใดๆ กับเป้าหมายนั้น ส่วนใหญ่มักจะต้องมีกระบวนการในการสะสมข้อมูลเกี่ยวกับเป้าหมายนั้นๆ ก่อน จากนั้นจึงจะลงมือบุกรุกเข้าไปยังเป้าหมายที่ต้องการ และถ้าทำได้สำเร็จผู้บุกรุกอาจจะติดตั้งซอฟแวร์บางตัวเพื่อซ่อนร่องรอยหรือติดตั้ง backdoor ไว้ในระบบ เพื่อจะได้เข้ามาใช้งานได้ง่ายๆ ในครั้งต่อไป

ในขั้นตอนของการหาข้อมูลของเครื่องเป้าหมายนั้น ผู้บุกรุกจำเป็นต้องทราบว่าเครื่องเป้าหมายนั้น service อะไรอยู่บ้าง และถ้าได้ข้อมูลของ network topology และระบบปฏิบัติการด้วยแล้วก็จะเป็นข้อมูลที่มีประโยชน์มาก มีเครื่องมือหลายตัวและมีหลายวิธีในการตรวจสอบ network topology และ service ของเครื่องเป้าหมาย Firewalk ก็เป็นอีกเครื่องมือหนึ่งที่ David Goldsmith และ Michael Schiffman สร้างขึ้นมา โดยลักษณการทำงานจะคล้ายๆ กับ traceroute เพื่อใช้ตรวจสอบว่ามี service อะไรที่ไฟร์วอลล์เปิดให้ผ่านเข้าไปได้ และใช้ตรวจสอบ access control ได้ด้วย

***โดยส่วนใหญ่แล้วไฟร์วอลล์มักจะถูกคาดหวังจากผู้ใช้งานว่า จะเป็นตัวที่ทำหน้าที่ปกป้องเครือข่ายจากโลกภายนอก แต่ Firewalk ก็ได้แสดงให้เห็นแล้วว่าไม่ได้เป็นเช่นนั้นเสมอไป ผู้บุกรุกยังมีโอกาสในการหาข้อมูลเกี่ยวกับเป้าหมายมากกว่าที่เราคาดการณ์ไว้ และในการที่จะทำความรู้จักกับหลักการทำงานของ Firewalk จะต้องเข้าใจ traceroute เสียก่อน

Traceroute

คำสั่ง tracert (Windows) หรือ traceroute (*NIX) เป็นเครื่องมือช่วยในการตรวจสอบเครือข่าย โดยจะแสดง IP ของ router หรือ gateway ที่ packet วิ่งผ่านจากที่หนึ่งไปยังอีกเครือข่ายหนึ่งทีละ hop โดย traceroute ใช้คุณสมบัติของ IP Time To Live (TTL) ในการทำงาน

TTL ถูกนำไปใช้ในโปรโตคอล IP เพื่อป้องการการเกิดลูปที่ไม่รู้จบจากการวนของ pakcet โดยในแต่ละ device ที่ได้รับ packet จะลดค่าของ TTL ลงทีละ 1 และถ้า TTL มีค่าเป็นศูนย์หรือน้อยกว่า packet นั้นจะถูก drop ไป และ router ก็จะส่งข้อมูล ICMP "TTL Exceed in Transit" กลับมายังเครื่องที่รันคำสั่งนี้

Traceroute ใช้หลักการนี้ในการทำงาน โดยมันจะกำหนดค่า TTL counter ที่ทำให้ router ที่ packet ผ่านไปนั้นต้องสร้าง ICMP message กลับมาเสมอ สำหรับคำสั่ง tracert ใน Windows นั้น จะใช้ ping (ICMP Echo) เป็นตัวส่ง packet ออกไป ในขณะที่ traceroute ใน Unix นั้น จะใช้ UDP datagram เป็นตัวส่งข้อมูลออกไป datagram ที่ถูกส่งออกไปนั้นจะถูกส่งไปยัง port 33434 โดยดีฟอลต์ และ ค่าหมายเลข port นี้จะถูกเพิ่มขึ้นเมื่อได้รับ packet ที่ตอบกลับมาอย่างถูกต้อง โดยปกติแล้ว traceroute มักจะส่ง datagram ออกไปจำนวน 3 datagram เพื่อป้องกันการสูญหายระหว่างทาง

ด้านล่างนี้แสดงตัวอย่างการใช้ tracert.exe ใน Windows



เมื่อไฟร์วอลล์ถูกติดตั้งให้ไม่ตอบสนองต่อ traceroute และ ping จากโลกภายนอก เพื่อป้องกันไม่ให้ผู้บุกรุกเก็บข้อมูลของเครือข่ายภายในได้ ตัวอย่างด้านล่างนี้แสดงถึงผลลัพธ์ที่ได้จาก tracert.exe เมื่อถูกป้องกัน traffic ของ ping โดยไฟร์วอลล์หรือ router


จากตัวอย่างแสดงให้เห็นว่า ไม่สามารถ trace ได้อย่างสมบูรณ์ และจะได้รับ timeout message เมื่อคำสั่ง ping ถูก drop โดยปลายทาง และให้คุณสังเกตุแต่ละ hop (จากตัวอย่างได้ 11 hob) ถ้าคุณใช้คำสั่ง nslookup และตามด้วย IP ของแต่ละ hob คุณก็จะทราบว่า ก่อนที่เครื่องของคุณจะไปถึงเว็บ vanguard.com นั้นต้องผ่านที่ไหน ประเทศไหนบ้าง เราพิมพ์ไอพีแอดเดรสลงไป ในที่นี้เราพิมพ์ 203.94.12.01 (ซึ่งเป็นไอพีที่ผมต้องการหา)


$>nslookup 203.94.12.01

คุณจะเห็นผลลัพธ์ออกมาเป็น: mail2.nol.net.in ในตอนนี้ถ้าคุณดูที่ชื่อ hostname ที่เปลี่ยนมาจากไอพีแอดเดรสอย่างตั้งใจ จะเห็นได้ว่าส่วนหลังสุดจะบอกถึง ประเทศที่ระบบนั้นตั้งอยู่ จากตัวอย่างคุณเห็น '.in' ซึ่งบอกว่าระบบนี้อยู่ในประเทศอินเดีย ทุกประเทศมีรหัสประเทศของตัวเองซึ่งจะเห็นได้บ่อยมากกว่าชื่อท้ายสุดที่ไม่ใช่รหัสประเทศ วิธีนี้สามารถใช้เพื่อค้นหาว่าคน ๆ นั้น อยู่ในประเทศใหนถ้าคุณรู้อีเมลของเขา เช่น ถ้าคนนั้นมีที่อยู่อีเมลลงท้ายด้วย .ph แสดงว่าเขาอาจจะอาศัยอยู่ใน ประเทศฟิลิปปินส์ ประเทศอื่น ๆ ก็ทำนองเดียวกันนี้ รหัสประเทศ โดยทั่ว ๆ ไปเช่น:


ประเทศ รหัสประเทศ


ฟิลิปปินส์ .ph

ออสเตรเลีย .au

อินโดนีเซีย .id

อินเดีย .in

ญี่ปุ่น .jp

อิสราเอล .il

สหราชอาณาจักร .uk

รายการรหัสประเทศที่ครบสมบูรณ์ดูได้ที่: http://www.alldomains.com/ และ http://www.iana.org/domain-names.html

รายการรหัสรัฐต่าง ๆ ของสหรัฐ ฯ ดูที่: http://www.usps.gov/ncsc/lookups/abbr_state.txt

ผู้ที่ใช้วินโดวส์สามารถแปลงไอพีให้เป็น hostname ได้โดยการดาวน์โหลดยูทิลิตี้ที่ชื่อ Samspade จาก http://www.samspade.com/

อีกวิธีการหนึ่งที่ใช้หาที่อยู่ทางภูมิศาสตร์ของระบบคอมพิวเตอร์ที่ตรงจุดจริง ๆ คือการใช้ ฐานข้อมูล WHOIS เป็นฐานข้อมูลหลักที่ประกอบด้วยข้อมูลหลากหลายเช่นข้อมูลสำหรับการติดต่อ ชื่อ ผู้ที่เป็นเจ้าของโดเมนนั้น หาข้อมูลโดยการใส่ hostname ลงไป แล้วบริการนี้จะบอกข้อมูลที่อยู่ในฐานข้อมูลออกมา

วิธีนี้สามารถใช้เพื่อหาข้อมูลที่ถูกต้องเกี่ยวกับไอพี หรือ hostname ที่ต้องการ อย่างไรก็ตามมันอาจจะไม่มี ประโยชน์ถ้าคุณพยายามหาสถานที่ตั้งที่แท้จริงของผู้ใช้ไอพีแบบ dynamic IP แต่อย่างน้อยวิธีนี้สามารถใช้ เพื่อหาเมืองที่ไอเอสพีนั้นอยู่ได้


คุณสามารถใช้บริการ WHOIS ที่ http://www.alldomains.com/ นอกจากนี้คุณสามารถป้อนชื่อ hostname เข้าไปในบราวเซอร์ของคุณเพื่อใช้บริการ WHOIS โดยใช้ URL นี้: http://205.177.25.9/cgi-bin/whois?abc.com โดยเปลี่ยนชื่อ abc.com เป็นชื่อโดเมนที่คุณต้องการถามข้อมูลโดยใช้ WHOIS

วิธีนี้ไม่สามารถใช้เพื่อหาที่อยู่ที่สามารถติดต่อได้ ของบุคคลที่ต้องการค้นหา ถ้าไอพีที่คุณใช้เพื่อหาเขาเป็นของไอเอสพีของเขา ดังนั้นคุณจำเป็นต้องรู้ชื่อโดเมน (ซึ่งลงทะเบียนโดยใช้ชื่อของเขา) หรือไม่ก็รู้ได้เพียงแต่เมือง (และไอเอสพี) ที่ใช้โดยบุคคลนั้น

ถ้าบุคคลนั้นลงทะเบียนชื่อโดเมน และคุณต้องการใช้มันเพื่อค้นหาว่าเขาอยู่ในเมืองไหน สิ่งที่ควรสังเกตในกรณีนี้ คือถ้าบุคคลนั้นลงทะเบียนชื่อโดเมนที่ใช้บริการฟรี เช่น Namezero.com ดังนั้นชื่อโดเมนอาจจะลงทะเบียน โดยใช้ชื่อของบริษัทนั้นและไม่ใช่ชื่อของบุคคลที่เราต้องการค้นหา ฉะนั้นการใช้บริการ WHOIS จะให้ข้อมูล เกี่ยวกับไอเอสพีไม่ใช่บุคคลที่เราต้องการค้นหา

ข้อสังเกต: บริการ WHOIS โดยค่าเริ่มต้นจะรันอยู่ที่พอร์ต 43 ของระบบนั้น ลองใช้บริการโดยการ telnet ไปที่พอร์ต 43 และลองพิมพ์ค้นหา ผมไม่เคยลอง แต่มันต้องสนุกแน่ ๆ

Firewalking

ไฟร์วอลล์จะเป็นตัวหยุดยั้ง traceroute packet และจะไม่ยินยอมให้ traceroute packet ผ่านไปยังเครื่องเป้าหมาย วิธีการทำงานของ firewalking นั้น ใช้พื้นฐานที่ว่า ถ้าไฟร์วอลล์อนุญาตให้ traffic ชนิดใดผ่านไปได้ firewalking ก็จะส่ง packet ชนิดนั้นๆ ผ่านเข้าไป เช่น ถ้าไฟร์วอลล์อนุญาตให้ UDP port 53 (DNS queries) ผ่านเข้าไปยัง DNS server ที่ตั้งอยู่ภายในเครือข่ายนั้นๆ ผู้บุกรุกก็สามารถส่ง UDP port 53 พร้อมกับค่า TTL ของ hop ถัดไป เพื่อให้ผ่านไฟร์วอลล์เข้าไปได้ และได้ข้อมูลกลับออกมา และเนื่องจาก traceoute ถูกออกแบบให้ใช้งานฟิลด์ TTL ซึ่งทำงานบน IP protocol (network layer) ดังนั้นมันจึงสามารถใช้งานได้กับ upper layer protocol อื่นๆ ได้ เช่น UDP, TCP, ICMP ดังนั้นจึงทำให้สามารถตรวจสอบ service ที่เปิดให้บริการหลังไฟร์วอลล์ได้

สรุป

เราสามารถหยุดการใช้งาน Firewalking ได้โดยการบล็อค TTL Exceeded in Transit packet ขาออกที่ไฟร์วอลล์ หรือใช้ NAT (Network Address Translation) เพื่อซ่อน IP address ของโฮสต์ภายในเครือข่าย

สิ่งที่บทความนี้ต้องการจะเน้นย้ำก็คือ การใช้ระบบป้องกันเพียง layer เดียวนั้นไม่เพียงพอแล้วในปัจจุบัน และเราก็ไม่สามารถที่จะไว้วางใจไฟร์วอลล์ได้ว่าจะสามารถปกป้องเครือข่ายจากการหาข้อมูลของบรรดาผู้บุกรุกได้ ดูเหมือน host based detection จะเป็นตัวช่วยที่ดีอีกทางหนึ่งได้เช่นกัน นอกจากนี้ network intrusion detection system (NIDS) ก็ยังสามารถเป็นหูเป็นตาให้ผู้ดูแลระบบได้ด้วย

ดังนั้นการใช้ multiple layers สำหรับการทำ overlapping security นั้นเป็นสิ่งที่จำเป็นอย่างยิ่ง ผู้ที่มีหน้าที่เกี่ยวกับเรื่องนี้ในแต่ละองค์กรควรตระหนัก และหาทางนำเทคโนโลยีที่มีอยู่ในปัจจุบันไปประยุกต์ใช้เพื่อให้เกิดประโยชน์สูงสุด

________________________________________

แบบโปรแกรมที่แสดงผลเป็น Graphic

ให้คุณหาโปรแกรมกันเอาเองนะครับ โปรแกรม VisualRoute ซึ่งจะแสดงผลเป็นรูปภาพ ง่ายต่อการที่จะเข้าใจ แถมมีรูปแผนที่ให้คุณได้ดููอีกด้วยครับ


จากภาพตัวอย่างคุณสามารถเห็นเส้นทางการเดินทางของ packet ในแต่ละ hop ได้โดยง่าย คืออย่าคุณจะเข้าไปดูที่เว็บไหนสักแห่งหนึ่งนั้น เครื่องคุณต้องไปผ่านประเทศไหนบ้าง เมืองอะไร คือคุณไม่ต้องอาศัยเทคนิคหรือความเข้าใจในคำสั่ง tracert ,whois , nslookup มากเท่าไหร่ คุณก็ได้ข้อมูลที่สมบูรณ์มาแล้วด้วยโปรแกรมนี้

วันจันทร์ที่ 30 สิงหาคม พ.ศ. 2553

Firewall

Firewall เป็น เครื่องมือ รักษาความปลอดภัยให้กับเครือ ข่ายภายใน (Intranet) โดยป้องกันผู้บุกรุก


(Intrusion) ที่มาจากเครือ ข่ายภายนอก (Internet) ถ้าผู้บุกรุกมาจากจากเครอื ข่ายภายในระบบนี้จะป้องกันไม่ได้

สิ่งที่ป้องกัน เช่น ไวรัสคอมพิวเตอร์ (Virus), หนอนคอมพิวเตอร์ (Worm), การโจมตีแบบ DoS (Denial of

Service), ม้าโทรจัน (Trojan House), ip spoofing ฯลฯ โดยมีลักษณะการบุกรุก ดังนี้

– Virus จะแย่งใช้หรอื ทำาลายทรัพยากรของคอมพิวเตอร์ เช่น ไฟล์ข้อมูล, แรม ฯ

– Worm จะแย่งใช้ทรัพยากรของคอมพิวเตอร์ เช่น เขียนไฟล์ขยะลงบนฮาร์ดดีสก์ จนทำาให้

ฮาร์ดดีสก์เต็ม ฯ

– DoS จะส่ง Request หรอื เรียกใช้ Service ต่างๆ ไปที่เซิร์ฟเวอร์ จนทำาให้เซิร์ฟเวอร์ล่ม

– Trojan House จะแอบอยู่ในเคร่อื งไคลเอนด์หรอื เซิร์ฟเวอร์ เม่อื ถึงเวลามันจะทำาการเปิดพอร์ตของ

เคร่อื งนั้นให้กับผู้บุกรุก เช่น แฮกเกอร์สามารถรีโหมดเข้ามาควบคุมการทำางานของเคร่อื งนั้น

– ip spoofing การปลอมหมายเลขไอพีต้นฉบับเพ่อื ลักลอบเข้ามาในเครอื ข่าย

Firewall มีทั้งฮาร์ดแวร์และซอฟท์แวร์ ที่เปน็ ฮาร์ดแวร์ เช่น Router ที่ฟังก์ชั่น Screening Device,

Layer 3 Switch ฯ ที่เปน็ ซอฟท์แวร์ เช่น ipchains, iptables

ในการอบรมครั้งนี้จะใช้เคร่อื งคอมพิวเตอร์มีการ์ดเน็ตเวิร์ด 2 แผ่น ที่ติดตั้งลินุกซ์ทะเล 7.0 และใช้

โปรแกรม iptables การ์ดหนึ่งติดต่อกับเครอื ข่ายภายนอกใช้ Public IP ทำาหน้าที่เปน็ Firewall อีกการ์ดหนึ่งติด

ต่อกับเครอื ข่ายภายในใช้ Private IP

Firewall แบ่งออกได้ 3 ประเภท

1. Packet Filtering เปน็ Firewall ระดับพ้นื ฐานมีหน้าที่ตรวจสอบ IP Address และ Port ที่อยู่ต้นทาง

และปลายทาง รวมทั้งกรองแพ็กเกตข้อมูล สามารถแยกแยะประเภทของแพ็กเกตที่เปน็ TCP, UDP ได้

2. Circuit-Level Firewall เปน็ Firewall ประเภท Proxy Server ที่เปน็ ตัวคั่นกลางระหว่างเครอื ข่าย

ภายในกับเครอื ข่ายภายนอก การทำางานจะใช้เทคนิคที่เรียกว่า SPI (Stateful Packet Inspection) หลัก

การทำางานเปน็ แบบเดียวกันกับ Packet Filtering และได้เพิ่มการกำาหนดกฎในการเข้าถึง (Access

Rules) เพ่อื ใช้ในการควบคุมทราฟิก

3. Application Level Firewall เปน็ Firewall ประเภท Proxy Server ที่ทำางานระดับแอพพลิเคชั่น มี

หน้าที่ป้องกันเครอื ข่ายภายในกับเครอื ข่ายภายนอกไม่ให้ติดต่อกันโดยตรง การส่งการร้องขอ

(Request) และการตอบกับ (Response) ต้องผ่าน Proxy Server
Proxy Server จะทำาหน้าที่คั่นกลางระหว่างเครอื ข่ายภายในกับเครอื ข่ายภายนอก โดยมีหลัการทำางานดัง


นี้ เคร่อื งไคลเอ็นด์ต้องการติดต่อกับอินเตอร์เน็ต ก็จะส่งการร้องขอไปที่ Proxy Server จากนั้นตัว Proxy Server

จะแปลง IP Address ของเคร่อื งไคลเอนด์เปน็ IP Address ของ Proxy Server แล้วส่งการรร้องขอนี้ออกไปสู่

อินเตอร์เน็ต และเม่อื มีการตอบกลับจากอินเตอร์เน็ต จะกลับมาที่ Proxy Server จะมีการตรวจสอบว่าข้อมูลที่

ตอบกลับมีสิ่งผิดปกติหร่อื ไม่ ถ้าไม่มีก็จะส่งข้อมูลตอบกลับไปยังเคร่อื งไคลเอนด์ที่ร้องขอมา

รูปแบบการติดตั้ง Firewall

การติดตั้ง Firewall จะต้องติดตั้งให้เหมาะสมถึงจะเปน็ ประโยชน์ เพราะฉะนั้นจำานวนจุดที่ติดตั้งจะขึ้นอยู่

กับการออกแบบเน็ตเวิร์ค (Network Design) ถ้าการออกแบบเน็ตเวิร์คไม่มี DMZ (Demilitarize Zone) ให้

ติดตั้ง Firewall 1 จุด เคร่อื ง Proxy Server จะมีการ์ดเน็ตเวิร์ด 2 แผ่น แต่ถ้าการออกแบบเน็ตเวิร์คมี DMZ ให้

ติดตั้ง Firewall 2 จุด เคร่อื ง Proxy Server จะมีการ์ดเน็ตเวิร์ด 3 แผ่น

โปรแกรมท่หี น้าท่เีป็น Firewall ท่มี าพร้อมกับลินุกซ์ทะเล 7.0 คอื

1. lokkit เหมาะสำาหรับมอื ใหม่

2. iptables เหมาะสำาหรับมอื อาชีพ
เลือกเปิดใช้ไฟร์วอลล์ แสดงว่าลินุกซ์ละเลจะปฏิเสธการใช้บริการทั้งหมดจากเคร่อื งไคลเอนด์ การเปิดการ


ให้บริการ(การอนุญาต) ให้เลอื กรายการที่ต้องการให้มีเคร่อื งหมาย x หน้ารายการที่ต้องการ

ถ้าต้องการให้เคร่อื งไคลเอนด์สามารถใช้บริการโปรแกรมอ่นื ๆ เช่น MySQL และ PostgreSQL ให้เปิด

หน้าจอ Security Level Configuration (เมนู > ปรับแต่งระบบ > Security Level)