forensics
Wireshark (Forensics)
Wireshark เป็นเครื่องมือวิเคราะห์ packet เชิงลึกแบบ GUI จุดแข็งคือ display filter ที่ทรงพลังและ follow stream / export object บทนี้ลงลึก display filter ครบทุกแบบ, Statistics, follow stream, export objects, การถอด protocol เฉพาะ (USB/DNS/TLS), และเทคนิคหา flag (เนื้อหาเพื่อการศึกษา/ฝึกใน lab/CTF)
IntermediateAdvanced#wireshark#forensics#network#display-filter#follow-stream#ctf
1. Display filters (cheat sheet)
filter ที่ใช้บ่อย (display ≠ capture filter)
# Protocol
http / dns / tcp / udp / icmp / arp / tls / ftp / smb2 / telnet
# IP / port
ip.addr == 10.0.0.5 # เกี่ยวกับ IP นี้ (src หรือ dst)
ip.src == 10.0.0.5 ; ip.dst == 1.1.1.1
tcp.port == 80 ; udp.port == 53
tcp.stream eq 5 # stream เฉพาะ
# HTTP
http.request.method == "POST"
http.request.uri contains "admin"
http.response.code == 200
http.host == "evil.com"
http.file_data contains "flag"
# ค้นเนื้อหา
frame contains "flag" # ทุก byte ใน frame
tcp contains "password"
# DNS (tunneling/exfil)
dns.qry.name contains "exfil"
dns.qry.type == 16 # TXT
frame.len > 200 && dns # query ยาวผิดปกติ
# ตัด noise
!(arp || icmp || dns)
# scan detection
tcp.flags.syn==1 && tcp.flags.ack==0display filter กรองที่แสดง; frame contains หา keyword เร็ว; tcp.stream eq N โฟกัส 1 บทสนทนา
2. Statistics — ภาพรวม
- Statistics → Protocol Hierarchy: มี protocol อะไรบ้าง สัดส่วนเท่าไหร่ (เริ่มที่นี่)
- Statistics → Conversations: ใครคุยกับใคร, ปริมาณ byte (หา flow ใหญ่ผิดปกติ)
- Statistics → Endpoints: IP/port ทั้งหมด + geolocation
- Statistics → HTTP → Requests: URL ที่ถูกขอทั้งหมด
- Statistics → DNS: สรุป DNS query
3. Follow Stream + Export Objects
- Follow → TCP/HTTP/UDP Stream: คลิกขวา packet → Follow — อ่านบทสนทนาเต็ม; ปุ่มมุมขวาล่างสลับ ASCII/Hex Dump/Raw; dropdown เลือกทิศทาง (client→server เท่านั้น)
- Save Follow Stream: ในหน้าต่าง Follow กด Save As ดึง raw data (เช่นไฟล์ที่ถูกส่ง)
- File → Export Objects → HTTP/SMB/TFTP/IMF/DICOM: ดึงไฟล์/รูป/email ที่โอนผ่าน network ออกมาเป็นไฟล์
- Export Packet Bytes (Ctrl+H): ดึง raw bytes ของ field ที่เลือก (เช่น payload ที่ฝังไฟล์)
4. ถอด protocol เฉพาะ + หา flag
- HTTP: Export Objects ดึงไฟล์/รูป; ดู POST data หา credential/flag
- USB HID keyboard: filter
usb.capdata→ ดึง keystroke → map HID usage code → ข้อความที่พิมพ์ (มี script เช่น usbkeyboard.py) - USB mass storage: ดึงไฟล์ที่ copy ผ่าน USB
- DNS tunneling: รวม subdomain จาก query → decode (base32/hex)
- TLS decrypt: Preferences → Protocols → TLS → (Pre)-Master-Secret log filename → ใส่ SSLKEYLOGFILE
- ICMP: ดู data field (ข้อมูลซ่อนใน ping)
- ค้น flag: Edit → Find Packet → String → ค้น 'flag' ใน packet bytes
USB keystroke เป็นโจทย์ forensics ยอดนิยม — capture HID มี usb.capdata 8 byte/packet, byte ที่ 3-8 เป็น keycode; map ตาม HID usage table จะได้ข้อความ (flag) ที่พิมพ์
5. Quick Reference
- filter: http.request.method=='POST', frame contains 'flag'
- tcp.stream eq N, ip.addr==X, dns.qry.type==16
- Statistics → Protocol Hierarchy / Conversations (เริ่ม)
- Follow TCP/HTTP Stream; Export Objects ดึงไฟล์
- USB: usb.capdata → map HID keycode → ข้อความ
- TLS decrypt (SSLKEYLOGFILE); DNS/ICMP tunneling
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติเปิดไฟล์ pcap ด้วย Wireshark แล้วยังไม่รู้จะกดตรงไหนก่อน มีแค่ Kali เปล่าๆ ทำตามนี้ทีละขั้น
- 1เปิดไฟล์: พิมพ์ wireshark capture.pcapng ใน terminal (หรือดับเบิลคลิกในเมนู)
- 2ดู Statistics → Protocol Hierarchy ก่อนเสมอ ว่ามี protocol อะไรเด่น
- 3ลอง filter เร็ว: พิมพ์ frame contains "flag" ในช่องกรองด้านบน
- 4เจอ HTTP: filter http.request ดู URL/POST data
- 5คลิกขวา packet ที่น่าสนใจ → Follow → TCP/HTTP Stream อ่านบทสนทนาเต็ม
- 6File → Export Objects → HTTP/SMB ดึงไฟล์ที่ถูกโอนออกมา
- 7ถ้าเป็น DNS แปลกๆ: filter dns.qry.type==16 หรือดู query ยาวผิดปกติ
- 8ถ้าเป็น USB capture: filter usb.capdata แล้วใช้ script map HID keycode
- 9ถ้าเจอ TLS เข้ารหัส: Preferences → Protocols → TLS → ใส่ SSLKEYLOGFILE (ถ้าโจทย์แถมมาให้)
- 10Edit → Find Packet → String ค้น "flag" ใน packet bytes โดยตรง
Protocol Hierarchy บอกอะไร → ไปทางนั้น
Protocol Hierarchy บอกว่าเด่นเรื่องอะไร
HTTP/FTP/Telnet (plaintext เยอะ)→n2
USB (usb.capdata)→n3
DNS ผิดปกติ (จำนวน/ความยาว query)→n4
TLS/HTTPS ทั้งหมด→n5
Follow Stream/Export Objects เจอไฟล์หรือ credential ไหม
✅ เจอ→→ เปิดไฟล์ที่ export หรือใช้ credential ต่อ จบ
❌ ไม่เจอ→→ ลอง frame contains 'flag' ทั่วทั้ง capture
map usb.capdata เป็นข้อความเจอ flag ไหม
✅ เจอ→→ จบ อ่านข้อความที่พิมพ์
❌ ยังไม่ชัด→→ เช็คว่าเป็น HID keyboard จริงไหม (8 byte/packet, byte 3-8=keycode)
รวม dns.qry.name แล้ว decode เจอข้อความไหม
✅ เจอ→→ ประกอบข้อความจาก query เป็น flag จบ
❌ ไม่เจอ→→ อาจไม่ใช่ tunneling ย้อนกลับไปดู protocol อื่น
มี SSLKEYLOGFILE/private key คู่โจทย์ไหม
✅ มี→→ ใส่ใน Preferences → TLS แล้วอ่าน HTTP plaintext จบ
❌ ไม่มี→→ ตัน decrypt ไม่ได้ — ดู metadata แทน (SNI, cert CN, ขนาด/เวลา)
ยังไม่เจอเลย ต้องการอะไรต่อ
อยากใช้ CLI สรุปสถิติ/สคริปต์ดึง field อัตโนมัติ→toTshark
โจทย์มี memory dump คู่กัน→toVol
ต้องเรียงเวลาทุก event→toTimeline
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| เปิด/กรอง packet | wireshark | apt install wireshark | - |
| สรุปสถิติ/สคริปต์ CLI | tshark | - | - |
| ดึงไฟล์ที่โอน | wireshark (Export Objects) | - | - |
| สร้าง log สรุปทั้ง capture | zeek | apt install zeek | - |
| decode DNS/USB payload | - | - | CyberChef |
| map USB HID keystroke | - | git clone usbkeyboard-decoder scripts | - |
| crack/ดูรหัสที่เจอ | john, hashcat | - | crackstation.net |
🚑 ถ้าตันสนิท ลองท่าถัดไป:
• อยาก CLI/สคริปต์อัตโนมัติกว่า GUI (ดึง field เป็น batch) → ไป PCAP Analysis
• โจทย์มี memory dump คู่กัน → ไป Volatility
• ต้องเรียง event ทุกแหล่งตามเวลา → ไป Timeline Analysis
• ไฟล์ที่ export ออกมามี metadata น่าสน → ไป Metadata Collection
• อยาก CLI/สคริปต์อัตโนมัติกว่า GUI (ดึง field เป็น batch) → ไป PCAP Analysis
• โจทย์มี memory dump คู่กัน → ไป Volatility
• ต้องเรียง event ทุกแหล่งตามเวลา → ไป Timeline Analysis
• ไฟล์ที่ export ออกมามี metadata น่าสน → ไป Metadata Collection
หัวข้อที่เชื่อมโยง
PCAP Analysisอยู่ใน workflowWireshark Playbookเครื่องมือเดียวกันVolatilityอยู่ใน workflowTimeline Analysisอยู่ใน workflowHandshake Analysisเครื่องมือเดียวกันMemory AnalysisเทคนิคเดียวกันDisk AnalysisเทคนิคเดียวกันAutopsyเทคนิคเดียวกันVolatility PlaybookเทคนิคเดียวกันBLE Attacksเครื่องมือเดียวกันMetadata AnalysisเทคนิคเดียวกันExifToolเทคนิคเดียวกัน
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้