Aller au contenu

Fierce

Fierce is a semi-lightweight DNS reconnaissance tool designed to locate non-contiguous IP space and hostnames against specified domains. Originally written in Perl, it’s now available as a Python-based tool. It’s effective for initial reconnaissance, identifying additional networks connected to your target, and discovering hosts that may be misconfigured or forgotten.

pip install fierce
sudo apt update
sudo apt install fierce
git clone https://github.com/mschwager/fierce.git
cd fierce
pip install -e .
docker run -it mschwager/fierce:latest fierce --help
fierce --domain example.com
fierce --domain example.com --output results.txt
fierce --domain example.com --output results.json --format json

Fierce attempts zone transfers by default, which can reveal entire DNS records if misconfigured:

# Zone transfers are included in basic scan
fierce --domain example.com

# Zone transfers are tried against discovered nameservers
# Results show all A records if transfer succeeds
# Uses built-in default wordlist (140+ common subdomains)
fierce --domain example.com
fierce --domain example.com --wordlist /path/to/wordlist.txt
fierce --domain example.com --wordlist /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt
# Fierce automatically detects DNS wildcards to reduce false positives
fierce --domain example.com
fierce --domain example.com --nameserver 8.8.8.8
# Fierce queries all discovered nameservers by default
fierce --domain example.com
# Google
fierce --domain example.com --nameserver 8.8.8.8

# Cloudflare
fierce --domain example.com --nameserver 1.1.1.1

# OpenDNS
fierce --domain example.com --nameserver 208.67.222.222
# Find hostnames in IP range
fierce --domain example.com --range 192.168.1.0/24
# Fierce performs reverse lookups on discovered IPs automatically
fierce --domain example.com
fierce --domain example.com --range 10.0.0.0/8
# Looks for nearby IP ranges connected to target
fierce --domain example.com
# Scan broader range to find non-contiguous space
fierce --domain example.com --range 192.168.0.0/16
# Default is 1 (slow), increase for faster results
fierce --domain example.com --threads 10
fierce --domain example.com --threads 5
fierce --domain example.com --threads 50
fierce --domain example.com --output results.txt
fierce --domain example.com --format json --output results.json
fierce --domain example.com --format csv --output results.csv
fierce --domain example.com
fierce --domain example.com --full
# Add delay to avoid detection/blocking (milliseconds)
fierce --domain example.com --delay 500
fierce --domain example.com --timeout 5
fierce --domain example.com --verbose
# Basic scan to identify primary infrastructure
fierce --domain example.com --output initial_recon.txt

# Then expand to adjacent ranges
fierce --domain example.com --range 10.0.0.0/8 --threads 5
# With custom wordlist for better coverage
fierce --domain example.com \
  --wordlist /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt \
  --threads 10 \
  --format json \
  --output subdomains.json
# Find non-contiguous spaces
fierce --domain example.com \
  --range 192.168.0.0/16 \
  --threads 5 \
  --delay 200
# Output to feed into other reconnaissance tools
fierce --domain example.com --format csv --output hosts.csv

# Extract IPs for further scanning
fierce --domain example.com | grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b' | sort -u > ips.txt
ToolStrengthsUse Case
FierceFast, simple, zone transfers, adjacent IP findingQuick recon, non-contiguous space discovery
DNSReconMore options, DNSSEC checks, Google dorkingComprehensive DNS analysis
DNSenumZone transfer, reverse lookups, subdomain enumDetailed DNS mapping
SubfinderFast, passive sources, multiple APIsPassive subdomain collection
AmassAdvanced, data aggregation, API integrationEnterprise-grade discovery
# If fierce returns full zone data, the target has misconfigured AXFR
# This reveals the entire DNS structure
fierce --domain example.com

# Check if nameservers allow transfers
nslookup -type=NS example.com
fierce --domain example.com --nameserver [nameserver-from-above]
# Fierce detects wildcards, but verify manually
nslookup doesnotexist.example.com
# If it resolves, the domain uses wildcard DNS
# Fierce will filter these out automatically
# Increase threads if network allows
fierce --domain example.com --threads 20

# Reduce timeout if network is fast
fierce --domain example.com --timeout 3
# Add delays between requests
fierce --domain example.com --delay 1000

# Use different DNS servers
fierce --domain example.com --nameserver 8.8.8.8
# Try with a larger wordlist
fierce --domain example.com --wordlist /path/to/larger-list.txt

# Some subdomains may require custom wordlists
  • Only use Fierce on systems you own or have explicit written permission to test
  • Unauthorized network reconnaissance is illegal
  • Use in authorized penetration testing engagements only
  • Respect rate limits and don’t cause DoS conditions
  • Document all findings and handle data responsibly
fierce --help              # Show all options
fierce --help | grep -i wordlist   # Find specific option
man fierce                 # Manual page (if installed)
  • dnsrecon — Advanced DNS reconnaissance
  • dnsenum — DNS enumeration tool
  • subfinder — Passive subdomain discovery
  • amass — OWASP comprehensive asset discovery
  • dig — Manual DNS queries
  • nmap — Network scanning and host discovery