🔍 บทนำ
(เนื้อหาเริ่มต้นของบทความ ICMP Analysis: อ่านค่าจาก Ping และ Traceroute เพื่อระบุตัวตนเป้าหมาย) บทที่ 3 ของเราขยับขึ้นมาที่ Internet Layer (Layer 3) ครับ หลังจากที่เรารู้ว่าใครเป็นใครในวงแลนผ่าน ARP แล้ว คราวนี้เราจะใช้ ICMP เปรียบเสมือน “เครื่องส่งสัญญาณโซนาร์” เพื่อตรวจสอบว่าเป้าหมายที่เราสนใจนั้น “มีตัวตน” อยู่หรือไม่ และเขาอยู่ห่างจากเราแค่ไหน
🛰️ 03-ICMP Analysis: อ่าน “เสียงสะท้อน” เพื่อระบุตัวตนเป้าหมาย
ICMP (Internet Control Message Protocol) ไม่ใช่โปรโตคอลสำหรับส่งข้อมูลเหมือน TCP หรือ UDP แต่มันคือ “ข้อความแจ้งสถานะ” ของระบบเครือข่าย นักสืบใช้ ICMP เพื่อทำ Host Discovery (การหาว่าเครื่องเปิดอยู่ไหม) และ Network Mapping (การวาดแผนผังเส้นทาง)
📖 พจนานุกรมฉบับนักสืบ (The Investigator’s Glossary)
| คำศัพท์ | คำอ่าน | ความหมายในเชิงเทคนิค |
|---|---|---|
| Payload | เพย์-โหลด | ข้อมูลส่วนเกินที่แถมไปกับ Packet (โจรบางคนใช้ช่องนี้ซ่อนข้อมูลลับที่เรียกว่า ICMP Tunneling) |
| TTL (Time To Live) | ที-ที-แอล | “อายุขัย” ของ Packet ที่จะลดลง 1 ทุกครั้งที่ผ่าน Router (Hop) ใช้เพื่อป้องกัน Packet วนลูปไม่รู้จบ |
| Hop | ฮ็อป | การกระโดดจาก Router ตัวหนึ่งไปยังอีกตัวหนึ่ง |
| Unreachable | อัน-รีช-อะ-เบิล | สถานะที่ปลายทางบอกว่า “มาไม่ถึง” หรือ “ไม่มีช่องทางเข้า” |
| Quench | เคว็นช์ | การส่งสัญญาณบอกให้ต้นทาง “ลดความเร็ว” ในการส่งข้อมูลลงหน่อยเพราะระบบรับไม่ไหว |
🔍 วิเคราะห์ประเภท ICMP ที่พบบ่อย (Common Types)
ในหน้าจอ Tshark คุณจะเจอตัวเลข Type และ Code ซึ่งเป็นภาษาลับของ ICMP:
Type 8 (Echo Request): “ฮัลโหล มีใครอยู่ไหม?” (ส่งออกไป)
Type 0 (Echo Reply): “อยู่จ้า!” (ตอบกลับมา)
Type 3 (Destination Unreachable): “ไปไม่ถึงนะ” (อาจโดน Firewall บล็อก หรือ Port ปิด)
Type 11 (Time Exceeded): “หมดเวลาแล้ว” (Packet ตายระหว่างทาง - เป็นหัวใจของคำสั่ง
traceroute)
🕵️ เทคนิคสืบสวน: TTL Fingerprinting (การเดา OS จากอายุขัย)
นี่คือความลับที่นักสืบใช้เดาว่าเป้าหมายคือเครื่องประเภทไหน โดยดูจากค่า TTL เริ่มต้นที่ตอบกลับมา:
| ค่า TTL ที่เห็นใน Packet | ระบบปฏิบัติการที่คาดเดา (Initial TTL) |
|---|---|
| 64 | Linux / FreeBSD / macOS |
| 128 | Windows |
| 255 | Network Devices (Cisco, Juniper, etc.) |
ตัวอย่าง: ถ้าคุณ
pingไปที่เครื่องหนึ่งแล้วเห็นค่าttl=54แสดงว่าเขาน่าจะเป็น Linux (เริ่มที่ 64) และอยู่ห่างจากคุณไป 10 Hops (64 - 54 = 10)
🛠 การวิเคราะห์ด้วย Tshark
ลองจับ Packet เมื่อเราทำการ Ping หรือใช้ Nmap สแกน:
1. ดักจับเฉพาะ ICMP เพื่อดูการโต้ตอบ
Bash
sudo tshark -i eth0 -f "icmp"
2. วิเคราะห์ค่า TTL และ Payload อย่างละเอียด
Bash
sudo tshark -i eth0 -f "icmp" -T fields -e ip.src -e ip.dst -e ip.ttl -e icmp.type
📝 บันทึกการวิเคราะห์: เมื่อ ICMP กลายเป็นอาวุธ
ICMP Flooding: การรัวส่ง Type 8 จำนวนมากเพื่อให้เป้าหมายค้าง (DoS Attack)
Silent Host: เป้าหมายบางเครื่องตั้งค่าไม่ตอบสนองต่อ ICMP (ปิด Ping) เพื่อหลบเลี่ยงการสืบสวน แต่นักสืบยังมีวิธีอื่น เช่น การส่ง TCP Packet ไปเช็คแทน (ซึ่งเราจะเรียนในบทถัดไป)
💡 ขั้นตอนต่อไปที่คุณควรลอง:
ลอง
ping google.comแล้วดูค่า TTL ว่าได้เท่าไหร่? จากนั้นลองคำนวณดูว่า Google อยู่ห่างจากคุณกี่ Hopsลองใช้คำสั่ง
traceroute 8.8.8.8(ใน Arch Linux คือiputils-tracepath) แล้วสังเกต Packet Type 11 ที่เด้งกลับมาใน Tshark