Extrae todos los dominios de una o varias direcciones IP públicas

HostHunter es una herramienta completamente gratuita para descubrir y extraer de forma eficiente los hostname, o nombre de host, que proporcionan un gran conjunto de direcciones IP públicas. Esta herramienta utiliza técnicas sencillas de OSINT para asignar direcciones IP con nombres de host virtuales, permite generar un archivo CSV o TXT que contiene toda la información recopilada. ¿Quieres saber de todo lo que es capaz esta herramienta?

Principales características de HostHunter

HostHunter es una herramienta basada en python3 que está diseñada específicamente para descubrir los dominios o los hostname que pertenecen a una o varias direcciones IP públicas. Nosotros podemos pasarle a esta herramienta un archivo TXT con todas las direcciones IP que queremos investigar, automáticamente la herramienta nos indicará todos los dominios encontrados en una determinada dirección ip pública, además, también podría indicarnos si hay alguna web app funcionando en esa dirección IP en concreto. Este reconocimiento se realiza a través de técnicas OSINT sencillas, por lo que realmente no realiza ningún tipo de ataque activo.

Otras características muy importantes de HostHunter, es que nos permitirá exportar a un archivo de texto TXT o a un archivo de Excel de tipo CSV toda la información que haya recopilado de los diferentes objetivos o «targets», gracias a esto, podremos guardar esta información para su posterior tratamiento e investigación, sin necesidad de ejecutar nuevamente la herramienta siempre que queramos obtener esa información.

Un detalle muy importante de este pequeño programa, es que nos permitirá poner en el archivo de texto tantas direcciones IP objetivo como nosotros queramos, no es necesario ir una por una para realizarlo, directamente en un archivo de texto escribiremos en cada línea las direcciones IP que queramos investigar. Otras características de este programa, es que nos permite extraer información de los certificados SSL/TLS que tengan las diferentes webs asociadas a una correspondiente dirección IP, también es capaz de realizar capturas de pantalla, validar las direcciones IPv4 añadidas e incluso obtener información de las cabeceras de HTTP. Por último, también es capaz de conseguir los valores de hostname de los servicios de FTP, SMTP, HTTP y HTTPS con sus puertos predeterminados.

Instalación y puesta en marcha

Este programa realmente es un script en Python3 que realiza todos los procesos automáticamente, no obstante, es necesario instalar tanto python3 en nuestro sistema operativo, como también algunos requisitos adicionales que podemos descargar directamente desde el proyecto oficial de HostHunter en GitHub. Nosotros hemos utilizado para realizar pruebas con este programa un sistema operativo Debian 11, actualizado a la última versión.

Lo primero que tenemos que hacer tener instalado python3 y python-pip y todas sus dependencias necesarias en nuestro sistema operativo:

sudo apt install python3 python3-pip

A continuación, podéis ver una captura de todas las dependencias necesarias para un sistema operativo Debian, si instalamos «python-pip» solamente nos instalará la versión pip2, si ponemos «python3-pip» para instalarlo, nos instalará la versión 3:

Una vez que hayamos indicado «S», automáticamente se descargan e instalan todos los paquetes necesarios para el funcionamiento de esta herramienta tan interesante.

Ahora tenemos que clonar el repositorio de GitHub de HostHunter, para ello, debemos tener instalado «git» en nuestro sistema operativo, con todas sus correspondientes dependencias:

sudo apt install git

Una vez instalado, nos vamos a un directorio donde descargar este programa, por ejemplo, en /home/usuario/, y tendremos que ejecutar la siguiente orden, para clonar el repositorio de GitHub:

git clone https://github.com/SpiderLabs/HostHunter/

Una vez clonado todo el repositorio, deberemos entrar en él poniendo la orden:

cd HostHunter

Ahora vamos a instalar todos los paquetes necesarios para poder utilizar correctamente HostHunter, para ello, debemos instalar ciertos paquetes adicionales con apt y con pip3. Debemos asegurarnos de que tenemos la versión python3-pip (pip3), de lo contrario nos dará error.

Instalamos el programa Curl para posteriormente usarlo.

sudo apt install curl

Descargamos e instalamos Rust para poder utilizar los paquetes necesarios en el programa.

curl https://sh.rustup.rs -sSf | sh pip3 install rust pip3 install cryptography

Ahora descargamos e instalamos todos los requisitos necesarios para funcionar correctamente.

pip3 install -r requirements.txt

Instalando todos estos paquetes anteriores, ya deberíais poder ejecutar correctamente la herramienta HostHunter, pero antes de poder hacerlo completamente, es necesario instalar algo más para disponer de la característica de captura de pantalla. Para disponer de esta funcionalidad necesitamos descargar la última versión de Google Chrome e instalarla.

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

dpkg -i ./google-chrome-stable_current_amd64.deb

Y descargar la última versión de ChromeDriver para nuestro sistema operativo:

wget -O /tmp/chromedriver.zip https://chromedriver.storage.googleapis.com/74.0.3729.6/chromedriver_linux64.zip && sudo unzip /tmp/chromedriver.zip chromedriver -d /usr/local/bin/;

Funcionamiento

Una vez que hayamos instalado todo, podemos reiniciar para asegurarnos de que todo está correctamente instalado y no nos devuelve ningún tipo de error. La sintaxis que debemos utilizar para ejecutar este programa es muy sencilla, simplemente tenemos que hacer lo siguiente:

python3 hosthunter.py targets.txt -h

En el archivo de texto targets.txt deberíamos tener el listado de todas las direcciones IP que queremos comprobar. Nosotros hemos puesto una dirección IP pública que pertenece a nuestras webs, por tanto, deberíamos ver algún dominio, también hemos puesto una dirección IP de Google, para que nos muestre el hostname o si hay una aplicación web que utilice esta IP pública añadida.

Si al ejecutar el comando anterior, nos sale este error en el módulo de fake_useragent:

python3 hosthunter.py targets.txt -h
Traceback (most recent call last):
File "hosthunter.py", line 48, in <module>
ua = UserAgent(use_cache_server=False)
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/fake.py", line 69, in __init__
self.load()
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/fake.py", line 78, in load
verify_ssl=self.verify_ssl,
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py", line 250, in load_cached
update(path, use_cache_server=use_cache_server, verify_ssl=verify_ssl)
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py", line 245, in update
write(path, load(use_cache_server=use_cache_server, verify_ssl=verify_ssl))
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py", line 178, in load
raise exc
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py", line 154, in load
for item in get_browsers(verify_ssl=verify_ssl):
File "/usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py", line 99, in get_browsers
html = html.split('<table class="w3-table-all notranslate">')[1]
IndexError: list index out of range

En la siguiente captura podéis verlo:

Tenemos que editar el archivo /usr/local/lib/python3.7/dist-packages/fake_useragent/utils.py con nano o Vim, irnos a la línea 99 y cambiar el «w3» por «ws» justamente aquí: <table class=»w3-table-all notranslate»>

Una vez hecho, guardamos cambios y ya podremos volver a ejecutar el comando de HostHunter y nos funcionará perfectamente.

python3 hosthunter.py targets.txt -h

Si queremos exportar la información a un archivo de texto o CSV, deberemos poner los siguientes comandos respectivamente:

python3 hosthunter.py targets.txt -f txt -o hosts.txt python3 hosthunter.py targets.txt -f csv -o hosts.csv

En la siguiente imagen podéis ver parte de la información que es capaz de sacar por cada dirección IP que le hemos pasado:

Os recomendamos acceder al proyecto oficial de HostHunter en GitHub donde encontraréis todos los detalles sobre esta herramienta tan interesante.