🔎Subdominios - Pasiva
La identificación de subdominios implica la búsqueda y enumeración de subdominios asociados a un dominio principal.
Enumeración pasiva de subdominios
La enumeración de subdominios se refiere al mapeo de todos los subdominios disponibles dentro de un nombre de dominio. Aumenta nuestra superficie de ataque y puede descubrir paneles de administración ocultos o aplicaciones web de intranet que los administradores de red esperaban mantener ocultos mediante la estrategia de "seguridad por oscuridad". En este punto, solo realizaremos una enumeración pasiva de subdominios utilizando servicios de terceros o información disponible públicamente. Aún así, ampliaremos la información que recopilamos en futuras actividades de enumeración de subdominios activos.
VirusTotal
VirusTotal mantiene su servicio de replicación de DNS, que se desarrolla preservando las resoluciones de DNS realizadas cuando los usuarios visitan las URL proporcionadas por ellos. Para recibir información sobre un dominio, escriba el nombre del dominio en la barra de búsqueda y haga clic en la pestaña "Relaciones".

Certificados
Otra fuente interesante de información que podemos utilizar para extraer subdominios son los certificados SSL/TLS. La razón principal es la Transparencia de Certificados (CT), un proyecto que requiere que cada certificado SSL/TLS emitido por una Autoridad Certificadora (CA) se publique en un registro de acceso público.
Aprenderemos cómo examinar los registros de CT para descubrir nombres de dominio y subdominios adicionales para una organización objetivo utilizando dos recursos principales:
Podemos navegar hasta https://search.censys.io/certificates o https://crt.sh e introducir el nombre de dominio de nuestra organización objetivo para comenzar a descubrir nuevos subdominios.


