Recursos y herramientas para el descubrimiento de subdominios
Todos los frameworks y metodologías existentes para tests de intrusión contemplan en sus fases iniciales el reconocimiento, y dentro del reconocimiento es fundamental el descubrimiento de subdominios ya que puede ayudar a un atacante o auditor a identificar y enumerar distintos sitios web del objetivo, algunos incluso mal configurados y vulnerables. A continuación se listan una serie de recursos online y herramientas de gran valor que facilitan enormemente esta tarea.
RECURSOS ONLINE
1.- Censys (https://censys.io/)
Es probablemente uno de los primeros motores de búsqueda que buscan subdominios. Además te muestra otra información como puertos abiertos, detalles del certificado y SSL y resultados del Whois.
2.- Shodan (http://shodan.io/)
Shodan es una plataforma de spidering con una base de datos enorme dirigida fundamentalmente a profesionales de seguridad. Tiene datos históricos y actuales sobre una gran franja de servidores en Internet, incluyendo subdominios descubiertos, versionado de servidores y mucho más.
3.- Pentest-tools (https://pentest-tools.com/information-gathering/find-subdomains-of-domain)
Dentro de la categoría de 'Information Gathering', Pentest-tools tiene una herramienta de búsqueda de subdominios que utiliza distintos métodos como transferencias de zona DNS, enumeración DNS basada en listas y peticiones a distintos motores de búsqueda.
4.- DNSDumpster (https://dnsdumpster.com/)
DNSDumpster del proyecto HackerTarget.com es una herramienta que, además de los subdominuios, nos devolverá información del servidor DNS, registros MX, registros TXT y un interesante esquema de las relaciones del dominio analizado.
5.- Netcraft (http://searchdns.netcraft.com/)
La compañía inglesa tiene una muy buena base de datos de dominios que no podemos olvidar consultar:
6.- CloudPiercer (https://cloudpiercer.org/)
Cloudpiercer está orientado a encontrar IPs reales de servidores web que deberían estar protegidos por la infraestructura de un proveedor en la nube. Si acreditas que eres el dueño del sitio mediante alguno de los métodos disponibles, CloudPiercer realizará un escaneo verificando varios vectores como bases de datos de historial de IPs, registros DNS, ficheros sensibles, pingback, certificados y, por supuesto, subdominios.
HERRAMIENTAS LOCALES
1. Sublist3r (https://github.com/aboul3la/Sublist3r)
Es una herramienta en python capaz de enumerar subdominios de sitios web a través de varios recursos OSINT. Utiliza como motores de búsqueda Google, Yahoo, Bing, Baidu y Ask y obtiene subdominios mediante Netcraft, Virustotal, ThreatCrowd, DNSdumpster y PassiveDNS. También incorpora otra herramienta, subbrute (https://github.com/TheRook/subbrute) para encontrar más subdominios mediante fuerza bruta (wordlists).
git clone https://github.com/aboul3la/Sublist3r.git
pip install -r requirements.txt
python sublist3r.py -d example.com
2.- SubBrute (https://github.com/TheRook/subbrute)
SubBrute es una de las herramientas de enumeración de subdominios más populares y precisas. Es un proyecto impulsado por la comunidad y utiliza “open resolvers” como proxy para no enviar directamente tráfico a los servidores DNS.
Se puede utilizar en sistemas operativos basados en Windows o UNIX y la instalación es muy fácil. La siguiente demostración se basa en Ubuntu:
sudo apt-get install python-dnspython
git clone https://github.com/TheRook/subbrute.git
cd subbrute
./subbrute -h
3.- Knock (https://github.com/guelfoweb/knock)
Es otra herramienta escrita en Python para descubrir subdominios usando una lista de palabras. Esta diseñada para escanear los DNS en busca de transferencias de zona y para intentar evadir el registro DNS Wildcard (si está activado).
git clone https://github.com/guelfoweb/knock.git
python knock.py -w wordlist/wordlist.txt faqin-org
4.- DNSRecon (https://github.com/darkoperator/dnsrecon)
DNSRecon de Darkoperator se incluye en el arsenal de Kali Linux y comprueba todos los registros NS en busca de transferencias de zona, registros DNs, resolución wildcard, registros PTR, etc.
git clone https://github.com/darkoperator/dnsrecon.git
./dnsrecon.py -d hackplayers.com
5.- Scripts nmap
- http-robtex-reverse-ip (https://github.com/adon90/http-robtex-reverse-ip) : Es un script para nmap que busca nombres DNS de la IP escaneada consultando el servicio de Robtex (http://www.robtex.com/ip-lookup/).
nmap --script http-robtex-reverse-ip 8.8.8.8
- hostmap-ip2hosts (https://github.com/nmap/nmap/blob/master/scripts/hostmap-ip2hosts.nse): encuentra hostnames consultando la base de datos online de IP2hosts (http://www.ip2hosts.com)
nmap -p443 --script hostmap-ip2hosts oracle.com
6.- iptodomain (https://github.com/jevalenciap/iptodomain)
Otra herramienta escrita en python. Permite extraer los dominios de un rango de ips usando la información histórica de la base de datos de Virustotal (requiere una API key).
python iptodomain.py -i 103.22.201.25 -f 103.22.201.255 -o 103.22.200.255.txt -v -r IPsCF.txt
7.- dnsscan (https://github.com/rbsec/dnscan)
La enésima herramienta en python primero intenta transferencias de zona y, a continuación si falla, busca los registros TXT y MX y luego realiza un escaneo recursivo de subdominios mediante wordlists.
git clone https://github.com/rbsec/dnscan.git
pacman -S python-dnspython
python dnscan.py -d pornhub.com
8.- Recon-ng (https://bitbucket.org/LaNMaSteR53/recon-ng)
Recon-ng es un completo framework de reconocimiento web que incluye el módulo brute_hosts para obtener subdominios por fuerza bruta.
git clone https://bitbucket.org/LaNMaSteR53/recon-ng.git
pip2 install -r REQUIREMENTS
python2 recon-ng
9.- Fierce (https://github.com/mschwager/fierce)
Fierce es un escáner de enumeración escrito en Perl que ayuda a los pentesters a localizar el espacio de IPs y nombres de hosts no contiguos para dominios específicos mediante DNS, Whois y ARIN. Está diseñado específicamente para localizar objetivos probables dentro y fuera de una red corporativa. Dado que utiliza DNS principalmente, a menudo encuentra redes mal configuradas que generan fugas de espacio de direcciones internas.
Dependencias:
$ sudo cpan
cpan[1]> install Net::CIDR
cpan[2]> install Net::Whois::ARIN
cpan[3]> install Object::InsideOut
cpan[4]> install Template
cpan[5]> install Test::Class
cpan[6]> install Test::MockObject
cpan[7]> install Net::DNS
cpan[8]> install Net::hostent
cpan[0]> install WWW::Mechanize
Instalación:
$ cd /data/src/
$ svn co https://svn.assembla.com/svn/fierce/fierce2/trunk/ fierce2/
$ cd fierce2/
$ perl Makefile.PL
$ make
$ make test
$ sudo make install
$ mkdir -p /pentest/enumeration/fierce/
$ ln -s /usr/local/bin/fierce /pentest/enumeration/fierce/fierce
Templates:
$ mkdir -p /pentest/enumeration/fierce/
$ ln -s /usr/local/bin/fierce /pentest/enumeration/fierce/fierce
Sintaxis:
$ fierce {target options} [OPTIONS]
10.- dnsenum (https://github.com/fwaeytens/dnsenum)
Script en perl multiproceso para enumerar información de DNS de un dominio y para descubrir bloques de ip no contiguos.
perl -MCPAN -e shell
install XML::Writer
perldoc dnsenum.pl
11.- Altdns (https://github.com/infosec-au/altdns)
Altdns es una herramienta de reconocimiento de DNS que permite el descubrimiento de subdominios que se ajustan a ciertos patrones. Altdns toma palabras que podrían estar presentes en subdominios bajo un dominio (como prueba, dev, stager), así como una lista de subdominios conocida o manual.
git clone https://github.com/infosec-au/altdns.git
cd altdns
pip2 install -r requirements.txt
DICCIONARIOS
- https://github.com/bitquark/dnspop/tree/master/results
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
Fuentes:
- https://geekflare.com/find-subdomains/
- http://blog.bugcrowd.com/discovering-subdomains
RECURSOS ONLINE
1.- Censys (https://censys.io/)
Es probablemente uno de los primeros motores de búsqueda que buscan subdominios. Además te muestra otra información como puertos abiertos, detalles del certificado y SSL y resultados del Whois.
2.- Shodan (http://shodan.io/)
Shodan es una plataforma de spidering con una base de datos enorme dirigida fundamentalmente a profesionales de seguridad. Tiene datos históricos y actuales sobre una gran franja de servidores en Internet, incluyendo subdominios descubiertos, versionado de servidores y mucho más.
3.- Pentest-tools (https://pentest-tools.com/information-gathering/find-subdomains-of-domain)
Dentro de la categoría de 'Information Gathering', Pentest-tools tiene una herramienta de búsqueda de subdominios que utiliza distintos métodos como transferencias de zona DNS, enumeración DNS basada en listas y peticiones a distintos motores de búsqueda.
4.- DNSDumpster (https://dnsdumpster.com/)
DNSDumpster del proyecto HackerTarget.com es una herramienta que, además de los subdominuios, nos devolverá información del servidor DNS, registros MX, registros TXT y un interesante esquema de las relaciones del dominio analizado.
5.- Netcraft (http://searchdns.netcraft.com/)
La compañía inglesa tiene una muy buena base de datos de dominios que no podemos olvidar consultar:
6.- CloudPiercer (https://cloudpiercer.org/)
Cloudpiercer está orientado a encontrar IPs reales de servidores web que deberían estar protegidos por la infraestructura de un proveedor en la nube. Si acreditas que eres el dueño del sitio mediante alguno de los métodos disponibles, CloudPiercer realizará un escaneo verificando varios vectores como bases de datos de historial de IPs, registros DNS, ficheros sensibles, pingback, certificados y, por supuesto, subdominios.
HERRAMIENTAS LOCALES
1. Sublist3r (https://github.com/aboul3la/Sublist3r)
Es una herramienta en python capaz de enumerar subdominios de sitios web a través de varios recursos OSINT. Utiliza como motores de búsqueda Google, Yahoo, Bing, Baidu y Ask y obtiene subdominios mediante Netcraft, Virustotal, ThreatCrowd, DNSdumpster y PassiveDNS. También incorpora otra herramienta, subbrute (https://github.com/TheRook/subbrute) para encontrar más subdominios mediante fuerza bruta (wordlists).
git clone https://github.com/aboul3la/Sublist3r.git
pip install -r requirements.txt
python sublist3r.py -d example.com
2.- SubBrute (https://github.com/TheRook/subbrute)
SubBrute es una de las herramientas de enumeración de subdominios más populares y precisas. Es un proyecto impulsado por la comunidad y utiliza “open resolvers” como proxy para no enviar directamente tráfico a los servidores DNS.
Se puede utilizar en sistemas operativos basados en Windows o UNIX y la instalación es muy fácil. La siguiente demostración se basa en Ubuntu:
sudo apt-get install python-dnspython
git clone https://github.com/TheRook/subbrute.git
cd subbrute
./subbrute -h
3.- Knock (https://github.com/guelfoweb/knock)
Es otra herramienta escrita en Python para descubrir subdominios usando una lista de palabras. Esta diseñada para escanear los DNS en busca de transferencias de zona y para intentar evadir el registro DNS Wildcard (si está activado).
git clone https://github.com/guelfoweb/knock.git
python knock.py -w wordlist/wordlist.txt faqin-org
4.- DNSRecon (https://github.com/darkoperator/dnsrecon)
DNSRecon de Darkoperator se incluye en el arsenal de Kali Linux y comprueba todos los registros NS en busca de transferencias de zona, registros DNs, resolución wildcard, registros PTR, etc.
git clone https://github.com/darkoperator/dnsrecon.git
./dnsrecon.py -d hackplayers.com
5.- Scripts nmap
- http-robtex-reverse-ip (https://github.com/adon90/http-robtex-reverse-ip) : Es un script para nmap que busca nombres DNS de la IP escaneada consultando el servicio de Robtex (http://www.robtex.com/ip-lookup/).
nmap --script http-robtex-reverse-ip 8.8.8.8
- hostmap-ip2hosts (https://github.com/nmap/nmap/blob/master/scripts/hostmap-ip2hosts.nse): encuentra hostnames consultando la base de datos online de IP2hosts (http://www.ip2hosts.com)
nmap -p443 --script hostmap-ip2hosts oracle.com
6.- iptodomain (https://github.com/jevalenciap/iptodomain)
Otra herramienta escrita en python. Permite extraer los dominios de un rango de ips usando la información histórica de la base de datos de Virustotal (requiere una API key).
python iptodomain.py -i 103.22.201.25 -f 103.22.201.255 -o 103.22.200.255.txt -v -r IPsCF.txt
7.- dnsscan (https://github.com/rbsec/dnscan)
La enésima herramienta en python primero intenta transferencias de zona y, a continuación si falla, busca los registros TXT y MX y luego realiza un escaneo recursivo de subdominios mediante wordlists.
git clone https://github.com/rbsec/dnscan.git
pacman -S python-dnspython
python dnscan.py -d pornhub.com
8.- Recon-ng (https://bitbucket.org/LaNMaSteR53/recon-ng)
Recon-ng es un completo framework de reconocimiento web que incluye el módulo brute_hosts para obtener subdominios por fuerza bruta.
git clone https://bitbucket.org/LaNMaSteR53/recon-ng.git
pip2 install -r REQUIREMENTS
python2 recon-ng
9.- Fierce (https://github.com/mschwager/fierce)
Fierce es un escáner de enumeración escrito en Perl que ayuda a los pentesters a localizar el espacio de IPs y nombres de hosts no contiguos para dominios específicos mediante DNS, Whois y ARIN. Está diseñado específicamente para localizar objetivos probables dentro y fuera de una red corporativa. Dado que utiliza DNS principalmente, a menudo encuentra redes mal configuradas que generan fugas de espacio de direcciones internas.
Dependencias:
$ sudo cpan
cpan[1]> install Net::CIDR
cpan[2]> install Net::Whois::ARIN
cpan[3]> install Object::InsideOut
cpan[4]> install Template
cpan[5]> install Test::Class
cpan[6]> install Test::MockObject
cpan[7]> install Net::DNS
cpan[8]> install Net::hostent
cpan[0]> install WWW::Mechanize
Instalación:
$ cd /data/src/
$ svn co https://svn.assembla.com/svn/fierce/fierce2/trunk/ fierce2/
$ cd fierce2/
$ perl Makefile.PL
$ make
$ make test
$ sudo make install
$ mkdir -p /pentest/enumeration/fierce/
$ ln -s /usr/local/bin/fierce /pentest/enumeration/fierce/fierce
Templates:
$ mkdir -p /pentest/enumeration/fierce/
$ ln -s /usr/local/bin/fierce /pentest/enumeration/fierce/fierce
Sintaxis:
$ fierce {target options} [OPTIONS]
10.- dnsenum (https://github.com/fwaeytens/dnsenum)
Script en perl multiproceso para enumerar información de DNS de un dominio y para descubrir bloques de ip no contiguos.
perl -MCPAN -e shell
install XML::Writer
perldoc dnsenum.pl
11.- Altdns (https://github.com/infosec-au/altdns)
Altdns es una herramienta de reconocimiento de DNS que permite el descubrimiento de subdominios que se ajustan a ciertos patrones. Altdns toma palabras que podrían estar presentes en subdominios bajo un dominio (como prueba, dev, stager), así como una lista de subdominios conocida o manual.
git clone https://github.com/infosec-au/altdns.git
cd altdns
pip2 install -r requirements.txt
DICCIONARIOS
- https://github.com/bitquark/dnspop/tree/master/results
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS
Fuentes:
- https://geekflare.com/find-subdomains/
- http://blog.bugcrowd.com/discovering-subdomains
Via: www.hackplayers.com
Recursos y herramientas para el descubrimiento de subdominios
Reviewed by Zion3R
on
22:00
Rating: