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.
El modelo: entidades y transforms
Sección titulada «El modelo: entidades y transforms»- 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.
Flujo típico
Sección titulada «Flujo típico»1. Empiezas con una entidad semilla (el dominio objetivo)2. Ejecutas transforms: dominio -> subdominios, DNS, emails, WHOIS3. Sobre los resultados, más transforms: email -> persona -> cuentas -> brechas4. El grafo revela relaciones: "este dominio y este otro comparten registrante"5. Pivotas sobre los nodos más prometedoresTransforms y fuentes
Sección titulada «Transforms y fuentes»# 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 serviciosMaltego CE (Community Edition) es gratuita con límites; las de pago amplían transforms y resultados.
Alternativas y complementos
Sección titulada «Alternativas y complementos»SpiderFoot automatiza OSINT masivo (más de 200 módulos) con informe/graforecon-ng framework CLI modular de recon (tipo Metasploit para OSINT)theHarvester recolección rápida (emails/hosts) que alimenta el grafoMaltego 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.
Cuándo usar un grafo
Sección titulada «Cuándo usar un grafo»- 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).
OPSEC y límites
Sección titulada «OPSEC y límites»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.
Para la defensa
Sección titulada «Para la defensa»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.
Ejemplo de grafo (pivoteo real)
Sección titulada «Ejemplo de grafo (pivoteo real)»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 sitiosResultado: de "un dominio" a "un admin con credenciales potencialmente reutilizadasy 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.
De OSINT a vector
Sección titulada «De OSINT a vector»Un grafo bien hecho alimenta directamente las siguientes fases:
- emails + formato → listas para password spraying (Password Spraying) y phishing (Campañas de phishing).
- dominios hermanos / infra compartida → más superficie que enumerar (ASN y rangos de IP, Enumeración de subdominios).
- brechas → credenciales para probar (credential stuffing) con cuidado y dentro del scope (Leer el scope & reglas).
- personas clave → pretexto para ingeniería social (Pretexting & OSINT del objetivo).
Checklist de prueba
Sección titulada «Checklist de prueba»- 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