คลัง
recon

DNS Enumeration

DNS Enumeration เก็บข้อมูล DNS ของ target — record ทุกชนิด (A/MX/NS/TXT/...), zone transfer, reverse DNS เผยโครงสร้าง infrastructure บทนี้ลงลึก record types, การ query ด้วย dig, zone transfer (AXFR), reverse lookup, และ DNS automation tools (เนื้อหาเพื่อ recon ที่ได้รับอนุญาต)

BeginnerIntermediate#dns#recon#enumeration#zone-transfer#records#dig#ctf

1. ทำไม DNS สำคัญ

DNS map ชื่อ↔IP และเก็บ record หลายชนิดที่เผยข้อมูล infrastructure: server อะไรอยู่ที่ไหน (A/AAAA), mail server (MX), name server (NS), ข้อมูล text/SPF/DKIM (TXT), service (SRV) DNS enumeration เป็นpassive reconหลักที่เผย attack surface — subdomain, mail, hosting, third-party service

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

2. Record types + dig

recordเก็บอะไร
A / AAAAIPv4 / IPv6 ของ host
MXmail server (+ priority)
NSname server ของ domain
TXTข้อความ (SPF, DKIM, verification) — มักมีข้อมูลดี
CNAMEalias → ชี้ไปชื่ออื่น (เผย third-party)
SOAStart of Authority (admin email, serial)
SRVservice location (เช่น _ldap, _kerberos → AD!)
PTRreverse (IP → ชื่อ)
dig queriesLinux
dig example.com A                    # A record
dig example.com MX                   # mail servers
dig example.com NS                   # name servers
dig example.com TXT                  # TXT (SPF/DKIM/verification)
dig example.com ANY                  # ทุก record (มัก rate-limited)
dig example.com SOA

# query ผ่าน DNS server เฉพาะ
dig @8.8.8.8 example.com

# short output
dig +short example.com A

# SRV (เผย service เช่น AD)
dig _ldap._tcp.example.com SRV
dig _kerberos._tcp.example.com SRV
dig +short สำหรับผลสั้น; TXT มัก verification/SPF; SRV _ldap/_kerberos = ใบ้ Active Directory

3. Zone Transfer (AXFR) — jackpot

Zone transfer (AXFR) คือการ copy zone ทั้งหมดจาก name server (ออกแบบให้ secondary NS sync) ถ้า NS ตั้งค่าผิดให้ใครก็ขอได้ เราจะได้ record ทั้งหมด รวมทุก subdomain ทันที — เป็น misconfiguration ที่ให้ข้อมูลมหาศาล

ลอง zone transferLinux
# 1. หา name server ก่อน
dig example.com NS +short

# 2. ลอง AXFR กับแต่ละ NS
dig @ns1.example.com example.com AXFR
host -l example.com ns1.example.com
# ถ้าสำเร็จ = ได้ทุก record/subdomain (jackpot!)
# ถ้า "Transfer failed" = ปิดถูกต้อง (ปกติ)

# automation
dnsenum example.com                  # รวม AXFR + brute + recon
fierce --domain example.com
AXFR สำเร็จ = ได้ทุก subdomain ทันที (misconfiguration); ลองกับทุก NS; dnsenum/fierce ลองให้อัตโนมัติ

4. Reverse DNS + automation

reverse lookup + toolsLinux
# reverse DNS (IP → hostname)
dig -x 8.8.8.8 +short
host 8.8.8.8

# reverse ทั้ง range (หา host ใน subnet)
for i in $(seq 1 254); do host 192.168.1.$i; done | grep -v "not found"

# automation tools (รวม brute subdomain + record + AXFR)
dnsenum example.com
fierce --domain example.com
dnsrecon -d example.com -t std       # standard enum
dnsrecon -d example.com -t axfr      # zone transfer
reverse DNS หา hostname จาก IP range (เผย naming); dnsenum/dnsrecon/fierce รวมงาน enum; subdomain → ดู Subdomain Enumeration

