คลัง
osint

Username Enumeration

Username Enumeration คือการค้นหาบัญชีของบุคคลเป้าหมายข้ามแพลตฟอร์มหลายร้อยเว็บจาก username เดียว — คนมักใช้ชื่อเดิมซ้ำหลายที่ ทำให้ pivot จากบัญชีหนึ่งไปเจอข้อมูลอีกที่ได้ บทนี้ครอบคลุมเครื่องมือระดับโลกทุกตัว, เทคนิค pivot, และ workflow การยืนยันตัวตน

BeginnerIntermediate#osint#username#sherlock#maigret#account-discovery#pivot#ctf

1. หลักการและความสำคัญ

คนส่วนใหญ่ใช้ username เดิมซ้ำ ข้ามหลายแพลตฟอร์ม (GitHub, Reddit, Twitter, Instagram, ฯลฯ) เพราะจำง่าย การหา username ในทุกเว็บที่มีอยู่ทำให้ได้ภาพรวมของบุคคล และ pivot: บัญชีหนึ่งอาจเผยอีเมล → อีเมลเผยชื่อจริง → ชื่อจริงเผย LinkedIn → ฯลฯ เป็นจุดเริ่มต้นสำคัญของ OSINT ที่เน้นบุคคล

OSINT ใช้เฉพาะข้อมูลสาธารณะและทำเพื่อวัตถุประสงค์ที่ถูกกฎหมาย (CTF, pentest ที่ได้รับอนุญาต, security research) — เคารพความเป็นส่วนตัวและกฎหมายคุ้มครองข้อมูลของแต่ละประเทศ

2. เครื่องมือระดับโลก

เครื่องมือจุดเด่นจำนวนเว็บ
Sherlockเร็ว นิยมสุด มาตรฐาน~400+
Maigretละเอียดสุด ดึง metadata จากหน้า profile~3000+
WhatsMyNameฐานข้อมูล community ใหญ่ (web/CLI)~600+
Blackbirdเร็ว มี UI~600+
Sherlock + MaigretLinux
# Sherlock — ค้นเร็ว
sherlock username
sherlock username --timeout 5 --print-found
# หลาย username
sherlock user1 user2 user3

# Maigret — ละเอียดสุด ดึงข้อมูลจาก profile ด้วย
maigret username
maigret username --html              # รายงาน HTML
maigret username -a                  # ค้นทุกเว็บ (ช้าแต่ครบ)
maigret username --pdf               # รายงาน PDF

# ติดตั้ง
pip install sherlock-project maigret
เริ่ม Sherlock (เร็ว) → ถ้าต้องการครบใช้ Maigret (ดึง metadata เพิ่ม เช่น ชื่อจริง/รูป/bio จาก profile)

3. เทคนิค Pivot

การ pivot คือใช้ข้อมูลที่เจอจากบัญชีหนึ่ง ขยายไปหาบัญชี/ข้อมูลอื่น — เป็นหัวใจของ OSINT เชิงบุคคล:

  • username → variation: ลองดัดแปลง (john.doe, johndoe, jdoe, john_doe, doe.john) — คนมักมีหลายแบบ
  • profile → อีเมล: bio/about page มักมีอีเมล → ไปหัวข้อ Email Investigation
  • profile → ชื่อจริง/รูป: Maigret ดึง display name → reverse image search รูป
  • GitHub → อีเมล: git log ของ repo เผยอีเมล commit; API users/USER/events
  • username → รหัสผ่านที่รั่ว: เช็คใน breach (HaveIBeenPwned) → เชื่อมโยงอีเมล
  • cross-reference: bio บอกเมือง/งาน/งานอดิเรก → ยืนยันว่าบัญชีต่างแพลตฟอร์มเป็นคนเดียวกัน

4. ยืนยันว่าเป็นคนเดียวกัน

username ตรงกันไม่ได้แปลว่าคนเดียวกันเสมอ (ชื่อซ้ำ/คนละคน) ต้องยืนยันด้วยหลักฐานหลายชั้น:

  • รูปโปรไฟล์เดียวกัน (reverse image search ยืนยัน)
  • bio/ข้อมูลตรงกัน (เมือง, อาชีพ, ความสนใจ)
  • ลิงก์โยงกันเอง (เช่น Twitter ลิงก์ไป GitHub)
  • รูปแบบการเขียน/timezone ของโพสต์
  • ระวัง false positive — username ยอดนิยมอาจเป็นคนละคน
ใน CTF OSINT: เริ่มจาก username ที่โจทย์ให้ → Sherlock/Maigret หาทุกบัญชี → ไล่ดูแต่ละ profile หา flag/เบาะแสถัดไป (มักนำไปสู่ขั้นต่อไป เช่น โพสต์ที่มีพิกัด หรืออีเมล)

