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.
Ejemplos de uso de HostHunter
Como puedes ver, estamos ante una herramienta que puede resultar de gran utilidad para los profesionales de la seguridad. Especialmente cuando se encuentran en una fase de reconocimiento, realizando pruebas de penetración o evaluaciones de seguridad. Algunos ejemplos de uso son:
- Descubrimiento básico de subdominios: Nos permite descubrir subdominios para dominios específicos. Esto se puede realizar con todos los sitios web.
- Exportar resultados: Como buen analizador, nos permite realizar una exportación de los resultados. Esto ayuda a que sean analizados de forma más detenida y eficaz.
- Utilizar múltiples fuentes de datos: La herramienta recopila información de diferentes fuentes públicas. Al utilizar la opción adecuada, se pueden realizar búsquedas más exhaustivas para todas las fuentes que se encuentran disponibles.
- Escanear direcciones IP asociadas: Si no deseamos tener solo un listado de los subdominios, podemos configurar esta solución para que también nos indique las direcciones IP que se encuentran en ese dominio en particular.
- Verificación de direcciones IP en tiempo real: Nos permite resolver direcciones IP en tiempo real, mientras las está asociando con todos los subdominios que ha descubierto.
- Identificación de subdominios vulnerables: Tras el descubrimiento de los subdominios, los pentesters pueden dar uso de las herramientas adicionales para poder identificar vulnerabilidades. Así como configuraciones incorrectas, certificados caducados o servicios que puedan estar expuestos.
- Complemento de fase de reconocimiento: En evaluaciones de seguridad, después de dar uso de HostHunter, podría seguirse con herramientas también muy conocidas. Es el ejemplo de Nmap o Masscan, buscando explorar los servicios que están abiertos en los subdominios que hemos descubierto.
- Evaluación de superficie de ataque: Muchas empresas dan uso de HostHunter para poder identificar los subdominios que están expuestos al público. Lo cual permite tener una visión mucho más amplia de la superficie de ataque, y así tomar las medidas que se consideren oportunas para mantener la seguridad.
- Investigaciones de inteligencia de amenazas: Se puede utilizar HostHunter para realizar un descubrimiento de la infraestructura que está asociada a dominios sospechosos o maliciosos.
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
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('')[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í:
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.