Aunque el sitio web es excelente, nos gustaría tener esta información organizada y poder combinarla con otras fuentes encontradas durante el proceso de recopilación de información. Realicemos una solicitud curl al sitio web de destino solicitando una salida JSON, ya que nos resulta más manejable procesarla. Podemos hacer esto a través de los siguientes comandos:
Transparencia del certificado
afsh4ck$ export TARGET="facebook.com"
afsh4ck$ curl -s "https://crt.sh/?q=${TARGET}&output=json" | jq -r '.[] | "\(.name_value)\n\(.common_name)"' | sort -u > "${TARGET}_crt.sh.txt"
afsh4ck$ head -n20 facebook.com_crt.sh.txt
*.adtools.facebook.com
*.ak.facebook.com
*.ak.fbcdn.net
*.alpha.facebook.com
*.assistant.facebook.com
*.beta.facebook.com
*.channel.facebook.com
*.cinyour.facebook.com
*.cinyourrc.facebook.com
*.connect.facebook.com
*.cstools.facebook.com
*.ctscan.facebook.com
*.dev.facebook.com
*.dns.facebook.com
*.extern.facebook.com
*.extools.facebook.com
*.f--facebook.com
*.facebook.com
*.facebookcorewwwi.onion
*.facebookmail.com
curl -s
Emita la solicitud con un resultado mínimo.
https://crt.sh/?q=<DOMAIN>&output=json
Solicite la salida json.
jq -r '.[]' "\(.name_value)\n\(.common_name)"'
Procese la salida json e imprima el valor del nombre del certificado y el nombre común uno por línea.
sort -u
Ordene alfabéticamente el resultado proporcionado y elimine duplicados.
También podemos realizar esta operación manualmente contra un objetivo usando OpenSSL:
afsh4ck$ export TARGET="facebook.com"
afsh4ck$ export PORT="443"
afsh4ck$ 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
*.facebook.com
*.facebook.net
*.fbcdn.net
*.fbsbx.com
*.m.facebook.com
*.messenger.com
*.xx.fbcdn.net
*.xy.fbcdn.net
*.xz.fbcdn.net
facebook.com
messenger.com
Automatización de la enumeración pasiva de subdominios
Hemos aprendido cómo adquirir información útil de nuestra organización objetivo, como subdominios, patrones de nombres, TLD alternativos, rangos de IP, etc., utilizando servicios de terceros sin interactuar directamente con su infraestructura ni depender de herramientas automatizadas. Ahora aprenderemos a enumerar subdominios utilizando herramientas e información obtenida previamente.
The Harvester
The Harvester es una herramienta fácil de usar pero potente y eficaz para pruebas de penetración en etapas iniciales y ejercicios de Red Team. Podemos usarlo para recopilar información que ayude a identificar la superficie de ataque de una empresa. La herramienta recopila emails
, nombres
, subdominios
, direcciones IP
y URLs
de varias fuentes de datos públicos para la recopilación de información pasiva. Por ahora, usaremos los siguientes módulos:
Motor de búsqueda Baidu
Bufferoverun
Utiliza datos del Proyecto Sonar de Rapid7: www.rapid7.com/research/project-sonar/
Búsqueda de certificados de Comodo.
Escáneres de vulnerabilidades online e inteligencia de red
Otx
Intercambio abierto de amenazas de AlienVault: https://otx.alienvault.com
Herramienta de consulta DNS, que facilita la consulta de subdominios o sitios que utilizan la misma IP
Herramienta rápida de enumeración de subdominios para penetration testers
Inteligencia sobre amenazas de código abierto
Minería de datos para inteligencia sobre amenazas
Trello
Buscar tableros de Trello (utiliza la búsqueda de Google)
Un sandbox web para estanear webs y URLs
Vhost
Búsqueda de hosts virtuales de Bing
Búsqueda de dominios
Versión china de Shodan
Para automatizar esto, crearemos un archivo llamado sources.txt
con el siguiente contenido.
afsh4ck$ cat sources.txt
baidu
bufferoverun
crtsh
hackertarget
otx
projectdiscovery
rapiddns
sublist3r
threatcrowd
trello
urlscan
vhost
virustotal
zoomeye
Una vez creado el archivo, ejecutaremos los siguientes comandos para recopilar información de estas fuentes.
export TARGET="facebook.com"
cat sources.txt | while read source; do theHarvester -d "${TARGET}" -b $source -f "${source}_${TARGET}";done
<SNIP>
*******************************************************************
* _ _ _ *
* | |_| |__ ___ /\ /\__ _ _ ____ _____ ___| |_ ___ _ __ *
* | __| _ \ / _ \ / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | | __/ / __ / (_| | | \ V / __/\__ \ || __/ | *
* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___||___/\__\___|_| *
* *
* theHarvester 4.0.0 *
* Coded by Christian Martorella *
* Edge-Security Research *
* cmartorella@edge-security.com *
* *
*******************************************************************
[*] Target: facebook.com
[*] Searching Urlscan.
[*] ASNS found: 29
--------------------
AS12578
AS13335
AS13535
AS136023
AS14061
AS14618
AS15169
AS15817
<SNIP>
Cuando finalice el proceso, podemos extraer todos los subdominios encontrados y ordenarlos mediante el siguiente comando:
cat *.json | jq -r '.hosts[]' 2>/dev/null | cut -d':' -f 1 | sort -u > "${TARGET}_theHarvester.txt"
Ahora podemos fusionar todos los archivos de reconocimiento pasivo mediante:
cat facebook.com_*.txt | sort -u > facebook.com_subdomains_passive.txt
cat facebook.com_subdomains_passive.txt | wc -l
11947
También podemos ejecutar theHarvester de una forma simple con el siguiente comando:
theHarvester -d facebook.com -l 400 -b all
Sublist3r
Sublist3r es una herramienta de línea de comandos que utiliza múltiples fuentes de datos públicas para buscar subdominios asociados a un dominio principal. Esta herramienta es fácil de usar y proporciona resultados precisos de manera rápida. Sublist3r también admite la integración con otras herramientas de seguridad, como Nmap y Maltego
sudo apt install sublist3r
# el parámetro -b es para hacer fuerza bruta
sublist3r -d hackthissite.org -v -b -o output.txt
# Encuentra puertos abiertos en subdominios. (Recon. Activo)
sublist3r -d hackthissite.org -v -p 80,443

Reconocimiento Activo de Subdominios
En la siguiente sección veremos técnicas de reconocimiento activo de subdominios:
💻Subdominios - ActivaÚltima actualización
¿Te fue útil?