คลัง
recon

Amass

Amass (OWASP) เป็นเครื่องมือ recon/subdomain enumeration ที่ครอบคลุมที่สุด — รวมหลายสิบ data source, passive+active, ASN/IP mapping, และ graph database บทนี้ลงลึก subcommand (enum/intel/viz), passive vs active, การ config API key, และ workflow (เนื้อหาเพื่อ recon ที่ได้รับอนุญาต)

IntermediateAdvanced#amass#recon#subdomain#owasp#asn#passive#active#ctf

1. Amass คืออะไร

Amass เป็นโปรเจกต์ OWASP สำหรับ attack surface mapping — จุดเด่นคือครอบคลุม: รวม data source หลายสิบแหล่ง (DNS, CT logs, search engine, API, ASN), ทำได้ทั้ง passive และ active, map ความสัมพันธ์ domain↔IP↔ASN, และเก็บผลใน graph database เป็นเครื่องมือ subdomain enumeration ที่ลึกที่สุดตัวหนึ่ง (แต่ช้ากว่า subfinder)

เนื้อหานี้เพื่อการ reconnaissance ในงานที่ได้รับอนุญาต (CTF, bug bounty scope, pentest) เท่านั้น

2. Subcommands

subcommandทำอะไร
amass enumsubdomain enumeration (หลัก)
amass intelหา domain/ASN ขององค์กร (recon เบื้องต้น)
amass vizvisualize ผลเป็นกราฟ
amass dbจัดการ/query graph database

3. amass enum (passive + active)

subdomain enumerationLinux
# passive (เร็ว เงียบ — query source ไม่แตะ target)
amass enum -passive -d example.com -o subs.txt

# active (รวม DNS resolution + brute + zone transfer — ครบกว่า ดังกว่า)
amass enum -active -d example.com -o subs.txt

# brute-force subdomain (ใช้ wordlist)
amass enum -active -d example.com -brute -w wordlist.txt

# หลาย domain
amass enum -passive -df domains.txt -o subs.txt

# ระบุ resolver + config
amass enum -d example.com -r 8.8.8.8 -config config.ini
-passive เร็ว/เงียบ; -active ครบ (resolve+brute+AXFR) แต่ดัง; ผล → ดู resolve/probe ใน Subdomain Enumeration

4. amass intel (หา domain/ASN ขององค์กร)

organization intelLinux
# หา domain ขององค์กร (จากชื่อ)
amass intel -org "Example Inc"

# หา domain จาก ASN (ดู ASN Enumeration)
amass intel -asn 15169

# หา domain จาก IP range
amass intel -cidr 203.0.113.0/24

# reverse whois (domain ที่เกี่ยวข้อง)
amass intel -d example.com -whois
amass intel หา root domain/ASN ขององค์กรก่อน enum subdomain; -whois หา domain ที่เกี่ยวข้อง

5. API config + visualization

  • API keys: ตั้งใน config.ini (หรือ ~/.config/amass/) — เพิ่ม source เช่น Shodan, Censys, VirusTotal, SecurityTrails ทำให้ผลครบขึ้นมาก
  • passive ที่ดีต้องมี API: source ฟรีบางตัวจำกัด — API key เปิด source เพิ่ม
  • amass viz: amass viz -d3 -d example.com สร้าง visualization (กราฟความสัมพันธ์)
  • graph db: ผลเก็บใน database — query ภายหลัง, ติดตามการเปลี่ยนแปลง
  • amass ช้ากว่า subfinder — subfinder เร็วสำหรับ passive เร็วๆ, amass ลึก/ครบกว่าเมื่อต้องการครอบคลุม
config.ini ตัวอย่าง (API keys)Linux
# ~/.config/amass/config.ini
[data_sources.Shodan]
[data_sources.Shodan.Credentials]
apikey = YOUR_SHODAN_KEY

[data_sources.SecurityTrails]
[data_sources.SecurityTrails.Credentials]
apikey = YOUR_KEY
# ยิ่งใส่ API key มาก ผล passive ยิ่งครบ
API key เพิ่ม source = ผลครบขึ้นมาก; Shodan/Censys/SecurityTrails/VirusTotal นิยมใส่

6. Quick Reference

  • OWASP — subdomain enum ที่ครอบคลุมสุด (passive+active+ASN)
  • amass enum -passive -d X (เร็ว/เงียบ)
  • amass enum -active -d X -brute (ครบ/ดัง)
  • amass intel -org/-asn/-cidr (หา domain ขององค์กร)
  • config.ini ใส่ API key (Shodan/Censys/...) → ผลครบขึ้น
  • amass viz (กราฟ); ช้ากว่า subfinder แต่ลึกกว่า

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

