🔍 บทนำ
(เนื้อหาเริ่มต้นของบทความ Nmap Packet Analysis: แกะรอยการทำงานของ Scanner ระดับโลก)
บทที่ 4 นี้เราจะก้าวขึ้นมาสู่อีกระดับของการเป็นนักสืบครับ เราจะมา “แกะรอย” เครื่องมือสแกนเนอร์ที่ทรงพลังที่สุดในโลกอย่าง Nmap (Network Mapper)
หากบทที่แล้วคือการเคาะประตูบ้าน (Ping) บทนี้คือการเดินสำรวจรอบบ้านเพื่อดูว่าหน้าต่างบานไหนเปิดอยู่บ้าง (Port Scanning) โดยเราจะใช้ Tshark เป็นกล้องวงจรปิดคอยดูว่า Nmap แอบทำอะไรในระดับ Packet ครับ
🔍 04-Nmap Packet Analysis: แกะรอยการทำงานของ Scanner ระดับโลก
นักสืบส่วนใหญ่มักใช้ Nmap เพียงแค่พิมพ์คำสั่งแล้วดูผลลัพธ์ แต่ “สาย Deep” แบบเราจะเจาะลึกไปดูว่า Nmap ส่ง Packet อะไรออกไป และเป้าหมายตอบกลับมาอย่างไร เพราะการเข้าใจจังหวะเหล่านี้จะช่วยให้เราตรวจจับผู้บุกรุก (Intrusion Detection) ได้แม่นยำครับ
📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary)
| คำศัพท์ | คำอ่าน | ความหมายในเชิงเทคนิค |
|---|---|---|
| Port Scanning | พอร์ต สแกน-นิ่ง | การตรวจสอบว่าช่องทางสื่อสาร (Port) ของเป้าหมายเปิดให้บริการอยู่หรือไม่ |
| Stealth Scan | สเตลธ์ สแกน | การสแกนแบบ “หลบซ่อน” ไม่ให้ระบบ Log ของเป้าหมายบันทึกการเชื่อมต่อ (หรือที่เรียกว่า Half-Open Scan) |
| Three-way Handshake | ทรี-เวย์ แฮนด์-เชค | การจับมือ 3 ขั้นตอนของ TCP (SYN -> SYN-ACK -> ACK) |
| Zombie Host | ซอม-บี้ โฮสต์ | เครื่องคอมพิวเตอร์ที่ถูกใช้เป็น “ทางผ่าน” ในการสแกนเพื่อปกปิดตัวตนของผู้สแกนจริง (Idle Scan) |
🕵️ วิเคราะห์เทคนิคการสแกนผ่านเลนส์ของ Tshark
Nmap มีวิธีการ “เคาะประตู” หลายแบบ มาดู 2 แบบที่ใช้บ่อยที่สุดครับ:
1. TCP Connect Scan (-sT)
เป็นการสแกนแบบสุภาพที่สุด คือการ “จับมือจนสำเร็จ”
Packet Flow:
SYN->SYN-ACK->ACKผลลัพธ์: เป้าหมายจะบันทึกไว้ใน Log ว่าเราเข้าไปคุยด้วย (ไม่ค่อยดีสำหรับนักสืบที่ต้องการความเงียบ)
2. TCP SYN Stealth Scan (-sS)
นี่คือท่ามาตรฐานของ Nmap คือการ “ทักแล้วชิ่ง”
Packet Flow:
เราส่ง
SYN(ฮัลโหล เปิดไหม?)เป้าหมายตอบ
SYN-ACK(เปิดจ้า!)เราส่ง
RST(Reset) กลับไปทันที! (อ๋อรู้แล้ว บาย!)
ทำไมต้องทำแบบนี้: เพราะการส่ง
RSTไปตัดการเชื่อมต่อก่อนจะจบกระบวนการจับมือ ทำให้ Application ส่วนใหญ่ไม่บันทึก Log ว่ามีการเชื่อมต่อเกิดขึ้นครับ
🛠 การทดลอง: ดู Nmap ทำงานด้วย Tshark
ลองเปิด Terminal 2 หน้าต่างบน Arch Linux ของคุณครับ:
หน้าต่างที่ 1: รัน Tshark รอไว้
Bash
sudo tshark -i lo -f "tcp port 80"
(ใช้ -i lo หากสแกนตัวเอง หรือ -i eth0 หากสแกนเครื่องอื่น)
หน้าต่างที่ 2: สั่ง Nmap สแกนแบบ Stealth
Bash
sudo nmap -sS -p 80 localhost
สิ่งที่คุณจะเห็นใน Tshark:
[SYN]จาก Nmap[SYN, ACK]จากเป้าหมาย (ถ้าพอร์ตเปิด)[RST]จาก Nmap เพื่อปิดการสนทนาทันที
🕵️ จุดพิรุธที่นักสืบต้องมองหา (Investigative Points)
รัวสแกน (Scanning Burst): หากคุณเห็น Packet
SYNจำนวนมหาศาลจาก IP เดียววิ่งเข้าหา Port ต่างๆ ของคุณในเวลาเสี้ยววินาที นั่นคือสัญญาณของ Nmap แน่นอนพอร์ตที่ปิดตอบกลับอย่างไร: หากพอร์ตปิด เป้าหมายจะตอบกลับด้วย
[RST, ACK]ทันที นักสืบจะรู้ได้ทันทีว่าพอร์ตนั้นไม่มีบริการอยู่OS Detection: เมื่อคุณใช้คำสั่ง
-Oใน Nmap มันจะส่ง Packet ประหลาดๆ (เช่น Packet ที่มี Flag มั่วๆ) ไปถามเป้าหมาย เพื่อดูว่า OS นั้นๆ จะตอบกลับมาอย่างไร (แต่ละ OS มีนิสัยการตอบ Packet มั่วๆ ไม่เหมือนกัน)
📝 สรุปภารกิจในบทนี้
การใช้ Nmap โดยไม่ดู Packet ก็เหมือนการเดินหลับตาแล้วเอามือคลำกำแพงครับ เมื่อคุณดู Packet เป็น คุณจะรู้ว่า Nmap “ฉลาด” แค่ไหนในการหลอกล่อระบบป้องกัน และคุณจะเริ่มเข้าใจวิธีป้องกันระบบของคุณเองจากการถูกสแกนครับ
💡 ขั้นตอนต่อไปที่คุณควรลอง:
ลองสแกนด้วยคำสั่ง
nmap -sV(Version Detection) แล้วดูใน Tshark ว่า Nmap ส่ง “คำทักทาย” (Banner) อะไรไปถามพอร์ตนั้นๆ บ้างลองเปรียบเทียบ Packet ระหว่าง
-sSและ-sTด้วยตาตัวเองผ่าน Tshark