5. Workflow

  1. 1Sherlock username — หาบัญชีเร็วๆ ทุกเว็บ
  2. 2Maigret username — ละเอียด + ดึง metadata จาก profile
  3. 3ลอง username variation (jdoe, john.doe, ...)
  4. 4เปิดแต่ละ profile ที่เจอ — เก็บ อีเมล/ชื่อจริง/รูป/bio
  5. 5pivot: รูป→reverse image, อีเมล→email investigation, ชื่อ→social media
  6. 6ยืนยันตัวตนด้วยหลักฐานหลายชั้น

6. Quick Reference

  • คนใช้ username ซ้ำ → หาทุกเว็บแล้ว pivot
  • Sherlock username (เร็ว) → Maigret (ละเอียด + metadata)
  • WhatsMyName, Blackbird เป็นทางเลือก
  • ลอง variation: jdoe, john.doe, johndoe, john_doe
  • pivot: profile→อีเมล/ชื่อ/รูป → ขั้นต่อไป
  • ยืนยันตัวตนหลายชั้น (รูป/bio/timezone) ระวัง false positive

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

สมมติโจทย์ให้ username เดียวมา มีแค่ Kali เปล่าๆ ต้องหาให้ได้ว่าคนนี้มีบัญชีที่ไหนบ้างแล้ว pivot ต่อ ทำตามนี้ทีละขั้น

  1. 1พิมพ์ sherlock username ดูก่อน (เร็วสุด เช็คได้หลายร้อยเว็บ)
  2. 2ถ้าอยากได้ข้อมูลเพิ่ม (bio/ชื่อจริง/รูป) พิมพ์ maigret username --html เปิดรายงาน HTML ที่ได้
  3. 3เปิด whatsmyname.app พิมพ์ username เดียวกัน เทียบผลกับ Sherlock/Maigret (บาง site ต่างกัน)
  4. 4ไล่เปิดแต่ละ profile ที่เจอ เก็บ bio, ลิงก์, รูปโปรไฟล์
  5. 5ถ้า username ตรงไม่พบใน platform สำคัญ ลอง variation: jdoe, john.doe, john_doe, doe.john
  6. 6เจอ GitHub: ดู git log ของ repo หรือ API users/USER/events หาอีเมลจาก commit
  7. 7เจอรูปโปรไฟล์: reverse image search (images.google.com/yandex.com/images) ยืนยัน/หาบัญชีอื่น
  8. 8เจออีเมลใน bio: จดไว้แล้วไปสืบต่อด้วย Email Investigation
  9. 9ยืนยันตัวตนข้ามแพลตฟอร์ม (รูป/bio/timezone ตรงกันไหม) ก่อนสรุปว่าเป็นคนเดียวกัน
จาก username เดียว ไล่ pivot จนเจอ flag/ตัวตน
Sherlock เจอ profile ไหม
✅ เจอหลายบัญชีn2
❌ เจอน้อย/ไม่เจอเลยn3
เปิดแต่ละ profile เจออีเมล/ชื่อจริง/รูปไหม
✅ เจออีเมลtoEmail
✅ เจอแต่รูป/bio (ไม่มีอีเมล)n4
❌ profile ว่างเปล่าไม่มีข้อมูล→ ลอง Maigret (ดึง metadata ละเอียดกว่า)
ลอง Maigret + WhatsMyName เจอเพิ่มไหม
✅ เจอn2
❌ ยังไม่เจอ→ ลอง username variation (jdoe, john.doe, john_doe, doe.john)
reverse image search รูปโปรไฟล์ เจอบัญชี/ตัวตนเพิ่มไหม
✅ เจอ→ ไล่เก็บข้อมูลจากบัญชีใหม่ วนกลับไปยืนยันตัวตน
❌ ไม่เจอn5
ยังไม่เจอ ต้องการอะไรต่อ
เจอรูปโพสต์ที่อยากรู้สถานที่ถ่ายtoGeo
เจออีเมลใน bio ภายหลังtoEmail
เจอเอกสาร/ไฟล์ที่มี metadata น่าสนใจ (เช่น จาก GitHub release)toMeta
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
หา username ข้ามแพลตฟอร์มsherlock (ถ้ามีใน Kali)pip install sherlock-projectwhatsmyname.app
ดึง metadata จาก profile ละเอียด-pip install maigret-
reverse image search รูปโปรไฟล์--images.google.com, yandex.com/images
ดูอีเมลจาก GitHub commitgit--
เช็ค breach ของอีเมลที่เจอ-pip install holehe h8mailhaveibeenpwned.com
ยืนยันตัวตนข้ามบัญชี (timezone/bio)---
🚑 ถ้าตันสนิท ลองท่าถัดไป:
• เจออีเมลใน bio/commit → ไป Email Investigation (เช็ค breach/บัญชีที่ผูก)
• เจอรูปโพสต์ที่อยากรู้สถานที่ถ่าย → ไป Geolocation
• เจอไฟล์/เอกสารที่ผูกกับ username นั้น → ไป Metadata Collection

โน้ตของฉัน

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