Maltego Teeth: Reconocimiento Ofensivo en Kali
Maltego Teeth: Reconocimiento Ofensivo en Kali
Maltego Teeth es un conjunto de herramientas (específicamente un framework de recolección de datos ofensivos) diseñado para integrarse con Maltego en Kali Linux. Su objetivo principal es automatizar el reconocimiento profundo y la enumeración de objetivos de forma masiva.
Aquí tienes una guía rápida en español para entender qué es y cómo se maneja.
¿Qué es Maltego Teeth?
A diferencia de las transformaciones estándar de Maltego que consultan APIs públicas (como Shodan o Whois), Teeth utiliza herramientas locales instaladas en tu Kali para inyectar datos directamente en el gráfico de Maltego.
Automatización: Ejecuta scripts de Nmap, SQLMap, Metasploit y otros de forma encadenada.
Reconocimiento Ofensivo: No solo busca info; analiza vulnerabilidades y configuraciones.
Fuerza Bruta: Incluye capacidades para enumeración de subdominios y directorios.
Instalación en Kali Linux
Aunque Maltego viene preinstalado en Kali, el paquete de "Teeth" suele requerir una configuración manual o mediante los repositorios de herramientas de Paterva.
1. Clonar el repositorio (si no está presente)
Normalmente se encuentra en el repositorio oficial de herramientas de Maltego o mediante:
sudo apt update && sudo apt install maltego-teeth
2. Configuración de dependencias
Teeth es un "pegamento" que une otras herramientas. Asegúrate de tener instaladas las básicas:
Nmap (Escaneo de puertos)
SQLMap (Inyección SQL)
Nikto (Escaneo web)
Cómo usarlo en Maltego
Para que Teeth aparezca en tu interfaz de Maltego, debes importar las Local Transforms:
Abrir Maltego: Ve al menú de aplicaciones en Kali y lanza Maltego.
Gestionar Transformaciones: Ve a la pestaña
Transforms->Transform Hub.Local Transforms: Busca la opción de importar transformaciones locales. Deberás apuntar al directorio donde se instaló Teeth (usualmente
/opt/Teetho/usr/share/maltego-teeth).Ejecución: Haz clic derecho sobre una entidad (por ejemplo, un Dominio o una IP), busca la sección de Teeth y selecciona el tipo de escaneo que deseas realizar.
Advertencia de Uso
Importante: Teeth es una herramienta agresiva. A diferencia del OSINT pasivo, Teeth interactúa directamente con el objetivo (escaneo de puertos, peticiones web). Úsala solo en entornos controlados o bajo auditorías autorizadas.
Vamos a configurar un flujo de trabajo para enumerar subdominios usando Teeth. Este es uno de los usos más potentes porque combina la velocidad de las herramientas de línea de comandos con la visualización de Maltego.
Para este ejemplo, supondremos que estás auditando un dominio (ejemplo: objetivo.com).
Paso 1: Preparar la Entidad en Maltego
Abre un nuevo gráfico (New Graph).
Desde la Entity Palette, arrastra la entidad Domain al centro del gráfico.
Haz doble clic en el nombre y cámbialo a tu objetivo (ej.
mi-auditoria.es).
Paso 2: Ejecutar la Transformación de Teeth
Haz clic derecho sobre la entidad del dominio.
Busca en el menú radial o en la lista la sección Teeth.
Selecciona la transformación:
To Subdomains [Teeth].Nota: Teeth utilizará internamente diccionarios de fuerza bruta y consultas DNS para hallar registros ocultos.
Paso 3: Análisis de Resultados (El "Efecto Cascada")
Una vez que Teeth encuentre los subdominios, puedes llevar el análisis más allá:
Identificación de IPs: Selecciona todos los subdominios encontrados, haz clic derecho y usa la transformación estándar
To IP Address.Escaneo de Puertos con Teeth: Con las IPs seleccionadas, busca en Teeth la opción
To Ports [Nmap]. Esto ejecutará Nmap desde tu Kali y "dibujará" los puertos abiertos directamente conectados a cada IP en el gráfico.
Tabla de comandos útiles en la terminal
Si necesitas verificar que los scripts de Teeth están listos en tu sistema, puedes probar estos comandos en tu terminal de Kali:
| Comando | Acción |
teeth --help | Muestra las opciones de configuración del framework. |
cd /usr/share/maltego-teeth/ | Directorio típico donde residen los scripts de transformación. |
ls -l static/ | Aquí suelen estar los diccionarios que usa Teeth para la fuerza bruta. |
Un pequeño consejo de "pro"
Si notas que la transformación falla o no devuelve nada, suele ser un problema de permisos. Maltego a veces necesita ejecutarse con privilegios elevados para que los scripts locales de Teeth puedan llamar a Nmap o realizar peticiones de red.
Personalizar los diccionarios es lo que separa a un script básico de una auditoría profesional. Teeth utiliza listas de palabras (wordlists) para intentar "adivinar" subdominios comunes como dev, vpn, staging o nomina.
Aquí tienes cómo meterle tu propio "cerebro" a la herramienta:
1. Localiza el directorio de datos de Teeth
En Kali Linux, Teeth suele guardar sus recursos en una ruta específica. Abre tu terminal y ve a:
cd /usr/share/maltego-teeth/static/
(Si no está ahí, prueba en /opt/maltego-teeth/static/).
Dentro de esa carpeta verás archivos .txt. El que nos interesa suele llamarse subdomains.txt o similar.
2. Crea o importa tu diccionario
Tienes dos opciones para mejorar los resultados:
Opción A (Rápida): Añade palabras manualmente al archivo existente:
sudo nano subdomains.txt(añade términos comopruebas,secreto,api-v2).Opción B (Profesional): Usa un diccionario masivo como los de SecLists. Si tienes SecLists instalado en Kali, puedes copiar uno de sus mejores diccionarios sobre el de Teeth:
Bashsudo cp /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt /usr/share/maltego-teeth/static/subdomains.txt
3. Configura la "fuerza" del escaneo
Teeth permite ajustar qué tan profundo quieres llegar. En el archivo de configuración (teeth.conf o dentro del script de la transformación):
Busca la variable
THREADS.Si tu conexión es estable, puedes subirla a 20 o 50 para que el escaneo en Maltego sea mucho más rápido.
Importante: Asegúrate de que el archivo tenga permisos de lectura:
sudo chmod 644 subdomains.txt.
4. Ejecuta en Maltego con el nuevo motor
Ahora, vuelve a Maltego:
Haz clic derecho en tu Domain.
Ejecuta
To Subdomains [Teeth].Verás que ahora el gráfico se llena de muchos más nodos que antes, ya que está consultando tu lista personalizada de 110,000 nombres.
Tip de experto: Si encuentras un subdominio que parece una web de administración (ej:
admin.objetivo.com), el siguiente paso lógico en Teeth es lanzar la transformaciónTo Website [Nikto]para buscar vulnerabilidades web conocidas.
Cuando empiezas a usar diccionarios grandes (como el de 110,000 palabras que mencionamos), el gráfico de Maltego puede pasar de ser una herramienta útil a una "telaraña" inmanejable de nodos.
Aquí tienes las técnicas clave para mantener el orden y encontrar la "aguja en el pajar":
1. El "View Let" (Colecciones de Nodos)
Maltego tiene una función llamada Entity Collections. Si Teeth encuentra 200 subdominios, en lugar de mostrar 200 iconos esparcidos, los agrupará en una sola caja visual.
Ve a la pestaña View en la parte superior.
Busca el grupo Collections.
Ajusta el control deslizante. Si lo mueves a la izquierda, Maltego agrupará nodos similares automáticamente. Esto limpia el gráfico al instante.
2. Filtros de Selección por Tipo
Si solo te interesan los subdominios que tienen una IP específica o que pertenecen a un rango, usa la Selection Engine:
Presiona
Ctrl + F(o ve a la pestaña Investigate -> Select by Property).Puedes filtrar, por ejemplo, para que solo se seleccionen los nodos que contengan la palabra "dev" o "test".
Una vez seleccionados, puedes presionar
Alt + Enterpara cambiarles el color a rojo, destacándolos del resto.
3. Uso del "Detail View" y "Property View"
No intentes leer todo en el gráfico principal.
Usa el panel lateral Property View. Cuando haces clic en un subdominio encontrado por Teeth, este panel te mostrará detalles adicionales que el script haya recolectado (como banners de servidor o versiones de software) sin llenar de texto el dibujo.
4. Layouts (Diseños de gráfico)
Si el gráfico se ve desordenado tras correr Teeth, cambia el diseño en la pestaña View:
Block Layout: Ideal para ver grupos de subdominios por servidor.
Hierarchical Layout: Perfecto para ver la cadena de mando (Dominio -> Subdominio -> IP -> Puerto).
Tu próximo paso lógico
Ahora que tienes los datos filtrados y organizados, lo ideal sería analizar qué hay dentro de esos subdominios.
Para esto, utilizaremos la capacidad de huella digital (fingerprinting) de Teeth. Una vez que tienes los subdominios en tu gráfico, el objetivo es saber qué "muebles" hay dentro de esa casa digital sin tener que entrar manualmente a cada uno.
Aquí tienes cómo hacerlo de forma eficiente:
1. Identificación de Tecnologías con Teeth
Dentro del conjunto de herramientas de Teeth, existen transformaciones que invocan scripts de WhatWeb o Nikto. Estos son los pasos:
Selección múltiple: En tu gráfico, selecciona todos los subdominios que encontraste en el paso anterior (puedes arrastrar el ratón o usar
Ctrl + A).Transformación "To Website": Haz clic derecho y busca
Teeth>To Website [WhatWeb].¿Qué hace esto? WhatWeb analiza las cabeceras HTTP, las cookies y el código fuente para decirte: "Esto es un WordPress 6.4", "Usa PHP", "Corre sobre Nginx", o "Tiene un certificado de Let's Encrypt".
Resultados en el gráfico: Maltego creará entidades de tipo "Service" o cambiará las propiedades del nodo para mostrarte los iconos de las tecnologías detectadas.
2. Escaneo de Vulnerabilidades Específicas
Si Teeth detecta que un subdominio usa una tecnología vieja (por ejemplo, un servidor Apache 2.2), puedes profundizar:
Búsqueda de directorios: Usa la transformación
To Directories [Teeth/Brute]. Esto buscará carpetas como/admin,/config, o/.git.Análisis de vulnerabilidades: Si el objetivo es una web, puedes lanzar
To Vulnerabilities [Nikto].Nota: Esto generará muchos nodos de tipo "Phrase" o "Vulnerability" con alertas de seguridad (como falta de cabeceras XSS o archivos expuestos).
3. Visualización de la "Superficie de Ataque"
Para que no te pierdas entre tanta información, organiza los resultados por tecnología:
Usa el panel "Entity List" (suele estar en la parte inferior o lateral).
Agrupa por la columna Type.
Así verás rápidamente: "Tengo 5 servidores IIS y 2 Apache". Los Apache suelen ser más interesantes para buscar configuraciones erróneas en auditorías sobre Kali.
Resumen de la cadena de ataque en Maltego:
| Entidad Inicial | Transformación Teeth | Resultado |
| Domain | To Subdomains | Lista de subdominios. |
| Subdomain | To Website (WhatWeb) | CMS, Lenguajes, Servidores. |
| Service/Web | To Vulnerabilities | Fallos de seguridad detectados. |
Un último truco:
Si encuentras muchas tecnologías distintas, puedes usar la barra de búsqueda de Maltego (arriba a la derecha) para buscar "WordPress". Maltego iluminará solo esos nodos, permitiéndote centrar tu ataque en un solo tipo de tecnología a la vez.
Generar un reporte es el toque final de cualquier auditoría. En Maltego (usando los datos que has extraído con Teeth), tienes una función nativa que organiza toda la maraña de nodos en un documento estructurado y profesional.
Aquí te explico cómo hacerlo paso a paso:
1. Limpieza Previa (El "Look" del Reporte)
Antes de darle al botón de generar, asegúrate de que el gráfico se vea bien, porque Maltego incluirá capturas de pantalla del mismo:
Ajusta el Zoom: Haz que el gráfico ocupe toda la pantalla.
Layout Final: Ve a la pestaña View y selecciona Hierarchical Layout. Esto muestra de forma clara la jerarquía:
Dominio > Subdominio > IP > Tecnologías.Anotaciones: Si encontraste algo crítico (ej. un subdominio con una vulnerabilidad grave detectada por Nikto), haz clic derecho en ese nodo, selecciona Edit Annotations y añade una nota. Maltego incluirá estas notas en una sección especial del reporte.
2. Generar el Reporte (Exporting)
Maltego permite exportar en varios formatos, pero el PDF es el estándar para informes.
Ve a la esquina superior izquierda, haz clic en el icono de la "M" (Maltego Menu).
Selecciona Export -> Generate Report.
Se abrirá una ventana con opciones de personalización:
Title: Ponle algo como "Auditoría de Reconocimiento - [Nombre del Cliente]".
Description: Explica brevemente que se utilizó el framework Teeth para enumeración de activos.
Sections: Asegúrate de marcar "Entity List", "Graph Image" y "Detailed Entity Information".
3. ¿Qué verás en el PDF final?
El documento que genera Maltego es bastante completo:
Resumen Ejecutivo: Una imagen general de tu gráfico.
Top Entities: Cuáles son los nodos con más conexiones (esto suele indicar los servidores con más servicios expuestos).
Detalle por Entidad: Aquí aparecerán todos los hallazgos de Teeth: versiones de Apache, subdominios descubiertos, y las vulnerabilidades que Nikto o WhatWeb hayan inyectado en el gráfico.
4. Un truco de Post-Procesamiento (CSV)
Si necesitas los datos para otra herramienta o para un Excel, también puedes exportar la lista de entidades:
Import/Export->Export to Table.Esto te dará un archivo
.csvcon todos los subdominios e IPs limpios, ideal para pasárselos a otra herramienta de Kali como Nmap de forma masiva si prefieres trabajar fuera de Maltego.