
InfoHound es una herramienta OSINT para extraer una gran cantidad de datos dado un nombre de dominio web.
Durante la fase de reconocimiento, un atacante busca cualquier información sobre su objetivo para crear un perfil que luego le ayudará a identificar posibles vías de entrada en una organización. InfoHound realiza técnicas de análisis pasivo (que no interactúan directamente con el objetivo) utilizando OSINT para extraer una gran cantidad de datos a partir de un nombre de dominio web. Esta herramienta recuperará correos electrónicos, personas, archivos, subdominios, nombres de usuario y URLs que posteriormente serán analizados para extraer información aún más valiosa.
Además, InfoHound aprovecha una instancia de Ollama, lo que le permite utilizar el poder de los LLM (Modelos de Lenguaje de Gran Escala). Por defecto, InfoHound utiliza llama2, un modelo LLM preentrenado, para generar breves descripciones de los roles de las personas dentro de una organización. Esta funcionalidad proporciona información valiosa sobre la estructura organizativa y facilita la identificación de personal clave. Además, los esfuerzos de desarrollo en curso tienen como objetivo añadir nuevas características y mejoras para enriquecer aún más las capacidades de la herramienta en el futuro.
NOTA: InfoHound no requiere hardware especial para funcionar. Sin embargo, es importante considerar los requisitos de hardware al utilizar tareas que emplean el Modelo de Lenguaje de Gran Escala (LLM). Para obtener información detallada sobre los requisitos específicos del modelo LLM que planeas usar, consulta la documentación oficial de Ollama.

git clone https://github.com/Fundacio-i2CAT/InfoHound.git
cd InfoHound/infohound
mv infohound_config.sample.py infohound_config.py
cd ..
docker-compose up -d
Ahora puedes acceder a InfoHound navegando con tu navegador a:
http://localhost:8000/
NOTA: Debes añadir las API Keys dentro del archivo infohound_config.py
InfoHound tiene 2 tipos diferentes de módulos: los que recuperan datos y los que los analizan para extraer información más relevante.
InfoHound te permite crear módulos personalizados, solo necesitas añadir tu script dentro de infohound/tool/custom_modules. Se ha añadido un módulo personalizado como ejemplo que utiliza la herramienta Holehe para verificar si los correos electrónicos previamente encontrados están vinculados a una cuenta en sitios como Twitter, Instagram, Imgur y más de 120 otros.
# Import the packages you need
import trio
import httpx
import requests
from holehe import core
# Import the Django models you will work with
from infohound.models import Emails
MODULE_ID = "findRegisteredSitesHoleheCustomTask" # Set a module ID
MODULE_NAME = "Find sites with Holehe" # Set a module name
MODULE_DESCRIPTION = "Using Holehe tool, this task will find where an email has been used to create an account. Holehe checks more than 120 sites." # Set a description
MODULE_TYPE = "Analysis" # Set the type: Analysis or Retrieve
# This function is the only function it will be called by InfoHound
# Change its content and create other the functions if needed
def custom_task(domain_id):
trio.run(findRegisteredSitesHolehe, domain_id)
async def findRegisteredSitesHolehe(domain_id):
queryset = Emails.objects.filter(domain_id=domain_id)
for entry in queryset.iterator():
out = []
email = entry.email
modules = core.import_submodules("holehe.modules")
websites = core.get_functions(modules)
client = httpx.AsyncClient()
for website in websites:
await core.launch_module(website, email, client, out)
print(out)
await client.aclose()
services = []
for item in out:
if item["exists"]:
services.append(item["name"])
entry.registered_services = services
entry.save()

¿Quieres crear un gráfico de visualización con los hallazgos? Puedes exportar todo el análisis del dominio a un archivo GraphML y abrirlo con yED, Gephi o cualquier herramienta de tu elección. Actualmente exporta archivos, personas, correos electrónicos, perfiles sociales, sitios registrados y nombres de usuario. Las URLs y subdominios no se incluyen debido a la cantidad de resultados.

