🔍 บทนำ

(เนื้อหาเริ่มต้นของบทความ Abnormal Flags Analysis: สแกนหาจุดพิรุธผ่าน TCP Flags)

บทที่ 7 นี้เราจะเจาะลึกสิ่งที่เรียกว่า “สีหน้าพิรุธ” ของ Packet ครับ ในบทก่อนเราเรียนรู้การจับมือที่ปกติ แต่ในโลกของการจารกรรม ผู้บุกรุกมักจะใช้เทคนิคการตั้งค่า Flag (ธง) ใน TCP Header ให้ผิดธรรมชาติเพื่อหลบเลี่ยงการตรวจจับของ Firewall หรือเพื่อระบุประเภทของระบบปฏิบัติการเป้าหมาย

หากคุณอ่าน Flag เหล่านี้ขาด คุณจะเห็น “เจตนาซ่อนเร้น” ของผู้บุกรุกทันทีครับ


🚩 07-Abnormal Flags Analysis: สแกนหาจุดพิรุธผ่าน TCP Flags

ในสถานการณ์ปกติ TCP Flags จะถูกตั้งค่าตามลำดับขั้นตอนของโปรโตคอล แต่สำหรับนักสืบเครือข่าย เมื่อเราพบ Packet ที่มีตัวเลือกแปลกๆ เช่น การส่งสัญญาณปิดการเชื่อมต่อทั้งที่ยังไม่ได้เริ่มจับมือ หรือการส่ง Packet ที่ไม่มี Flag เลยแม้แต่ตัวเดียว สิ่งเหล่านี้คือ “ธงแดง” (Red Flags) ที่บอกว่ามีคนกำลังพยายามทำอะไรบางอย่างกับระบบของคุณ


📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary)

คำศัพท์คำอ่านความหมายในเชิงเทคนิค
Evasionอี-เว-ชันเทคนิคการ “หลบหลีก” ระบบป้องกัน เช่น การดัดแปลง Packet เพื่อให้ Firewall มองข้าม
Out-of-Stateเอาต์-ออฟ-สเตทPacket ที่โผล่มาแบบ “ผิดจังหวะ” เช่น ส่งคำตอบรับ (ACK) มาทั้งที่ไม่มีการส่งข้อมูล
Xmas Scanคริสต์-มาส สแกนการส่ง Packet ที่เปิด Flag ทุกตัวจนสว่างไสวเหมือนไฟต้นคริสต์มาส (FIN, PSH, URG)
Null Scanนัล สแกนการส่ง Packet ที่ “ว่างเปล่า” ไม่มีการตั้งค่า Flag ใดๆ เลย (000000)
Bitwise Filterบิต-ไวส์ ฟิล-เตอร์การกรองข้อมูลระดับบิต ซึ่งนักสืบใช้เพื่อหาเจาะจงเฉพาะ Flag ที่สนใจใน Tshark

🕵️ วิเคราะห์การสแกนแบบผิดธรรมชาติ (Evasion Scans)

ผู้บุกรุกมักใช้ Nmap ในโหมดพิเศษเพื่อทดสอบว่า Firewall ของเป้าหมายฉลาดแค่ไหน:

1. Null Scan (ธงว่าง)

  • กลไก: ส่ง Packet ที่ไม่มี Flag เลย

  • เจตนา: ตามมาตรฐาน TCP เครื่องที่เปิดอยู่ควรจะ “เงียบ” เมื่อเจอหน้าต่างที่ว่างเปล่าแบบนี้ แต่ถ้าเครื่องปิดอยู่มันจะตอบ RST กลับมา

  • จุดสืบสวน: ตรวจจับด้วย Tshark: tcp.flags == 0

2. Xmas Scan (ธงไฟคริสต์มาส)

  • กลไก: เปิด Flag FIN, PSH, และ URG พร้อมกัน

  • เจตนา: เป็นการสร้างความสับสนให้ระบบจัดการ Stack ของ OS รุ่นเก่าๆ เพื่อดูการตอบสนอง

  • จุดสืบสวน: ตรวจจับด้วย Tshark: tcp.flags == 0x029 (เลขฐานสิบหกของ FIN+PSH+URG)

3. SYN-FIN Scan (การทักทายที่ขัดแย้ง)

  • กลไก: ส่งทั้งทักทาย (SYN) และขอลาก่อน (FIN) ใน Packet เดียวกัน

  • เจตนา: เป็นสถานะที่เป็นไปไม่ได้ในธรรมชาติ ใช้เพื่อหลบเลี่ยง IDS (Intrusion Detection System) บางรุ่นที่ตรวจจับแค่ SYN อย่างเดียว

  • จุดสืบสวน: ตรวจจับด้วย Tshark: tcp.flags.syn == 1 && tcp.flags.fin == 1


🛠 การสืบสวนด้วย Tshark: เจาะลึกระดับบิต

การใช้ Tshark กรองหา Flag ที่ผิดปกติ ต้องใช้ความแม่นยำสูงครับ:

กรองหา Packet ที่พยายาม “Reset” การเชื่อมต่อแบบรัวๆ (อาจโดนยิง RST Attack)

Bash

sudo tshark -i eth0 -Y "tcp.flags.reset == 1"

กรองหา Xmas Scan (มองหาบิตพิรุธ)

Bash

sudo tshark -i eth0 -Y "tcp.flags & 0x29"

🕵️ บันทึกการวิเคราะห์: ทำไมต้องทำเรื่องยากให้วุ่นวาย?

นักสืบต้องเข้าใจว่าผู้บุกรุกไม่ได้ใช้เทคนิคเหล่านี้เพียงเพื่อความสนุก แต่มีเป้าหมาย 3 ประการ:

  1. OS Fingerprinting: แต่ละระบบปฏิบัติการ (Windows, Linux, BSD) มีวิธีการตอบสนองต่อ Flag ที่ผิดกฎ TCP ไม่เหมือนกัน นักสืบจึงใช้จุดนี้ระบุ OS เป้าหมายได้แม่นยำกว่าการดู TTL

  2. Firewall Bypassing: Firewall บางรุ่นจะตรวจสอบเฉพาะการเริ่มจับมือ (SYN) แต่ถ้าเราส่ง Packet “ไร้สถานะ” (Out-of-state) เข้าไป มันอาจจะปล่อยผ่านไปถึงเครื่องข้างใน

  3. Information Gathering: เพื่อหาพอร์ตที่เปิดอยู่โดยไม่ทิ้งร่องรอยไว้ในระบบ Log ของ Application


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

  1. ลองใช้ Nmap ในเครื่อง Arch Linux ของคุณรันคำสั่ง sudo nmap -sX localhost (Xmas Scan) แล้วเปิด Tshark ดูผลลัพธ์ที่เกิดขึ้น คุณจะเห็น “ไฟคริสต์มาส” สว่างขึ้นในหน้าจอ Terminal ของคุณทันที

  2. สังเกตว่า tcp.flags.str ใน Tshark จะแสดงตัวอักษรย่อของ Flag ที่เปิดอยู่ เช่น [FIN, PSH, URG]