Check List
Cheat Sheet
Different URL
Subdomain Fuzzing
dnsenum $WEBSITE -f /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
dnsrecon -d $WEBSITE \
-D /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt \
-t brt
gobuster dns --wildcard \
-d $WEBSITE \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
urlfinder -d $WEBSITE
Passive Scan
amass enum -passive -d $WEBSITE
Active Scan
amass enum -active \
-brute \
-d $WEBSITE \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-20000.txt
amass intel -ip -cidr $TARGET
amass intel -active -asn $ASN
echo | \
openssl s_client -showcerts -servername $WEBSITE -connect $IP:443 2>/dev/null | \
openssl x509 -inform pem -noout -text
assetfinder $WEBSITE | httpx --status-code --title
Favicon Hashes
subfinder -d $WEBSITE -all -recursive | httpx -favicon -j | \
jq -r .favicon | grep -v null | sort-u
Subdomain Fuzzing
subfinder -d $WEBSITE -all -recursive -o /tmp/subdomains.txt
Subdomain New Gen
cat /tmp/subdomains.txt | alterx -o /tmp/gen-subdomains.txt
Resolve live subdomains
cat /tmp/gen-subdomains.txt | \
httpx-toolkit -ports 80,443,8080,8000,8888,8082,8083 \
-threads 200 > /tmp/alive-subdomains.txt
Resolve New Gen
puredns resolve /tmp/gen-subdomains.txt -r /tmp/resolve-subdomains.txt
Fetch URLs
katana -u /tmp/alive-subdomains.txt \
-d 5 -ps \
-pss waybackarchive,commoncrawl,alienvault \
-kf -jc -fx \
-ef woff,css,png,svg,jpg,woff2,jpeg,gif,svg \
-o /tmp/all-urls.txt
Recon and Resolve
echo "1.1.1.1" > /tmp/resolvers.txt
subfinder -d $WEBSITE -all -recursive | \
shuffledns -d $WEBSITE -r /tmp/resolvers.txt -mode resolve
Directory Fuzzing
dirb $WEBSITE /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
Dictionary
dirsearch -u $WEBSITE \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
Brute Force
dirsearch -u $WEBSITE \
-e php,cgi,htm,html,shtm,sql.gz,sql.zip,shtml,lock,js,jar,txt,bak,inc,smp,csv,cache,zip,old,conf,config,backup,log,pl,asp,aspx,jsp,sql,db,sqlite,mdb,wasl,tar.gz,tar.bz2,7z,rar,json,xml,yml,yaml,ini,java,py,rb,php3,php4,php5 \
--random-agent \
--deep-recursive \
--exclude-status=404 \
--follow-redirects \
--delay=0.1
wfuzz -c -z file,/usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt \
--sc 200 "$WEBSITE/FUZZ"
gobuster dir -u $WEBSITE \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
feroxbuster --url $WEBSITE -C 200
ffuf -u $WEBSITE/FUZZ \
-w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
Non-Standard Ports
Port Scans
TCP Ports
nmap -sS -sV --mtu 5000 $WEBSITE
UDP Ports
nmap -sU -sV --mtu 5000 $WEBSITE
TCP Ports
nc -zv -w 1 $WEBSITE 1-65535
UDP Ports
nc -zvu -w 1 $WEBSITE 1-65535
naabu -host $TARGET -p $PORT
masscan $TARGET -p1-1000 --rate 1000
CIDR Discovery
ASN Discovery
whois -h whois.cymru.com $TARGET
curl -s https://api.bgpview.io/ip/$TARGET | \
jq -r ".data.prefixes[] | {prefix: .prefix, ASN: .asn.asn}"
Virtual Hosts
DNS Zone Transfer
nslookup -type=ns $WEBSITE
dig $WEBSITE NS +noall +answer; \
dig {a|txt|ns|mx} $WEBSITE; \
dig AXRF @ns1.$WEBSITE $WEBSTITE; \
dig @$NS $WEBSITE
Host
host -t ns $WEBSITE; \
host -t {a|txt|ns|mx} $WEBSITE; \
host -a $WEBSITE; \
host -C $WEBSITE; \
host -R 3 $WEBSITE
gobuster vhost ‐u $WEBSITE \
-w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
--append-domain
DNS Inverse Queries
subfinder -silent -d $WEBSITE | dnsx -silent > /tmp/sub-domains.txt
dnsgen /tmp/sub-domains.txt > /tmp/gen-sub-domains.txt
echo "1.1.1.1" > /tmp/resolver.txt
shuffledns -d $WEBSITE \
-l /tmp/gen-sub-domains.txt \
-mode resolve \
-r /tmp/resolver.txt
Web Service Discovery
httpx -silent -u $WEBSITE
ffuf -w /usr/share/seclists/Discovery/DNS/namelist.txt \
-u $TARGET \
-H "Host: FUZZ"
ffuf -w /usr/share/seclists/Discovery/DNS/namelist.txt \
-u $TARGET \
-H "Host: FUZZ.$WEBSITE"
ffuf -w /tmp/gen-sub-domains.txt -u $TARGET -H "Host: FUZZ"
Web Based DNS Search
ViewDNS
YouGetSignal
Reverse Whois
Whoxy
Security Insights
Reverse IP Service
Query DNS records of domains and subdomains to get IP
for domain in $(subfinder -d $WEBSITE -silent); do echo $domain | \
dnsx -a -silent -resp-only; done
Whois the IP addresses and extract the properties
Reverse Lookup on the properties
Query Ripe
mnt-by field
whois -h whois.ripe.net -i mnt-by $COMPANY
person field
whois -h whois.ripe.net -- -i person $NAME
admin-c field
whois -h whois.ripe.net -- -i admin-c $NAME
Query Arin
Network address space (Net Handle) field
whois -h whois.arin.net -- 'n ! $NAME'
OrgId field
whois -h whois.arin.net -- 'o ! $NAME'
amass intel -org $ORG
amass intel -ip -cidr $TARGET
amass intel -active -asn $ASN
Digital Certificate
curl -s "https://crt.sh/?q=$WEBSITE&output=json" | \
jq -r ".[].common_name" | sort -u
curl -s "https://crt.sh/?q=$WEBSITE&output=json" | \
jq -r ".[].name_value" | sort -u
curl -X 'POST' 'https://search.censys.io/api/v2/certificates/search' -H 'Authorization: Basic API_SECRET' -H "content-type: application/json" --data '{"q":"parsed.subject.organization: Google"}' | \
jq -r '.result.hits[] | (.parsed.subject_dn | capture("CN=(?<cn>[^,]+)") | .cn), (.names | if type=="array" and (.[0] | type) == "array" then .[][] else .[] end)'
github-subdomains -d $WEBSITE -t $TOKEN