ODIN
Observa, Detecta e Investiga Redes


Versión actual: v2.0.0 "Huginn"
ODIN es una herramienta de Python para automatizar la recopilación de inteligencia, el descubrimiento de activos y la generación de informes. Recuerda, revisa la rama dev para las funciones más recientes, ¡y los comentarios son bienvenidos!
Consulta la wiki de GitHub para obtener detalles e instrucciones de instalación y configuración.
¿Qué Puede Hacer ODIN?
ODIN tiene como objetivo automatizar las tareas básicas de reconocimiento utilizadas por los equipos rojos para descubrir y recopilar datos sobre activos de red, incluidos dominios, direcciones IP y sistemas orientados a Internet. La característica clave de ODIN es la gestión de datos y la generación de informes. Los datos se organizan en una base de datos y luego, opcionalmente, esa base de datos se puede convertir en un informe HTML o una base de datos de grafos de Neo4j para visualizar los datos.
ODIN realiza esto en múltiples fases:
Fase 1 - Descubrimiento de Activos
- Recopilar información básica de la organización de fuentes como la base de datos de marketing de Full Contact.
- Verificar DNS Dumpster, Netcraft y certificados TLS para descubrir subdominios de los dominios proporcionados.
- Resolver dominios y subdominios a direcciones IP mediante conexiones de socket y registros DNS.
- Recopilar información de todas las direcciones IP, como datos de propiedad y organización, de RDAP, whois y otras fuentes de datos.
- Consultar dominios y buscar direcciones IP en Shodan para recopilar datos adicionales, como sistemas operativos, banners de servicios y puertos abiertos.
- Verificar la posibilidad de takeovers y domain fronting con los dominios y subdominios.
Fase 2 - Descubrimiento de Empleados
- Recopilar direcciones de correo electrónico y nombres de empleados de la organización objetivo.
- Vincular empleados a perfiles de redes sociales mediante motores de búsqueda y la API de Twitter.
- Verificar de forma cruzada las direcciones de correo electrónico descubiertas con Have I Been Pwned de Troy Hunt.
Fase 3 - Servicios en la Nube y Web
- Buscar archivos de Office y PDF bajo el dominio objetivo, descargarlos y extraer metadatos.
- Buscar buckets de AWS S3 y Digital Ocean Spaces utilizando palabras clave relacionadas con la organización.
- Tomar capturas de pantalla de los servicios web descubiertos para una revisión rápida y temprana de los servicios.
- Guardar todos los datos en una base de datos SQLite3 para permitir consultar los datos fácilmente.
- Generar un informe HTML utilizando consultas SQL predeterminadas para facilitar la revisión de los datos en un navegador web.
- Crear una base de datos de grafos Neo4j que vincule todas las entidades descubiertas (direcciones IP, dominios, subdominios, puertos y certificados) con relaciones (por ejemplo, RESOLVES_TO, HAS_PORT).
Al final de todo esto, tendrás múltiples formas de navegar y visualizar los datos. Incluso una consulta simple de Neo4j como MATCH (n) RETURN n (muestra todo) puede crear un gráfico fascinante del perímetro externo de la organización y facilitar la visualización de cómo están vinculados los activos. Las páginas wiki de Neo4j contienen mejores ejemplos de consultas.