En un proceso de pentesting de auditoría de caja negra (black box) en un principio no tenemos ningún conocimiento de la infraestructura de servidores y comunicaciones de la organización que vamos a auditar. Nos encontramos en una fase de recopilación de información y escaneo de los activos de la compañía públicos en Internet.
Lo habitual es usar footprinting con recursos web, técnicas de recopilación y análisis OSINT (Open Source Intelligence) intentando obtener la mayor cantidad de información posible y que nos pueda ser de utilidad para avanzar a una fase de enumeración de los sistemas "vivos".
Es importante conocer los subdominios públicos de un dominio principal para así realizar análisis de posibles vulnerabilidades en estos sistemas y encontrar un vector ataque que nos permita cruzar la seguridad perimetral hacia la red interna de la organización, ejecución de código arbitrario, exfiltración de datos, etc.
Probando multitud de herramientas para este fin, he decidido hacer un recopilación comentando aquellas que me parecieron más interesantes para obtener el descubrimiento y enumeración de los subdominios de un dominio principal.
Podemos usar herramientas de recursos web, accesible y rápidas o instalar herramientas en local que dependiendo cual nos mostrará un poco más de detalle, control y harán reconocimientos pasivos y/o activos si así lo definimos.
Las consultas que se realizan a los dominios no es ilegal ya que se trata de información pública en Internet y accesible por todos, siempre y cuando solo busquemos y visualizamos los resultados sin llegar a interactuar maliciosamente y de manera directa.
Findomain - https://github.com/Edu4rdSHL/findomain
Dispone de planes de pago con diversas funcionales, entre ellas la búsqueda continua y activa de subdominios y la notificación de un nuevo dominio. En su versión free simplemente lista los subdominios actuales.
Las consultas que se realizan a los dominios no es ilegal ya que se trata de información pública en Internet y accesible por todos, siempre y cuando solo busquemos y visualizamos los resultados sin llegar a interactuar maliciosamente y de manera directa.
- Reconocimiento pasivo: las peticiones no dejará evidencias ni acciones en los logs ya que no se llegaría a interactuar con los objetivos escaneados. Por ejemplo realizar búsquedas usando Google Dorks.
- Reconocimiento activo: las peticiones o acciones que dejen un rastro registrado en los logs de los objetivos escaneados. Por ejemplo realizar peticiones con diccionarios wordlists de los posibles subdominios.
Herramientas Online
Herramientas Locales
Herramientas Online
DNSDumpster - https://dnsdumpster.com/
A parte de los subdominios y sus IPs relacionadas nos devolerá un mapa geoip y los servidor DNS, registros MX y registros TXT.
Figura 1: DNSDumpster. |
Nos mostrará todos los subdominios e IPs asociadas, el tipo de servidor, tecnología, tipo de página, a mayores con la versión Pro de pago podremos realizar acciones como escaneo de vulnerabilidades con OpenVAS, URL fuzzer entre otras opciones.
Figura 2: Pentest-tools. |
Netcraft - http://searchdns.netcraft.com/
Listará subdominios y en tipo de sistema operativo en el que están alojados, también nos dará la posibilidad de consultar un report de cada subdominio con su IP asociada, geoip, versiones del sitio web y más información. Podemos realizar búsquedas que hagan match con con el término de subdominio que estamos buscando.
Figura 3: Netcraft. |
IPv4info - http://ipv4info.com/
Buscará los simplemente los subdominios asociados a un dominio principal.
Figura 4: IPv4info. |
RapidDNS - https://rapiddns.io/
Lista los subdominios y el tipo de registro DNS del que se trata.
Figura 5: RapidDNS. |
Google Hacking (Google Dorks)
Una manera interesante de poder encontrar subdominios es directamente realizando una búsqueda usando Google Dorks (operadores de búsqueda avanzada). Con el operador "site:" indicamos el dominio a buscar y con "-site:" omitimos los resultados que tengan relación con el subdominio "www.".
De esta forma se listarán todos los subdominios excepto los que hagan match con www.
site:web.com -site:www.web.com
Figura 6: Google Hacking - Dork para buscar subdominios. |
Herramientas Locales
Subfinder - https://github.com/projectdiscovery/subfinder
Herramienta en Go. Lista subdominios con un reconocimiento pasivo y actualmente con 26 fuentes donde busca la información.
Descarga: https://github.com/projectdiscovery/subfinder/releases
Herramienta en Go. Lista subdominios con un reconocimiento pasivo y actualmente con 26 fuentes donde busca la información.
Descarga: https://github.com/projectdiscovery/subfinder/releases
tar -xzvf subfinder-linux-amd64.tarDispone de una implementación en Docker:
mv subfinder-linux-amd64 /usr/bin/subfinder
subfinder -v -d web.com
https://github.com/projectdiscovery/subfinder#running-in-a-docker-container
Sudomy - https://github.com/Screetsec/Sudomy
Utiliza la biblioteca cURL para obtener el HTTP Response Body de sitios de terceros para ejecutar la expresión regular y así obtener los subdominios, puede establecerse en un modo de reconocimiento pasivo o activo.
Puede implementarse en Docker. Instalación y dependencias:
Figura 11: Subfinder. |
Sudomy - https://github.com/Screetsec/Sudomy
Utiliza la biblioteca cURL para obtener el HTTP Response Body de sitios de terceros para ejecutar la expresión regular y así obtener los subdominios, puede establecerse en un modo de reconocimiento pasivo o activo.
Puede implementarse en Docker. Instalación y dependencias:
https://github.com/Screetsec/Sudomy#installation
Figura 13: Sudomy. |
Amass - https://github.com/OWASP/Amass
Parte del proyecto OWASP a puede realizar diversas tareas usando recursos OSINT y un reconocimiento activo, entre ellas la búsqueda de subdominios por adivinación basada en similitud de FQDN, transferencias de zona, barrido inverso de DNS y fuerza bruta.
Se puede instalar de manera independiente o usando Docker:
apt install amass
amass enum --passive -d web.com
Figura 10: Amass. |
Sublist3r - https://github.com/aboul3la/Sublist3r
Herramienta en python. Realiza diversas búsquedas en buscadores y sitios web para obtener la información.
Instalación de pip (pip es el instalador del paquete para Python).
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
Instalación:
git clone https://github.com/aboul3la/Sublist3r.git
cd sublist3r
pip install -r requirements.txt
python sublist3r.py -h
python sublist3r.py -v -d web.com -o subdomweb.txt
Figura 7: Sublist3r. |
Knockpy - https://github.com/guelfoweb/knock
Herramienta en python. Nos mostrará IP, estado, tipo de registro, subdominio y tipo de servicio web.
git clone https://github.com/guelfoweb/knock.git
cd knock/knockpy
python knockpy.py web.com
Figura 8: Knockpy. |
dnscan - https://github.com/rbsec/dnscan
Herramienta en python. Busca transferencias de zona, registros TXT, MX, registros DMARC y finalmente realiza un escaneo de registros tipo A mediante wordlists.
git clone https://github.com/rbsec/dnscan.git
cd dnscan
python3 dnscan.py -d web.com
Figura 9: dnscan. |
Findomain - https://github.com/Edu4rdSHL/findomain
Dispone de planes de pago con diversas funcionales, entre ellas la búsqueda continua y activa de subdominios y la notificación de un nuevo dominio. En su versión free simplemente lista los subdominios actuales.
wget https://github.com/Edu4rdSHL/findomain/releases/latest/download/findomain-linux
chmod +x findomain-linux
./findomain-linux -t web.com
Figura 12: Findomain. |
theHarvester - https://github.com/laramies/theHarvester
Herramienta en python. A través de diversos motores de búsqueda y sitios web dado un dominio intenta encontrar emails, perfiles en Linkedin, Twitter, Github, virtual hosts, etc. A mayores también muestra subdominios y su IP asociada.
Está integrado en Kali linux. Instalación independiente:
Figura 14: theHarvester. |
Saludos!
No hay comentarios
Publicar un comentario