🔍 บทนำ

(เนื้อหาเริ่มต้นของบทความ 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:

    1. เราส่ง SYN (ฮัลโหล เปิดไหม?)

    2. เป้าหมายตอบ SYN-ACK (เปิดจ้า!)

    3. เราส่ง 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:

  1. [SYN] จาก Nmap

  2. [SYN, ACK] จากเป้าหมาย (ถ้าพอร์ตเปิด)

  3. [RST] จาก Nmap เพื่อปิดการสนทนาทันที


🕵️ จุดพิรุธที่นักสืบต้องมองหา (Investigative Points)

  1. รัวสแกน (Scanning Burst): หากคุณเห็น Packet SYN จำนวนมหาศาลจาก IP เดียววิ่งเข้าหา Port ต่างๆ ของคุณในเวลาเสี้ยววินาที นั่นคือสัญญาณของ Nmap แน่นอน

  2. พอร์ตที่ปิดตอบกลับอย่างไร: หากพอร์ตปิด เป้าหมายจะตอบกลับด้วย [RST, ACK] ทันที นักสืบจะรู้ได้ทันทีว่าพอร์ตนั้นไม่มีบริการอยู่

  3. OS Detection: เมื่อคุณใช้คำสั่ง -O ใน Nmap มันจะส่ง Packet ประหลาดๆ (เช่น Packet ที่มี Flag มั่วๆ) ไปถามเป้าหมาย เพื่อดูว่า OS นั้นๆ จะตอบกลับมาอย่างไร (แต่ละ OS มีนิสัยการตอบ Packet มั่วๆ ไม่เหมือนกัน)


📝 สรุปภารกิจในบทนี้

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


💡 ขั้นตอนต่อไปที่คุณควรลอง:

  1. ลองสแกนด้วยคำสั่ง nmap -sV (Version Detection) แล้วดูใน Tshark ว่า Nmap ส่ง “คำทักทาย” (Banner) อะไรไปถามพอร์ตนั้นๆ บ้าง

  2. ลองเปรียบเทียบ Packet ระหว่าง -sS และ -sT ด้วยตาตัวเองผ่าน Tshark