คลัง
osint

Email Investigation

Email Investigation สืบค้นข้อมูลจากที่อยู่อีเมล — บัญชีที่ผูกกับอีเมล, ข้อมูลรั่วจาก breach, การหาอีเมลขององค์กร, และการวิเคราะห์ email header เพื่อหาต้นทาง บทนี้ครอบคลุมเครื่องมือระดับโลก, breach data, และ header analysis แบบละเอียด

Intermediate#osint#email#breach#haveibeenpwned#holehe#header-analysis#ctf

1. อีเมลเป็นจุดเชื่อมข้อมูล

อีเมลเป็น identifier ที่ผูกกับหลายบริการและมักปรากฏใน data breach การสืบจากอีเมลให้: บัญชีที่สมัครด้วยอีเมลนี้, รหัสผ่าน/ข้อมูลที่รั่ว, ชื่อจริง, และเชื่อมโยงไปบุคคล เป็นจุด pivot สำคัญคู่กับ username enumeration

ใช้กับข้อมูลสาธารณะเพื่อวัตถุประสงค์ถูกกฎหมายเท่านั้น (CTF, authorized pentest) — การเข้าถึงบัญชีผู้อื่นโดยไม่ได้รับอนุญาตผิดกฎหมาย

2. หาบัญชีที่ผูกกับอีเมล

holehe — เช็คว่าอีเมลสมัครเว็บไหนบ้างLinux
# holehe เช็คว่าอีเมลนี้มีบัญชีในเว็บไหน (ไม่ส่งอีเมลถึงเป้าหมาย)
holehe target@example.com
holehe target@example.com --only-used    # เฉพาะที่มีบัญชี

# ติดตั้ง
pip install holehe
holehe ใช้ password-reset/signup flow ตรวจว่าอีเมลมีบัญชีไหม โดยไม่แจ้งเตือนเป้าหมาย — รองรับ ~120 เว็บ

3. Breach data — ข้อมูลที่รั่ว

data breach จำนวนมหาศาลถูกเปิดเผยต่อสาธารณะ การเช็คว่าอีเมลอยู่ใน breach ไหนช่วยหา: รหัสผ่านเก่า (อาจ reuse), บริการที่ใช้, ข้อมูลส่วนตัว

ตรวจ breachLinux
# HaveIBeenPwned (เว็บ haveibeenpwned.com หรือ API)
# เช็คว่าอีเมลอยู่ใน breach ไหน

# h8mail — รวมหลายแหล่ง breach
h8mail -t target@example.com
h8mail -t target@example.com --bc "/path/breachcompilation"  # ใช้ local breach DB

# Dehashed / IntelX (เว็บ, มี API) — ค้น breach เชิงลึก (ต้องสมัคร)
HaveIBeenPwned บอกว่าอยู่ใน breach ไหน; Dehashed/IntelX ให้ข้อมูลละเอียดกว่า (รหัสผ่าน/hash) — ใช้ตามกฎหมาย
ใน CTF: รหัสผ่านจาก breach ของอีเมลเป้าหมาย มักเป็นกุญแจไขขั้นต่อไป (เช่น login เข้าระบบในโจทย์ หรือ passphrase ของไฟล์ stego)

4. หาอีเมลขององค์กร

theHarvester + Hunter.ioLinux
# theHarvester — รวบรวมอีเมล/subdomain/host ของโดเมน
theHarvester -d example.com -b all
theHarvester -d example.com -b google,bing,linkedin

# Hunter.io (เว็บ/API) — หาอีเมลขององค์กร + รูปแบบอีเมล
# เช่น เจอว่ารูปแบบคือ {first}.{last}@example.com

# คาดเดารูปแบบอีเมลจากชื่อ
# john.doe@ / jdoe@ / john@ / j.doe@
รู้รูปแบบอีเมลองค์กร (จาก Hunter.io) → สร้างอีเมลของพนักงานคนอื่นจากชื่อได้

ถ้ามีตัวอีเมล (ไฟล์ .eml หรือ raw) การอ่าน header เผยต้นทาง: IP ผู้ส่งจริง, เซิร์ฟเวอร์ที่ผ่าน, ผลตรวจ SPF/DKIM/DMARC (ของจริงหรือปลอม)

  • Received: ไล่จากล่างขึ้นบน = เส้นทางอีเมล; บรรทัดล่างสุดมัก IP ต้นทางจริง
  • X-Originating-IP / X-Sender-IP: IP ผู้ส่ง
  • SPF/DKIM/DMARC: ผ่าน = อีเมลน่าเชื่อ; fail = อาจปลอม (spoof)
  • Return-Path / Reply-To: ต่างจาก From = น่าสงสัย (phishing)
  • เครื่องมือ: Google Admin Toolbox 'Messageheader', MXToolbox header analyzer
