Shodan
Shodan เป็น search engine สำหรับอุปกรณ์/service ที่ต่ออินเทอร์เน็ต — สแกนทั้งโลกเก็บ banner ของ port ที่เปิด ทำให้ค้นหา exposed service, IoT, database, webcam, ระบบที่ตั้งค่าผิด บทนี้ลงลึก search filter ทุกตัว, การค้นตาม target, CLI, และการใช้กับ recon (เนื้อหาเพื่อ recon ที่ได้รับอนุญาต)
1. Shodan คืออะไร
Shodan สแกน IPv4 ทั้งโลกอย่างต่อเนื่อง เก็บ banner (ข้อมูลที่ service ตอบกลับ) ของ port ที่เปิด — ต่างจาก Google ที่ index หน้าเว็บ Shodan index service/device ทำให้ค้นได้ว่ามีอะไรเปิดต่อเน็ตบ้าง: database, RDP, webcam, ICS/SCADA, router, server ที่ตั้งค่าผิด เป็น passive recon (query ฐานข้อมูล Shodan ไม่แตะ target โดยตรง)
2. Search filters
| filter | ความหมาย | ตัวอย่าง |
|---|---|---|
| hostname: | ชื่อ host/domain | hostname:example.com |
| net: | IP range (CIDR) | net:192.168.0.0/24 |
| org: | องค์กร | org:"Example Inc" |
| port: | port เฉพาะ | port:3389 |
| product: | software/service | product:nginx |
| country: / city: | ประเทศ/เมือง | country:TH |
| os: | ระบบปฏิบัติการ | os:"Windows" |
| http.title: | title หน้าเว็บ | http.title:"admin" |
| ssl: | ใน SSL cert | ssl:"example.com" |
| vuln: | CVE (ต้อง membership) | vuln:CVE-2021-44228 |
3. ค้นตาม target
# service ของ target (ผสม filter)
hostname:example.com
org:"Example Inc"
ssl:"example.com" # หา host จาก SSL cert (เผย IP จริงหลัง CDN!)
net:203.0.113.0/24 # IP range (จาก ASN — ดู ASN Enumeration)
# หา service เฉพาะของ target
org:"Example Inc" port:3389 # RDP exposed
org:"Example Inc" product:MySQL # database
hostname:example.com http.title:"login"
# exposed/น่าสนใจทั่วไป
"default password"
product:"MongoDB" port:27017 # MongoDB ไม่มี auth
title:"index of"
http.component:"jenkins"4. Shodan CLI + API
pip install shodan
shodan init YOUR_API_KEY
# ดูข้อมูล IP
shodan host 8.8.8.8
# ค้นหา (นับ + ดึงผล)
shodan count "org:Example Inc port:3389"
shodan search --fields ip_str,port,hostnames "org:Example Inc"
# ดึงทุก IP ที่ตรง
shodan search --fields ip_str "net:203.0.113.0/24" | sort -u
# scan domain (รวมข้อมูล)
shodan domain example.com5. การใช้ + เชื่อมกับ recon อื่น
- หา IP จริงหลัง CDN:
ssl:"example.com"หรือ favicon hash — เผย origin IP ที่ Cloudflare ซ่อน - เผย service ที่ไม่รู้: org/net filter หา port/service ที่ไม่ได้อยู่ใน domain ที่รู้
- เชื่อม ASN: ได้ IP range จาก ASN →
net:ค้นทุก service ใน range - หา vulnerable version: product + version → เทียบ CVE
- favicon hash:
http.favicon.hash:หา host ที่ใช้ favicon เดียวกัน (เผย related infra) - เปรียบเทียบ Censys (ดูหัวข้อ Censys) — ผล/ฐานข้อมูลต่างกัน ใช้คู่กัน
6. Quick Reference
- search engine ของ exposed service/device (passive recon)
- filter: hostname:/net:/org:/port:/product:/ssl:/http.title:
- target: org:"X" port:3389; ssl:"domain" (IP จริงหลัง CDN)
- CLI: shodan host IP; shodan search --fields; shodan domain
- เชื่อม ASN: net:CIDR; favicon hash หา related infra
- ใช้คู่ Censys (ฐานข้อมูลต่างกัน)
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติอยากหา service/device ที่ target เปิดต่ออินเทอร์เน็ตโดยไม่ต้องสแกนเอง มีแค่ Kali + เบราว์เซอร์ ทำตามนี้ทีละขั้น
- 1สมัคร account ฟรีที่ shodan.io (จำเป็นสำหรับ filter ขั้นสูง)
- 2ลอง search ตรงๆ ด้วยชื่อ domain:
hostname:target.com - 3ลอง org filter ถ้ารู้ชื่อองค์กร:
org:"Target Inc" - 4ลองหา IP จริงหลัง CDN ผ่าน SSL cert:
ssl:"target.com"(เผย origin IP ที่ Cloudflare ซ่อนไว้บ่อยๆ) - 5เจอ IP ที่น่าสงสัยแล้ว เช็คให้ชัวร์ว่าไม่ใช่ CDN: เปิด
shodan host(ต้องมี CLI) หรือดูในหน้าเว็บ - 6ติดตั้ง CLI ถ้าต้องการ query เยอะๆ:
pip install shodan && shodan init YOUR_API_KEY - 7ค้น service เฉพาะของ target:
shodan search --fields ip_str,port,hostnames "org:Target Inc" - 8ถ้ารู้ IP range จาก ASN แล้ว ลองกวาดทั้ง range:
net:203.0.113.0/24 - 9เจอ service ที่ดูอ่อนแอ (เช่น MongoDB ไม่มี auth, RDP เปิด) → บันทึกไว้ ยืนยัน scope ก่อนแตะต่อ
- 10ถ้า Shodan ไม่เจออะไรเลย สลับไปลอง Censys (ฐานข้อมูลคนละชุด อาจเห็นสิ่งที่ Shodan ไม่เห็น)
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| ค้น service/device | - | - | shodan.io |
| ค้นผ่าน CLI | python3/pip | pip install shodan | - |
| หา IP จริงหลัง CDN | - | - | shodan.io (ssl: filter), censys.io |
| ยืนยัน service ที่เจอ | nmap | - | - |
| เทียบฐานข้อมูลอีกชุด | - | - | censys.io |
| เช็ค CVE ของ version | - | - | shodan.io (vuln: ต้อง membership) |
หัวข้อที่เชื่อมโยง
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้