Using dig for DNS Queries
Objective
Learn how to use dig (Domain Information Groper), a command-line tool, to query DNS servers for detailed information about domains, records, and DNS configurations. This lab explores various options for troubleshooting and reconnaissance.
Prerequisites
- Linux or macOS with dig Installed:
- Verify if
digis installed by typing:dig -v - If not installed, add the
dnsutilspackage:sudo apt update && sudo apt install dnsutils
- Verify if
- Basic Understanding of DNS:
- Familiarity with DNS record types such as A, MX, NS, CNAME, and TXT.
- Target Domain:
- Identify a domain to query (e.g.,
example.com).
- Identify a domain to query (e.g.,
Step 1: Basic dig Usage
- Query a domain for its A record:
dig <domain>- Replace
<domain>with the target domain (e.g.,google.com).
- Replace
- Analyze the output:
- QUESTION SECTION: Displays the queried domain.
- ANSWER SECTION: Contains the IP address or other requested data.
- Query time: Shows how long the request took.
- Server: Indicates which DNS server answered the query.
Example Output:
; <<>> DiG 9.16.1-Ubuntu <<>> google.com ;; global options: +cmd ;; QUESTION SECTION: ;google.com. IN A ;; ANSWER SECTION: google.com. 299 IN A 142.250.72.14
Step 2: Querying Specific DNS Records
- Request an MX record (Mail Exchange):
dig <domain> MXExample:
dig example.com MX - Request a NS record (Name Server):
dig <domain> NS - Request a CNAME record (Canonical Name):
dig <domain> CNAME - Request a TXT record (Text):
dig <domain> TXTInsight: TXT records often include verification keys for SPF, DKIM, and other security configurations.
Step 3: Using Reverse DNS Lookup
- Perform a reverse lookup to find the hostname for an IP:
dig -x <ip_address>- Replace
<ip_address>with the target IP (e.g.,8.8.8.8).
Example Output:
;; ANSWER SECTION: 8.8.8.8.in-addr.arpa. 3600 IN PTR dns.google.Tip: Reverse DNS lookups help identify domains associated with specific IPs.
- Replace
Step 4: Querying a Specific DNS Server
- Specify a custom DNS server:
dig <domain> @<dns_server>- Replace
<dns_server>with a public or private DNS server (e.g.,8.8.8.8for Google DNS).
Example:
dig example.com @8.8.8.8 - Replace
- Compare results from different DNS servers to identify discrepancies.
Step 5: Advanced dig Options
- Enable Verbose Output:
- Use the
+shortoption to display concise results:dig <domain> +short - Example:
dig google.com +short 142.250.72.14
- Use the
- View the Entire DNS Response:
- Include additional sections of the DNS response:
dig <domain> +all
- Include additional sections of the DNS response:
- Trace the Query Path:
- Use
+traceto follow the query from root servers to the authoritative server:dig <domain> +trace
Insight: Tracing helps diagnose propagation and resolution issues.
- Use
- Specify Output Format:
- Use
+jsonto get results in JSON format:dig <domain> +json
- Use
Step 6: Automating Multiple Queries
- Use a shell script to query multiple domains:
for domain in example.com google.com yahoo.com; do dig $domain +short done- Replace the list of domains with your own targets.
- Save the results to a file:
dig <domain> +short > results.txt
Step 7: Troubleshooting DNS Issues
- No Response:
- Ensure the DNS server is reachable using
pingortraceroute. - Specify a different DNS server with
@<dns_server>.
- Ensure the DNS server is reachable using
- Incorrect Records:
- Use
+traceto verify the authoritative server’s response.
- Use
- Propagation Issues:
- DNS changes may take time to propagate. Query multiple servers to verify updates.
- Timeouts:
- Increase the timeout value using:
dig <domain> +timeout=<seconds>
- Increase the timeout value using:
Additional Tips and Insights
- Public DNS Servers:
- Use reliable DNS servers for queries:
- Google:
8.8.8.8and8.8.4.4 - Cloudflare:
1.1.1.1 - OpenDNS:
208.67.222.222
- Google:
- Use reliable DNS servers for queries:
- Combine Tools:
- Use
digalongsidenslookupor online DNS tools for cross-verification.
- Use
- Understand TTL:
- Time-to-Live (TTL) values in responses indicate how long the record is cached.
- Security Considerations:
- Be cautious when querying sensitive domains or sharing query results.
Key Takeaways
digis a powerful tool for querying DNS records, troubleshooting, and gathering domain intelligence.- Understanding its options and outputs enables effective DNS analysis.
- Use
digresponsibly and ensure proper permissions when performing reconnaissance or troubleshooting.