ดู header จากไฟล์ .emlLinux
# ดู header ทั้งหมด
cat email.eml | head -50
# ดึง Received chain
grep -i "^Received:" email.eml
# IP ต้นทาง
grep -iE "X-Originating-IP|X-Sender" email.eml

6. Quick Reference

  • บัญชีที่ผูกอีเมล: holehe target@example.com
  • breach: HaveIBeenPwned, h8mail -t (รหัสเก่า/ข้อมูลรั่ว)
  • org email: theHarvester -d domain -b all; Hunter.io (รูปแบบ)
  • header: Received (ไล่ล่างขึ้นบน), X-Originating-IP, SPF/DKIM
  • Return-Path ต่าง From = phishing
  • CTF: รหัสจาก breach มักเป็นกุญแจขั้นต่อไป

🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ

สมมติโจทย์ให้อีเมลเป้าหมายมา มีแค่ Kali เปล่าๆ ต้องสืบว่าอีเมลนี้ผูกกับอะไรบ้าง ทำตามนี้ทีละขั้น

  1. 1พิมพ์ holehe target@example.com ดูว่าอีเมลนี้สมัครเว็บไหนบ้าง (ไม่แจ้งเตือนเป้าหมาย)
  2. 2ถ้าเจอบัญชีหลายที่ ไล่เปิดดูว่าเปิดเผยชื่อ/username ซ้ำที่อื่นไหม
  3. 3เปิด haveibeenpwned.com พิมพ์อีเมลเดียวกัน ดูว่าเคยรั่วใน breach ไหนบ้าง
  4. 4ถ้าต้องการรายละเอียดกว่า (รหัสผ่าน/hash): พิมพ์ h8mail -t target@example.com
  5. 5ถ้าเป้าหมายเป็นองค์กรไม่ใช่บุคคล: theHarvester -d example.com -b all หารูปแบบอีเมล
  6. 6ถ้ามีไฟล์ .eml/raw email: cat email.eml | head -50 ดู header ทั้งหมด
  7. 7ไล่ Received: header จากล่างขึ้นบน หา IP ต้นทางจริง
  8. 8เช็ค SPF/DKIM/DMARC ว่าผ่านไหม (fail = อาจปลอม/สแปม)
  9. 9เทียบ Return-Path/Reply-To กับ From ว่าต่างกันไหม (ต่าง = น่าสงสัยว่าเป็น phishing)
จากอีเมลเดียว ไล่ pivot จนเจอบัญชี/breach/ต้นทาง
holehe เจอบัญชีที่ผูกกับอีเมลไหม
✅ เจอn2
❌ ไม่เจอเลยn3
บัญชีที่เจอเปิดเผย username/ชื่อจริงไหม
✅ เปิดเผยtoUser
❌ ไม่เปิดเผยอะไรเพิ่มn3
เช็ค breach (HaveIBeenPwned/h8mail) เจอไหม
✅ เจอใน breach→ ดูรหัสผ่านเก่า/ข้อมูลที่รั่ว ลองใช้ต่อ (login โจทย์/stego passphrase)
❌ ไม่เจอn4
มีไฟล์ email (.eml) ให้วิเคราะห์ header ไหม
✅ มีn5
❌ ไม่มีไฟล์ มีแต่ address เปล่าๆ→ ตันด้านนี้ ลอง theHarvester หารูปแบบอีเมลองค์กรแทน
Received chain + SPF/DKIM บอกอะไร
✅ เจอ IP ต้นทาง/ผลตรวจชัดเจน→ จบ ได้ IP/หลักฐานว่าอีเมลจริงหรือปลอม
❌ header ถูกลบ/ไม่ชัด→ ดู Return-Path/Reply-To ต่างจาก From ไหม (บอก phishing)
ยังไม่เจออะไรต่อ ต้องการอะไร
เจอ username จากบัญชี ต้องการหาบัญชีอื่นเพิ่มtoUser
เจอไฟล์แนบ/เอกสารในอีเมล มี metadata น่าสนtoMeta
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
เช็คบัญชีที่ผูกอีเมล-pip install holehe-
เช็ค breach-pip install h8mailhaveibeenpwned.com
breach เชิงลึก (รหัส/hash)-h8mail --bc (local breach db)dehashed.com, intelx.io
หาอีเมลองค์กร/รูปแบบtheharvester (ใน Kali)-hunter.io
วิเคราะห์ header อีเมลgrep, cat-Google Admin Toolbox Messageheader, mxtoolbox.com
crack รหัสผ่านที่ได้จาก breachjohn, hashcat-crackstation.net
🚑 ถ้าตันสนิท ลองท่าถัดไป:
• เจอ username จากบัญชีที่ผูกอีเมล → ไป Username Enumeration
• ไฟล์แนบ/เอกสารในอีเมลมี metadata น่าสน → ไป Metadata Collection
• เจอรูปแนบมี GPS → ไป Geolocation

โน้ตของฉัน

ยังไม่มีโน้ตสำหรับหัวข้อนี้