| name | performing-dns-enumeration-and-zone-transfer |
| description | Enumerates DNS records, attempts zone transfers, brute-forces subdomains, and maps DNS infrastructure during authorized reconnaissance to identify attack surface, misconfigurations, and information disclosure in target domains. . Use when working with performing dns enumeration and zone transfer. |
| domain | cybersecurity |
| tags | ["network-security","dns","enumeration","zone-transfer","reconnaissance"] |
| subdomain | network-security |
| version | 1.0 |
| author | oyi77 |
| license | Apache-2.0 |
| nist_csf | ["PR.IR-01","DE.CM-01","ID.AM-03","PR.DS-02"] |
Performing Dns Enumeration And Zone Transfer
Overview
Cybersecurity skill for performing dns enumeration and zone transfer. Follows industry best practices and security standards.
When to Use
Trigger phrases:
-
"performing dns enumeration and zone transfer"
-
"Enumerates DNS records, attempts zone transfers, brute-forces subdomains, and ma"
-
Mapping the external attack surface of a target organization during authorized penetration tests
-
Discovering hidden subdomains, internal hostnames, and IP addresses exposed via DNS records
-
Testing whether DNS servers allow unauthorized zone transfers that leak the entire zone file
-
Identifying mail servers, name servers, and service records for further targeted testing
-
Validating DNS security configurations including DNSSEC, SPF, DKIM, and DMARC
Do not use against domains you do not have authorization to test, for DNS amplification or reflection attacks, or to overwhelm DNS servers with excessive query volumes.
When NOT to Use
- When you lack proper authorization for testing
- For production systems without change management
- When the task requires legal or compliance expertise beyond technical scope
Prerequisites
- Written authorization to perform DNS enumeration against the target domain
- DNS enumeration tools installed: dig, nslookup, host, dnsrecon, dnsenum, subfinder, amass
- Network access to the target's DNS servers (UDP/TCP port 53)
- Wordlist for subdomain brute-forcing (SecLists dns-wordlist or similar)
- Understanding of DNS record types (A, AAAA, CNAME, MX, NS, TXT, SOA, SRV, PTR)
Workflow
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: ) -> :
{k: re.findall(v, text) k, v IOC_PATTERNS.items()}