วันพุธที่ 21 ตุลาคม พ.ศ. 2552

The TCP FIN scan and The TCP NULL scan

ในการทดลองเพื่อให้เห็นภาพลักษณะการทำงานของ TCP FIN scan และ TCP NULL scan ได้ทำการจำลอง network ไว้บนโปรแกรม Vmware โดยที่กำหนดให้เครื่อง Web Server มี IP 192.168.10.24 ทำตัวเป็น server และ PC มี IP 192.168.10.25 เป็นเครื่อง client ที่ทำหน้าที่ในการ scan port ต่างๆ ของ Web server ทั้งแบบ FIN scan และแบบ NULL scan โดยทำการติดตั้ง โปรแกรม Wireshark ไว้คอยตรวจจับ packet ต่างๆที่ได้จากการ scan ไว้บนเครื่อง PC เพื่อมาทำการวิเคราะห์ packet ที่ได้

รูปที่ 1 network ที่ใช้ในการตรวจจับ packet

The TCP FIN scan ลักษณะการทำงานของเทคนิคนี้จะทำการส่ง TCP packets ที่เซตค่า flag FIN เป็น 1 (TCP FIN) ไปยังระบบของเหยื่อเป้าหมายซึ่งมันสามารถที่จะทะลุผ่านไฟล์วอลล์ที่เป็นแบบ packet filters และโปรแกรมตรวจจับการสแกนไปได้โดยไม่ถูกตรวจพบ เพราะเมื่อผ่านไฟล์วอล์ไปได้ถึง server เป้าหมายที่ทำการโจมตีได้แล้ว server จะตอบสนองกลับไปด้วย RST flag สำหรับพอร์ตต่าง ๆ ที่ปิดอยู่ และในของส่วนพอร์ตที่เปิดอยู่ก็จะไม่สนใจ packets เหล่านั้นเลย ดังนั้นเครื่องที่ทำการโจมตีก็จะได้ข้อมูลว่ามันได้รับ RST จากพอร์ตไหนบ้างและไม่ได้ RST จากพอร์ตไหนบ้าง (ทำให้ทราบหมายเลขพอร์ตที่ไม่ได้เปิดให้บริการ) โดยปกติแล้ว เทคนิคนี้มักใช้ได้กับเครื่องปลายทางที่รันบนยูนิกช์

รูปที่ 2 ผลจากการ scan โดยใช้คำสั่ง nmap -sF 192.168.10.24

รูปที่ 3 ผลจากการ FIN scan โดยใช้โปรแกรม Wireshark

รูปที่ 4 ผลจากการได้รับ RST ตอบกลับ โดยใช้โปรแกรม Wireshark
รูปที่ 5 Flow Graph ที่ได้จากการตรวจ packet โดยโปรแกรม Wireshark

จากรูปที่ 2 เป็นผลจากการ scan port ต่างๆบนเครื่อง Web Server โดยใช้โปรแกรม Zenmap-GUI ซึ่งเป็น nmap for windowsXP โดยใช้คำสั่ง nmap -sF 192.168.10.24 ซึ่งผลที่ได้มี port ที่เปิดไว้คือ port 22, 80,111,139,443,445,3128 โดย TCP packet ที่ส่งไปจากเครื่อง IP 192.168.10.25 มีการเซ็ต flag FIN = 1 ดังรูปที่ 2 เป็นการใช้โปรแกรม wireshark จับ packet มาดูก็จะเห็นว่ามีการเซ็ต flag FIN=1 แล้วส่งไปยังตัวเครื่อง Web server IP 192.168.10.24 ถ้าหากว่า port นั้นไม่เปิด Web server ปลายทางก็จะตอบกลับโดยการส่ง packet ที่มีการเซ็ต flag RST=1 กลับมายังเครื่อง PC ดังรูปที่ 4

แต่ถ้าหากว่ามี port ใดๆของ Web server เปิดอยู่ เมื่อเครื่อง PC สแกนมาถึง port นั้น Web server ก็จะไม่ตอบอะไรกลับมาเลย ดังรูปที่ 5 Flow Graph จะไม่มีการตอบกลับเมื่อ เครื่อง PC สแกนมาถึง port 80 ที่เปิดให้บริการอยู่

ดังนั้นตามการทำงานลักษณะแบบนี้ทำให้ทราบได้ว่าบนเครื่อง Web server มีการเปิด port อะไรไว้บ้าง The TCP NULL scan ลักษณะการทำงานของเทคนิคนี้จะไม่ใช้ flag ในการสแกนเลย โดยจะส่ง TCP packet ที่มี sequence number แต่ไม่มี flag ออกไปยังเครื่องเป้าหมาย ถ้าพอร์ตปิดอยู่จะส่ง flag RST packet กลับมา แต่ถ้าพอร์ตเปิดอยู่ ก็จะไม่สนใจ packet นั้นเลย

