WHOIS
WHOIS es un protocolo que utiliza el puerto 43 TCP para realizar consultas a una base de datos que contiene información de dominios, IP o sistemas autónomos.
WHOIS web site WHOIS CLI
En caso de querer usar whois en sistemas Windows, este se debe descargar desde Sysinternals WHOIS .
Para ejecutar consultas desde sistemas Linux, podemos usar los siguientes comandos:
Copy export TARGET="target.com"
whois $TARGET
En Windows, el comando sería como el siguiente:
Registros DNS
Para mayor información, revisar el siguiente enlace .
Registros del tipo A Registros del tipo PTR Cualquier registro existente
Copy # Records del tipo A para un dominio
export TARGET="target.com"
nslookup $TARGET
dig $TARGET @1.1.1.1
# Records del tipo A para un subdominio
nslookup -query=A $TARGET
dig a $TARGET @1.1.1.1
Copy nslookup -query=PTR 1.1.1.1
dig -x 1.1.1.1 @1.1.1.1
Copy export TARGET="target.com"
nslookup -query=ANY $TARGET
dig any $TARGET @8.8.8.8
Registros del tipo TXT Registros del tipo MX
Copy export TARGET="target.com"
nslookup -query=TXT $TARGET
dig txt $TARGET @1.1.1.1
Copy export TARGET="target.com"
nslookup -query=MX $TARGET
dig mx $TARGET @1.1.1.1
Enumeración pasiva de subdominios
Obtener información de los subdominios a través de servicios de terceros.
VirusTotal
Podemos obtener información relacionada con un dominio cuando lo analizamos. En la pestaña RELATIONS
podemos obtener registros DNS:
Certificados
Es posible obtener subdominios mediante los certificados SSL/TLS. Esto se puede mediante el Certificate Transparency
(CT).
Censys Crtsh Certificate Transparency
Esto lo podemos consumir desde la CLI mediante un cURL
:
Copy export TARGET="facebook.com"
curl -s "https://crt.sh/?q=${TARGET}&output=json" | jq -r '.[] | "\(.name_value)\n\(.common_name)"' | sort -u > "${TARGET}_crt.sh.txt"
curl -s
realiza un cURL especificando que muestre lo menos posible en el output
https://crt.sh/?q=${TARGET}&output=json
se indica que buscaremos el dominio definido en la variable TARGET
en un formato json
jq -r '.[]' "\(.name_value)\n\(.common_name)"'
procesar la salida en formato json e imprime el valor name value
y common name
sort -u
ordenar la salida de forma alfabética y remueve los duplicados
En caso de usar HTTPS, la comunicación se debe realizar mediante OpenSSL:
Copy export TARGET="facebook.com"
export PORT="443"
openssl s_client -ign_eof 2>/dev/null <<<$'HEAD / HTTP/1.0\r\n\r' -connect "${TARGET}:${PORT}" | openssl x509 -noout -text -in - | grep 'DNS' | sed -e 's|DNS:|\n|g' -e 's|^\*.*||g' | tr -d ',' | sort -u
Google Dorks
Copy site:google.com -inurl:www
site:google.com -site:www.google.com
Para no incluir un subdominio, podemos usar el operador -
Automatización de enumeración pasiva de subdominios
Esto se puede automatizar utilizando múltiples herramientas, como theHarvester .
theHarvester
Esta herramienta recolecta:
Utiliza múltiples origenes para recolectar la información:
Crtsh : búsqueda de certificados
Hackertarget : escáner de vulnerabilidades online y network intelligence para ayudar a organizaciones
Rapiddns : herramienta de consulta de DNS, que facilita la consulta de subdominios o sitios que utilizan la misma IP
Sublist3r : herramienta rápida de enumeración de subdominios
Threatcrowd : herramienta open source de threat intelligence
[Threatmine]: minería de datos para threat intelligence
Trello: busca en Trello boards (utiliza google)
Urlscan : un sandbox para la web que es un escáner de URL y sitios web
vhost: buscar virtual hosts
Lo primero es crear un archivo source.txt
para agrupar todos estos orígenes:
Copy baidu
bufferoverun
crtsh
hackertarget
otx
projecdiscovery
rapiddns
sublist3r
threatcrowd
trello
urlscan
vhost
virustotal
zoomeye
Ejecutamos theHarvester
usando el siguiente comando:
Copy export TARGET="facebook.com"
cat sources.txt | while read source; do theHarvester -d "${TARGET}" -b $source -f "${source}_${TARGET}";done
Para extraer todos los subdominios, se utiliza el siguiente comando:
Copy cat *.json | jq -r '.hosts[]' 2>/dev/null | cut -d':' -f 1 | sort -u > "${TARGET}_theHarvester.txt"
Identificación pasiva de infraestructura
Netcraft
Con Netcraft podemos obtener información del servidor sin tener que interactuar con él directamente:
Wayback Machine
Web Site CLI
Podemos usar Wayback Machine mediante la herramienta waybackurls . Para poder instalar esta herramienta, podemos usar el siguiente comando:
Copy go install github.com/tomnomnom/waybackurls@latest
Para poder usarla, podemos usar los siguientes comandos:
Copy waybackurls -dates https://facebook.com > waybackurls.txt
cat domains.txt | waybackurls > urls