Saltearse al contenido

Maltego y grafos OSINT

Tras recopilar dominios, subdominios, IPs, emails, personas y filtraciones, el reto es conectarlos: ver que este email pertenece a esta persona, que usa este usuario, que registró este dominio, que resuelve a esta IP, que está en este rango. Maltego es la herramienta de referencia para construir ese grafo de relaciones visualmente, automatizando la recolección y mostrando conexiones que en una lista de texto pasarían desapercibidas.

  • Entidad: un nodo (un dominio, un email, una persona, una IP, un teléfono).
  • Transform: una consulta automatizada que, a partir de una entidad, descubre otras relacionadas (de un dominio → sus subdominios; de un email → en qué brechas aparece; de una persona → sus cuentas).
  • Grafo: el lienzo donde las entidades se conectan según lo que los transforms descubren.
1. Empiezas con una entidad semilla (el dominio objetivo)
2. Ejecutas transforms: dominio -> subdominios, DNS, emails, WHOIS
3. Sobre los resultados, más transforms: email -> persona -> cuentas -> brechas
4. El grafo revela relaciones: "este dominio y este otro comparten registrante"
5. Pivotas sobre los nodos más prometedores
# built-in y de la comunidad (Transform Hub)
DNS/WHOIS, Shodan, VirusTotal, HaveIBeenPwned, crt.sh,
redes sociales, PassiveTotal, etc.
# muchos requieren API keys de los servicios

Maltego CE (Community Edition) es gratuita con límites; las de pago amplían transforms y resultados.

SpiderFoot automatiza OSINT masivo (más de 200 módulos) con informe/grafo
recon-ng framework CLI modular de recon (tipo Metasploit para OSINT)
theHarvester recolección rápida (emails/hosts) que alimenta el grafo
Maltego CaseFile grafos manuales sin transforms (organizar lo recopilado)

SpiderFoot y recon-ng cubren gran parte del mismo terreno de forma automatizada y scriptable; Maltego destaca en la visualización y el pivoting interactivo.

  • Cuando el recon acumula tanta información que necesitas ver las relaciones (personas↔emails↔dominios↔infra).
  • Para presentar hallazgos de OSINT de forma clara en un informe.
  • Para descubrir conexiones no obvias (dominios que comparten registrante, infra compartida, empleados que reutilizan usuarios).

Los transforms consultan servicios de terceros (pasivo), pero algunos pueden tocar al objetivo o consumir API keys atribuibles. Respeta el scope, revisa qué hace cada transform antes de lanzarlo en masa, y recuerda que acumular datos personales exige cuidado ético/legal.

El mismo grafo que construye un atacante lo puede construir defensa sobre su propia organización para ver su superficie de exposición: qué dominios, emails, filtraciones y relaciones son públicamente visibles, y reducir lo que no debería estarlo. Es Attack Surface Management con enfoque de grafo.

Cómo una semilla se convierte en superficie de ataque encadenando transforms:

[dominio] corp.com
--(DNS/crt.sh)--> [subdominios] vpn.corp.com, dev.corp.com, mail.corp.com
--(WHOIS)--> [registrante] "IT Admin <admin@corp.com>" + otros 3 dominios del mismo email
--(theHarvester)--> [emails] nombre.apellido@corp.com (formato deducido)
--(HaveIBeenPwned)->[brecha] admin@corp.com aparece en una filtración
--(social)--> [persona] perfil del admin -> usuario reutilizado en varios sitios
Resultado: de "un dominio" a "un admin con credenciales potencialmente reutilizadas
y 3 dominios hermanos que nadie tenía inventariados".

El valor del grafo es ver la conexión no obvia: que dos dominios comparten registrante, o que un empleado reutiliza el mismo usuario, salta a la vista en el lienzo y se pierde en una lista de texto.

Un grafo bien hecho alimenta directamente las siguientes fases:

  • Entender entidades, transforms y grafo
  • Partir de una semilla (dominio) y expandir con transforms
  • Conectar dominios ↔ emails ↔ personas ↔ infra
  • Integrar fuentes (Shodan, HIBP, crt.sh, WHOIS) vía transforms
  • Pivotar sobre los nodos más prometedores
  • Complementar con SpiderFoot/recon-ng para automatización
  • Exportar el grafo para el informe
  • Revisar OPSEC de cada transform antes de ejecutarlo