¿Quieres proceder con herramientas como Maltego para tus investigaciones extendidas? Puedes exportar todo el análisis del dominio (incluyendo archivos, individuos, correos electrónicos, perfiles sociales, sitios registrados y nombres de usuario) a un archivo compatible con Maltego (CSV) y abrirlo allí. Encontrarás el archivo de configuración de mapeo de columnas de Maltego (maltego_mapping.mtz) en el directorio raíz del proyecto. Aprende más sobre importar a Maltego
Este código ha sido desarrollado por la Fundació Privada Internet i Innovació Digital a Catalunya (i2CAT).
i2CAT es un centro de investigación e innovación sin ánimo de lucro que promueve el conocimiento impulsado por la misión para resolver desafíos empresariales, co-crear soluciones con un impacto transformador, empoderar a los ciudadanos a través de la innovación social digital abierta y participativa con capilaridad territorial, y promover iniciativas pioneras y estratégicas.
i2CAT tiene como objetivo transferir los resultados de los proyectos de investigación a empresas privadas para crear impacto social y económico mediante la concesión de licencias de propiedad intelectual y la creación de spin-offs.
Encuentra más información sobre los proyectos y derechos de propiedad intelectual de i2CAT en https://i2cat.net/tech-transfer/
Este código está licenciado bajo los términos AGPLv3. Información sobre la licencia se puede encontrar en enlace.
Si consideras que esta licencia no se ajusta a tus requisitos en cuanto al uso, distribución o redistribución de nuestro código para tu trabajo específico, no dudes en contactar a los gestores de propiedad intelectual de i2CAT en la siguiente dirección: [email protected]
| Nombre | Descripción |
|---|
| Obtener información Whois | Obtiene información relevante del registro Whois. |
| Obtener registros DNS | Esta tarea consulta el DNS. |
| Obtener subdominios | Esta tarea utiliza las APIs de Alienvault OTX, CRT.sh y HackerTarget como fuentes de datos para descubrir subdominios cacheados. |
| Obtener subdominios desde URLs | Una vez que se han ejecutado algunas tareas, la tabla de URLs tendrá muchas entradas. Esta tarea revisará todas las URLs para encontrar nuevos subdominios. |
| Obtener URLs | Busca todas las URLs cacheadas por Wayback Machine y las guarda en la base de datos. Esto ayudará posteriormente a descubrir otras entidades de datos como archivos o subdominios. |
| Obtener archivos desde URLs | Itera a través de la tabla de la base de datos de URLs para encontrar archivos y almacenarlos en la tabla de Archivos para su posterior análisis. Los archivos que se recuperarán son: doc, docx, ppt, pptx, pps, ppsx, xls, xlsx, odt, ods, odg, odp, sxw, sxc, sxi, pdf, wpd, svg, indd, rdp, ica, zip, rar |
| Buscar correos electrónicos | Busca correos electrónicos utilizando consultas a Google, Bing y bases de datos filtradas. |
| Buscar personas desde correos | Una vez que se han encontrado algunos correos, puede ser útil descubrir la persona detrás de ellos. También encuentra nombres de usuario de esas personas. |
| Buscar correos desde URLs | A veces, las URLs descubiertas pueden contener información sensible. Esta tarea recupera todos los correos electrónicos de las rutas de las URLs. |
| Ejecutar dorks | Ejecutará los dorks definidos en la carpeta dorks. Recuerda agrupar los dorks por categorías (nombre de archivo) para entender sus objetivos. |
| Buscar correos desde dorks | Por defecto, InfoHound tiene algunos dorks definidos para descubrir correos electrónicos. Esta tarea los buscará en los resultados obtenidos de la ejecución de dorks. |
| Buscar personas desde Google | Utiliza la API JSON de Google para encontrar personas que trabajan en la empresa asociada al dominio |
| Nombre | Descripción |
|---|
| Verificar posibilidad de apropiación de subdominios | Realiza algunas comprobaciones para determinar si un subdominio puede ser tomado. |
| Verificar si el dominio puede ser suplantado | Comprueba si un dominio, de los correos electrónicos que InfoHound ha descubierto, puede ser suplantado. Esto podría ser utilizado por atacantes para hacerse pasar por una persona y enviar correos electrónicos como si fueran ella. |
| Obtener perfiles desde nombres de usuario | Esta tarea utiliza los nombres de usuario descubiertos de cada persona para encontrar perfiles en servicios o redes sociales donde exista ese nombre de usuario. Esto se realiza utilizando la herramienta Maigret. Vale la pena señalar que aunque se encuentre un perfil con el mismo nombre de usuario, no necesariamente significa que pertenezca a la persona que se está analizando. |
| Descargar todos los archivos | Una vez que los archivos se han almacenado en la tabla de la base de datos de Archivos, esta tarea los descargará en la carpeta "download_files". |
| Obtener metadatos | Usando exiftool, esta tarea extraerá todos los metadatos de los archivos descargados y los guardará en la base de datos. |
| Obtener correos desde metadatos | Como algunos metadatos pueden contener correos electrónicos, esta tarea los recuperará todos y los guardará en la base de datos. |
| Obtener correos del contenido de archivos | Normalmente, los correos electrónicos pueden estar incluidos en archivos corporativos, por lo que esta tarea recuperará todos los correos electrónicos del contenido de los archivos descargados. |
| Encontrar servicios registrados usando correos electrónicos | Es posible encontrar servicios o redes sociales donde se haya utilizado un correo electrónico para crear una cuenta. Esta tarea verificará si un correo electrónico descubierto por InfoHound tiene una cuenta en Twitter, Adobe, Facebook, Imgur, Mewe, Parler, Rumble, Snapchat, Wordpress y/o Duolingo. |
| Verificar filtraciones de datos | Esta tarea consulta el servicio Firefox Monitor para ver si un correo electrónico ha aparecido en una filtración de datos. Aunque es un servicio gratuito, tiene un límite de 10 consultas por día. Si se ha configurado la clave de API de Leak-Lookup, también lo verifica. |
| Análisis de perfiles impulsado por IA | Puedes usar la tarea de análisis de perfiles para emplear una herramienta impulsada por IA que examina los metadatos y crea una descripción por ti. |
| Obtener contraseñas filtradas | Usando el servicio gratuito de Proxy Nova, InfoHound puede detectar y mostrar contraseñas de nombres de usuario encontrados que hayan sido filtrados en el pasado. |