5. Quick Reference

  • DNS เผย infrastructure — passive recon หลัก
  • dig example.com A/MX/NS/TXT/ANY; +short สำหรับผลสั้น
  • SRV _ldap/_kerberos → ใบ้ Active Directory
  • zone transfer: dig @ns example.com AXFR (สำเร็จ=ทุก record!)
  • reverse: dig -x IP; loop ทั้ง range
  • automation: dnsenum/dnsrecon/fierce

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

สมมติเจอโจทย์ให้แค่ชื่อ domain มีแค่ Kali เปล่าๆ อยากรู้โครงสร้าง DNS ทั้งหมดของ target ทำตามนี้ทีละขั้น

  1. 1หา name server ก่อน: dig target.com NS +short
  2. 2ดึง record หลักทีละชนิด: dig target.com A, dig target.com MX, dig target.com TXT
  3. 3เช็ค TXT ให้ละเอียด — มักมี SPF/DKIM/verification token ที่ใบ้ service ที่ใช้ (Google Workspace, AWS, ...)
  4. 4ลอง zone transfer กับทุก name server ที่เจอ: dig @ns1.target.com target.com AXFR
  5. 5ถ้า AXFR สำเร็จ (ไม่ขึ้น Transfer failed) = ได้ record ทั้งหมดทันที ข้ามไปเก็บผลได้เลย
  6. 6ถ้า AXFR ล้มเหลว (ปกติ 99% ของ target) ไปทาง automation แทน: dnsenum target.com
  7. 7รันเสริมด้วย dnsrecon: dnsrecon -d target.com -t std
  8. 8ลอง reverse DNS บน IP ที่เจอ: dig -x +short
  9. 9เจอ SRV record เช่น _ldap._tcp/_kerberos._tcp = ใบ้ Active Directory ให้ปรับ methodology
  10. 10รวบรวม subdomain ที่เจอทั้งหมดจากขั้นตอนนี้ → ส่งต่อไปทำ subdomain enumeration แบบเต็ม
ลอง zone transfer / record แล้วได้ผลไหม?
dig target.com NS +short
หา name server ทั้งหมดก่อน
ลอง dig @ns target.com AXFR กับทุก NS
✅ Transfer สำเร็จ→ ได้ทุก record/subdomain ทันที
❌ Transfer failed (ปกติ)→ ไปทาง record/automation แทน
dig A/MX/TXT/NS + dnsenum/dnsrecon
✅ เจอ SRV _ldap/_kerberos→ นี่คือ Active Directory environment
❌ ยังได้แค่พื้นฐาน→ ขยายไปหา subdomain แบบเต็ม
ขั้นตอน/งานเครื่องมือใน Kaliติดตั้งเพิ่ม (ถ้าไม่มี)เครื่องมือออนไลน์
query record พื้นฐานdig, host, nslookup-dnsdumpster.com
ลอง zone transferdig, host--
automation enum เต็มรูปแบบdnsenum, dnsrecon, fiercesudo apt install dnsenum fiercehackertarget.com
reverse DNSdig -x, host-viewdns.info/reverseiplookup
ดู DNS history--securitytrails.com
ตรวจ NS/MX แบบ visual--dnsdumpster.com
🚑 ถ้าตันสนิท ลองท่าถัดไป: Subdomain Enumeration (ถ้า zone transfer ปิดหมดและ record พื้นฐานไม่พอ ไปหา subdomain แบบเต็ม passive+active), WHOIS (ย้อนกลับไปดู registrar/contact ถ้ายังไม่ได้ทำ), ASN Enumeration (ถ้าเจอ IP หลายตัวจาก A record ลองขยาย scope ทาง ASN), Shodan/Censys (เจอ IP แล้วอยากรู้ service ที่เปิดโดยไม่ต้องสแกนเอง)

โน้ตของฉัน

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