สมมติเพิ่งเจอโจทย์ recon ที่ต้องขุด subdomain/asset ให้ลึกที่สุด มีแค่ Kali เปล่าๆ ไม่มี API key อะไรเลย ทำตามนี้ทีละขั้น — เริ่มจาก passive เงียบๆ ก่อน แล้วค่อยขยับไป active/brute เมื่อจำเป็น

  1. 1เช็คว่ามี amass: พิมพ์ amass -h — ถ้าไม่มี ติดตั้งด้วย sudo apt install amass -y
  2. 2รัน passive ก่อนเสมอ (เงียบ ไม่แตะ target ตรงๆ): amass enum -passive -d target.com -o passive.txt
  3. 3เช็คผล: wc -l passive.txt — ถ้าได้หลักสิบ/ร้อยรายการ = มีของ ไปขั้นต่อไป
  4. 4ถ้าได้น้อยมาก (0-2 บรรทัด) เช็คว่า resolver ใช้งานได้ไหมก่อน: cat /etc/resolv.conf แล้วลองแหล่งอื่นเทียบ (crt.sh)
  5. 5ยืนยัน scope แล้วค่อยลอง active (ครบกว่าแต่ดังกว่า): amass enum -active -d target.com -o active.txt
  6. 6ถ้าโจทย์อนุญาตให้ brute-force: amass enum -active -d target.com -brute -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt
  7. 7รวมผลทุกไฟล์: cat passive.txt active.txt | sort -u > all_subs.txt แล้วดูจำนวนรวม
  8. 8resolve ว่า subdomain ไหน live จริง: cat all_subs.txt | dnsx -silent | httpx -silent -title -status-code
  9. 9เจอ host ที่น่าสนใจ (admin/dev/staging/api) จดไว้ แล้วไป enum service/เว็บต่อ
  10. 10ถ้าตันจริงๆ ลอง amass intel หา ASN/org ก่อน: amass intel -d target.com -whois เพื่อขยาย scope ทาง IP range
เจอ subdomain ไหม? ทำอะไรต่อ
amass enum -passive -d target.com
เก็บผลลง passive.txt ก่อนเสมอ
ได้ subdomain เยอะพอไหม?
✅ ได้เยอะ (หลักสิบ+)→ resolve/probe ต่อ
❌ ได้น้อย/ไม่ได้เลย→ ลอง active
amass enum -active -d target.com
รวม DNS resolve + brute — ยืนยัน scope ก่อน
✅ ได้เพิ่มขึ้น→ resolve/probe ต่อ
❌ ยังไม่ได้/amass ช้าเกิน→ สลับ tool/source
dnsx (resolve) → httpx (probe alive)
กรองเฉพาะ subdomain ที่ยังใช้งานจริง
✅ เจอ web/service alive→ enum ต่อบน host นั้น
❌ resolve ไม่ติดเลย→ เช็ค DNS/resolver ของเรา
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
passive subdomain enumamass (มักติดตั้งแล้ว)sudo apt install amasscrt.sh, securitytrails.com
resolve subdomaindnsx (ถ้ามี Go)go install github.com/projectdiscovery/dnsx/cmd/dnsx@latestdnsdumpster.com
probe web alivehttpx (ถ้ามี Go)go install github.com/projectdiscovery/httpx/cmd/httpx@latesthackertarget.com
หา ASN/org ของ targetamass intel, whoissudo apt install whoisbgp.he.net, viewdns.info
เทียบผลกับแหล่งอื่น--shodan.io, censys.io
visualize ผลamass viz--
หา API key เพิ่ม coveragenano/vim (แก้ config.ini)-shodan.io, securitytrails.com (สมัครฟรี)
🚑 ถ้าตันสนิท ลองท่าถัดไป: Subfinder (เร็วกว่า config API ง่ายกว่า ลองสลับดูผลต่าง), Assetfinder (เล็ก เร็ว pipeline-friendly ถ้าต้องการแค่รายชื่อไวๆ), ASN Enumeration (ถ้า amass ไม่เจอ subdomain แต่รู้ว่า target มี IP block เอง ลองขยาย scope ทาง ASN แทน), Shodan/Censys (ถ้าต้องการหา service/IP จริงหลัง CDN แทนการหาแค่ชื่อ subdomain), Web Methodology (พอได้ host ที่ alive แล้ว ไปเริ่ม enum เว็บต่อ)

โน้ตของฉัน

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