recon
ASN Enumeration
ASN Enumeration หา IP range ทั้งหมดที่องค์กรเป็นเจ้าของผ่าน Autonomous System Number — เผย infrastructure ที่ไม่ผูกกับ domain บทนี้ลงลึกว่า ASN คืออะไร, การหา ASN ขององค์กร, การได้ IP range (netblock), และการใช้ขยาย scope (เนื้อหาเพื่อ recon ที่ได้รับอนุญาต)
Intermediate#asn#recon#ip-range#bgp#netblock#passive#ctf
1. ASN คืออะไร
ASN (Autonomous System Number) คือหมายเลขที่ระบุกลุ่มของ IP network ที่อยู่ภายใต้การควบคุมเดียว (เช่นองค์กรใหญ่/ISP) องค์กรที่มี IP block ของตัวเองจะมี ASN การหา ASN เผย IP range ทั้งหมดที่องค์กรเป็นเจ้าของ — รวม server ที่ไม่ผูกกับ domain ที่เรารู้ ขยาย scope ได้มาก (เหมาะกับ target ใหญ่ที่มี infrastructure เยอะ)
เนื้อหานี้เพื่อการ reconnaissance ในงานที่ได้รับอนุญาต (CTF, pentest scope) เท่านั้น — ยืนยันว่า IP range อยู่ใน scope ก่อนสแกน
2. หา ASN ขององค์กร
หา ASN จาก IP/ชื่อองค์กรLinux
# จาก IP ที่รู้ → หา ASN
whois -h whois.cymru.com " -v 8.8.8.8"
# หรือ
whois 8.8.8.8 | grep -i origin # OriginAS
# จากชื่อองค์กร — เว็บ bgp.he.net (Hurricane Electric)
# https://bgp.he.net → search ชื่อองค์กร → เห็น ASN + prefix
# asnmap (projectdiscovery)
echo "8.8.8.8" | asnmap
asnmap -d example.com # จาก domain
asnmap -org "Google" # จากชื่อ orgteam cymru whois → ASN จาก IP; bgp.he.net ค้นจากชื่อ org; asnmap รวมหลาย input (IP/domain/org)
3. ได้ IP range (netblock) จาก ASN
ดึง prefix ทั้งหมดของ ASNLinux
# ดึง IP range ทั้งหมดของ ASN (เช่น AS15169)
whois -h whois.radb.net -- '-i origin AS15169' | grep -Eo "([0-9.]+){4}/[0-9]+" | sort -u
# asnmap — ASN → CIDR ranges
echo "AS15169" | asnmap
# amass intel (จาก ASN)
amass intel -asn 15169
# bgp.he.net → หน้า ASN → tab "Prefixes v4" = netblock ทั้งหมด
# ได้ CIDR เช่น 8.8.8.0/24, 8.34.208.0/20 ...RADB/asnmap/amass ดึง prefix (CIDR) ของ ASN; ได้ IP range ทั้งหมดที่องค์กรเป็นเจ้าของ
4. ใช้ขยาย scope
- scan IP range: ได้ CIDR → nmap สแกนหา host/service (ดู Nmap Playbook) — ยืนยัน scope ก่อน
- reverse DNS บน range: หา hostname ของ IP ในช่วง (เผย naming/service)
- หา web บน range: httpx ทั้ง CIDR → เจอ web app ที่ไม่ผูก domain ที่รู้
- เชื่อมกับ domain recon: IP จาก ASN ↔ domain/subdomain (ตัวไหนอยู่ใน range องค์กร)
- ระวัง shared hosting: ASN ของ cloud (AWS/GCP) ไม่ได้เป็นขององค์กรเป้าหมาย — ใช้กับ ASN ที่องค์กรเป็นเจ้าของเองเท่านั้น
ถ้า target ใช้ cloud (AWS/Azure/GCP) — IP จะอยู่ใน ASN ของ cloud provider ไม่ใช่ขององค์กร อย่าสแกนทั้ง ASN ของ cloud (ไม่ใช่ scope + ผิด ToS); ใช้ ASN enumeration กับองค์กรที่มี IP block ของตัวเอง
5. Quick Reference
- ASN = หมายเลขกลุ่ม IP ขององค์กร → เผย IP range ที่เป็นเจ้าของ
- หา ASN: whois cymru จาก IP; bgp.he.net จาก org; asnmap
- ได้ range: whois RADB '-i origin ASxxxx'; asnmap; amass intel -asn
- ใช้: scan CIDR (nmap/httpx), reverse DNS — ยืนยัน scope ก่อน
- ระวัง cloud ASN (AWS/GCP) ไม่ใช่ขององค์กร — อย่าสแกน
🧭 จับมือทำทีละขั้น (มีแค่ Kali) + ถ้าติดไปไหนต่อ
สมมติโจทย์บอกแค่ชื่อองค์กร (หรือ domain เดียว) แต่อยากรู้ว่า target มี IP range ของตัวเองแค่ไหน มีแค่ Kali เปล่าๆ ทำตามนี้ทีละขั้น
- 1เริ่มจาก whois domain ก่อนเพื่อดู org/name server:
whois target.com - 2ถ้ารู้ IP อย่างน้อย 1 ตัว (เช่นจาก A record) หา ASN จาก IP นั้น:
whois -h whois.cymru.com " -v 1.2.3.4" - 3ไม่มี whois cymru หรืออยากลองอีกทาง เปิดเบราว์เซอร์ไป bgp.he.net แล้วค้นชื่อองค์กร ดูคอลัมน์ ASN
- 4ถ้ามี asnmap ติดตั้งอยู่ ลองยิงตรง:
asnmap -d target.comหรือasnmap -org "Target Inc" - 5ได้ ASN แล้ว (เช่น AS15169) ดึง CIDR ทั้งหมด:
whois -h whois.radb.net -- '-i origin AS15169' | grep -Eo "([0-9.]+){4}/[0-9]+" | sort -u - 6เช็คซ้ำผ่านเว็บ bgp.he.net → หน้า ASN → แท็บ Prefixes v4 เทียบว่า CIDR ตรงกันไหม
- 7ก่อนสแกน CIDR ที่ได้ ต้องยืนยันว่า ASN นี้ target เป็นเจ้าของเอง (ไม่ใช่ AWS/GCP/Cloudflare ที่ target แค่เช่าใช้)
- 8ยิง nmap ผ่าน CIDR ที่ยืนยันแล้วเพื่อหา host ที่เปิดอยู่:
nmap -sn 203.0.113.0/24 - 9เจอ host ใหม่ที่ไม่เคยรู้จัก → ทำ reverse DNS ดูชื่อ:
for i in $(seq 1 254); do host 203.0.113.$i; done | grep -v "not found" - 10ได้ hostname ใหม่แล้ว → เอาไปรวมกับรายชื่อ subdomain แล้วสแกน service ต่อ
หา ASN ได้ไหม? ทำอะไรต่อ
whois domain / IP ที่รู้ → หา org/ASN
เจอ ASN ขององค์กรไหม?
✅ เจอ ASN ที่เป็นของ target เอง→→ ดึง CIDR ต่อ
❌ ไม่เจอ / เจอแต่ ASN cloud provider→→ อย่าสแกนทั้ง ASN cloud
ดึง CIDR ทั้งหมดของ ASN (RADB/asnmap/bgp.he.net)
✅ ได้ CIDR list→→ สแกนหา host ที่เปิด
❌ ดึงไม่ได้ (RADB ไม่ตอบ)→→ ใช้ bgp.he.net เว็บแทน
| ขั้นตอน/งาน | เครื่องมือใน Kali | ติดตั้งเพิ่ม (ถ้าไม่มี) | เครื่องมือออนไลน์ |
|---|---|---|---|
| หา ASN จาก IP | whois | sudo apt install whois | bgp.he.net |
| หา ASN จากชื่อองค์กร | - | - | bgp.he.net, viewdns.info |
| หา ASN/CIDR แบบอัตโนมัติ | asnmap (ถ้ามี Go) | go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest | - |
| ดึง CIDR จาก ASN | whois (RADB) | sudo apt install whois | bgp.he.net (tab Prefixes v4) |
| สแกน host ใน CIDR | nmap | - | - |
| reverse DNS ทั้ง range | host, dig | - | viewdns.info/reverseiplookup |
| ยืนยันเจ้าของ ASN/org | whois | - | bgp.he.net, whois domain lookups |
🚑 ถ้าตันสนิท ลองท่าถัดไป: WHOIS (ย้อนกลับไปดู contact/name server อาจใบ้ hosting provider แทน), Subdomain Enumeration (ถ้า target ใช้ cloud ไม่มี ASN ของตัวเอง ให้ไล่หา asset ทาง domain แทนทาง IP), Shodan/Censys (ใช้ net:/ip: filter ค้น service ใน CIDR ที่ได้แทนการสแกนเอง เงียบกว่า), Nmap Playbook (พอได้ CIDR ที่ยืนยัน scope แล้ว ไปวางแผนสแกน service ให้ครบ)
หัวข้อที่เชื่อมโยง
Subdomain Enumerationอยู่ใน workflowAmassเครื่องมือเดียวกันWHOISเครื่องมือเดียวกันAssetfinderเครื่องมือเดียวกันGoogle DorksเทคนิคเดียวกันCensysเทคนิคเดียวกันNmap Playbookอยู่ใน workflowDNS EnumerationเทคนิคเดียวกันGitHub DorksเทคนิคเดียวกันShodanเทคนิคเดียวกันBloodHoundเทคนิคเดียวกันSharpHoundเทคนิคเดียวกัน
โน้ตของฉัน
ยังไม่มีโน้ตสำหรับหัวข้อนี้