คลัง
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"              # จากชื่อ org
team 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. 1เริ่มจาก whois domain ก่อนเพื่อดู org/name server: whois target.com
  2. 2ถ้ารู้ IP อย่างน้อย 1 ตัว (เช่นจาก A record) หา ASN จาก IP นั้น: whois -h whois.cymru.com " -v 1.2.3.4"
  3. 3ไม่มี whois cymru หรืออยากลองอีกทาง เปิดเบราว์เซอร์ไป bgp.he.net แล้วค้นชื่อองค์กร ดูคอลัมน์ ASN
  4. 4ถ้ามี asnmap ติดตั้งอยู่ ลองยิงตรง: asnmap -d target.com หรือ asnmap -org "Target Inc"
  5. 5ได้ ASN แล้ว (เช่น AS15169) ดึง CIDR ทั้งหมด: whois -h whois.radb.net -- '-i origin AS15169' | grep -Eo "([0-9.]+){4}/[0-9]+" | sort -u
  6. 6เช็คซ้ำผ่านเว็บ bgp.he.net → หน้า ASN → แท็บ Prefixes v4 เทียบว่า CIDR ตรงกันไหม
  7. 7ก่อนสแกน CIDR ที่ได้ ต้องยืนยันว่า ASN นี้ target เป็นเจ้าของเอง (ไม่ใช่ AWS/GCP/Cloudflare ที่ target แค่เช่าใช้)
  8. 8ยิง nmap ผ่าน CIDR ที่ยืนยันแล้วเพื่อหา host ที่เปิดอยู่: nmap -sn 203.0.113.0/24
  9. 9เจอ host ใหม่ที่ไม่เคยรู้จัก → ทำ reverse DNS ดูชื่อ: for i in $(seq 1 254); do host 203.0.113.$i; done | grep -v "not found"
  10. 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 จาก IPwhoissudo apt install whoisbgp.he.net
หา ASN จากชื่อองค์กร--bgp.he.net, viewdns.info
หา ASN/CIDR แบบอัตโนมัติasnmap (ถ้ามี Go)go install github.com/projectdiscovery/asnmap/cmd/asnmap@latest-
ดึง CIDR จาก ASNwhois (RADB)sudo apt install whoisbgp.he.net (tab Prefixes v4)
สแกน host ใน CIDRnmap--
reverse DNS ทั้ง rangehost, dig-viewdns.info/reverseiplookup
ยืนยันเจ้าของ ASN/orgwhois-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 ให้ครบ)

โน้ตของฉัน

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