โดยทั่วไปแล้ว TCP packet ประเภทนี้จะไม่มีอยู่ในข้อกำหนดของ potocol จึงไม่มีผู้สนใจ นอกจากนี้ยังทำให้ potocol ใน layer ชั้นสูงขึ้นไปไม่ทราบว่ามีการส่ง packet เข้ามาด้วย นอกจากการใช้ packet เหล่านี้เพื่อการสแกนพอร์ตแล้วยังสามารถนำ packet เหล่านี้ไปใช้ในการตรวจสอบระบบปฏิบัติการของเหยื่อเป้าหมายได้อีกด้วย เนื่องจากระบบปฎิบัติการแต่ละแบบจะมีการตอบสนองที่ไม่เหมือนกัน


รูปที่ 6 ผลการ scan ด้วย Zenmap โดยคำสั่ง nmap -sN 192.168.10.24

การทำการทดลองก็จะใช้ network จำลองบน Vmware ดังรูปที่ 1 ด้วยเช่นกัน

จากรูปที่ 6 เป็นผลการสแกน port โดยใช้โปรแกรม Zenmap ซึ่งเป็น nmap for windowsXP โดยใช้คำสั่ง nmap -sN 192.168.10.24 ซึ่งผลที่ได้มี port ที่เปิดไว้คือ port 22, 80,111,139,443,445,3128 โดย TCP packet ที่ส่งไปจากเครื่อง IP 192.168.10.25 ไม่มีการเซ็ตค่าใดของ flag เลย

ดังรูปที่ 7 เป็นการใช้โปรแกรม wireshark จับ packet มาดูก็จะเห็นว่าไม่มีการเซ็ต flag TCP แล้วส่งไปยังตัวเครื่อง Web server IP 192.168.10.24

- ถ้าหากว่า port นั้นไม่เปิด Web server ปลายทางก็จะตอบกลับโดยการส่ง packet ที่มีการเซ็ต flag RST=1 กลับมายังเครื่อง PC ดังรูปที่ 8

- แต่ถ้าหากว่ามี port ใดๆของ Web server เปิดอยู่ เมื่อเครื่อง PC สแกนมาถึง port นั้น Web server ก็จะไม่ตอบอะไรกลับมาเลย ดังรูปที่ 9 Flow Graph จะไม่มีการตอบกลับเมื่อ เครื่อง PC สแกนมาถึง port 80 ที่เปิดให้บริการอยู่

ดังนั้นตามการทำงานลักษณะแบบนี้ทำให้ทราบได้ว่าบนเครื่อง Web server มีการเปิด port อะไรไว้บ้างนอกเหนือไปจากนั้นเรายังสามารถนำไปวิเคราะห์ เพื่อตรวจสอบว่าเป้าหมายของเราเป็นะบบปฏิบัติการอะไรได้อีกด้วย เนื่องจากแต่ละระบบปฏิบัติการมีการตอบสนองที่ไม่เหมือนกัน ซึ่งในการทดลองนี้ตัว Web server ได้ใช้ระบบปฏิบัติการ Linux Fedora Core 8 และเครื่อง PC ใช้ระบบปฏิบัติการ WindowsXP SP2

รูปที่ 7 ผลจากการ NULL scan โดยใช้โปรแกรม Wireshark

รูปที่ 8 ผลจากการได้รับ RST ตอบกลับ โดยใช้โปรแกรม Wireshark
รูปที่ 9 Flow Graph ที่ได้จากการตรวจ packet โดยโปรแกรม Wireshark

-------------------------------
ขอขอบคุณเพื่อน ๆ กลุ่ม Webgateway ที่ร่วมกันทำการทดลองนี้ขึ้น
(วิศวเครือข่าย มาหาวิทยาลัยเทคโนโลยีมหานคร-MSNE#2)
1.นาย ธีรพงษ์ ขจรวุฒิตระกูล
2.นาย จิตกร กั้วมาลา
3.นาย สัมฤทธิ์ เทวะภูมิ
4.นาย ธีระศักดิ์ ถึงเสียบญวน
5.นาย วิเชียร นวกฤษ
6.นาย สุรเชษฐ์ ณ นคร
7.นาย สุรเชฐ ราชูการ

1 ความคิดเห็น: