Por Qué TheHarvester y Recon-ng Son Complementarios
En reconocimiento OSINT, necesitas dos cosas: datos crudos y estructura para trabajar con ellos. TheHarvester excava — extrae emails, subdominios, IPs y URLs de decenas de fuentes públicas. Recon-ng organiza — te da un framework modular (con interfaz tipo Metasploit) para automatizar la recopilación, almacenar resultados en base de datos y generar reportes.
Usar solo uno es como tener un martillo sin taller, o un taller sin martillo. Juntos cubren las primeras horas críticas de cualquier pentest o red team engagement.
Todos los ejemplos de este artículo asumen un entorno de laboratorio autorizado (CTF, HackTheBox o tu propio lab). La recopilación de información contra objetivos reales requiere autorización explícita por escrito.
TheHarvester: El Excavador de Dominios
Qué Hace TheHarvester
TheHarvester es una herramienta de reconocimiento pasivo que recopila información pública sobre un dominio objetivo: direcciones de correo electrónico, subdominios, nombres de host, direcciones IP y URLs. Consulta más de 40 fuentes públicas — motores de búsqueda, Certificate Transparency logs, bases de datos DNS, servicios de threat intelligence — sin interactuar directamente con el objetivo.
Esto significa que el objetivo nunca ve tráfico directo de tu herramienta. Todo se obtiene de fuentes de terceros, lo que lo hace ideal para las fases iniciales de un engagement donde la detección debe ser mínima.
Instalación
TheHarvester requiere Python 3.12 o superior y usa uv como gestor de dependencias:
# Instalar uv (si no lo tienes)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Clonar el repositorio
git clone https://github.com/laramies/theHarvester
cd theHarvester
# Instalar dependencias y crear entorno virtual
uv sync
# Ejecutar theHarvester
uv run theHarvester
En Kali Linux, theHarvester viene preinstalado. Puedes ejecutarlo directamente:
theHarvester
Sintaxis y Flags Principales
theHarvester -d <dominio> -b <fuente(s)> [opciones]
| Flag | Descripción | Ejemplo |
|---|---|---|
-d |
Dominio objetivo | -d empresa.com |
-b |
Fuente(s) de datos | -b google,bing,crtsh |
-l |
Límite de resultados por fuente | -l 200 |
-f |
Guardar resultados en archivo | -f resultados.html |
-s |
Usar Shodan para enrichir hosts descubiertos | -s |
-c |
Realizar DNS brute force | -c |
-t |
Realizar DNS TLD expansion | -t |
-e |
Servidores DNS especificados | -e 8.8.8.8,1.1.1.1 |
--screenshot |
Tomar capturas de subdominios descubiertos | --screenshot |
Fuentes de Datos Disponibles
TheHarvester agrupa sus fuentes en dos categorías:
Fuentes passivas (sin interacción con el objetivo):
| Fuente | Tipo de datos | API key requerida |
|---|---|---|
baidu |
Subdominios, URLs | No |
bing |
Subdominios, emails | No |
brave |
Subdominios, URLs | Sí (plan gratuito disponible) |
crtsh |
Certificados TLS (Certificate Transparency) | No |
censys |
Certificados, subdominios | Sí (500 créditos $100) |
dnsdumpster |
Dominios relacionados, DNS | Sí (50 gratuitos/día) |
duckduckgo |
Subdominios, URLs | No |
github-code |
Código fuente expuesto | No |
hackertarget |
Subdominios DNS | No |
otx |
AlienVault OTX — threat intelligence | No |
rapiddns |
DNS historical | No |
securityTrails |
DNS histórico, subdominios | Sí (50 gratuitos/mes) |
shodan |
Puertos, banners de hosts descubiertos | Sí (plan pago) |
subdomaincenter |
Subdominios | No |
subdomainfinderc99 |
Subdominios | No |
threatminer |
Threat intelligence, subdominios | No |
urlscan |
Análisis de URLs | No |
virustotal |
Subdominios, URLs, emails | Sí (500 gratuitos/día) |
yahoo |
Subdominios, URLs | No |
Fuentes activas (interactúan directamente con el objetivo):
| Fuente | Tipo de datos | Nota |
|---|---|---|
| DNS brute force | Subdominios via diccionario | --screenshot |
| Screenshots | Capturas de subdominios | Requiere subdominios previos |
Ejemplos Prácticos
# Búsqueda básica: emails y subdominios de un dominio
theHarvester -d empresa.com -b google,bing,crtsh
# Búsqueda amplia con límite de 500 resultados por fuente
theHarvester -d empresa.com -b all -l 500
# Exportar resultados a HTML
theHarvester -d empresa.com -b bing,crtsh,otx -f reporte_empresa.html
# Con enriquecimiento Shodan (requiere API key)
theHarvester -d empresa.com -b bing,crtsh -s
# DNS brute force activo
theHarvester -d empresa.com -b bing -c
# Usar DNS personalizado
theHarvester -d empresa.com -b google -e 8.8.8.8,1.1.1.1
# Múltiples fuentes gratuitas (sin API key)
theHarvester -d empresa.com -b baidu,bing,brave,crtsh,duckduckgo,hackertarget,otx,rapiddns,subdomaincenter,threatminer,urlscan,yahoo -l 200
Interpretando los Resultados
TheHarvester clasifica los resultados en categorías:
=============================================
theHarvester: Emails, Subdomains, Hosts
=============================================
Emails encontrados:
admin@empresa.com
info@empresa.com
j.garcia@empresa.com
m.lopez@empresa.com
Subdominios encontrados:
mail.empresa.com
vpn.empresa.com
webmail.empresa.com
dev.empresa.com
api.empresa.com
Hosts encontrados (IPs):
mail.empresa.com → 203.0.113.10
vpn.empresa.com → 203.0.113.20
api.empresa.com → 203.0.113.30
Qué hacer con estos datos:
- Emails: Identifica patrones de naming (
j.garcia@,admin@). Usa para phishing en fases posteriores o para buscar filtraciones en HaveIBeenPwned. - Subdominios: Cada subdominio es un punto de entrada potencial.
dev.empresa.compuede tener menor seguridad quewww.empresa.com. - IPs: Pásalas a Shodan o Nmap para enumeración de servicios y puertos.
Recon-ng: El Framework Modular de Reconocimiento
Qué Hace Recon-ng
Recon-ng es un framework de reconocimiento con interfaz similar a Metasploit. Donde theHarvester te da una lista plana de resultados, Recon-ng te da un entorno de trabajo estructurado: workspaces persistentes, módulos instalables desde un marketplace, base de datos integrada para almacenar y consultar resultados, y exportación a múltiples formatos.
Recon-ng no intenta ser theHarvester ni Maltego. Es el cerebro organizador del reconocimiento: recopila, almacena, estructura y exporta datos de forma automatizada.
Instalación
# Clonar el repositorio
git clone https://github.com/lanmaster53/recon-ng
cd recon-ng
# Crear entorno virtual
python3 -m venv .venv
source .venv/bin/activate
# Instalar dependencias
pip install -r REQUIREMENTS
# Ejecutar Recon-ng
./recon-ng
En Kali Linux:
recon-ng
La Interfaz de Recon-ng
Al ejecutar Recon-ng, entornos en una shell interactiva:
recon-ng v5.1.1
[recon-ng][default] >
Los comandos principales son:
| Comando | Descripción |
|---|---|
workspaces create <nombre> |
Crear un nuevo workspace |
workspaces load <nombre> |
Cargar un workspace existente |
workspaces list |
Listar todos los workspaces |
marketplace search <término> |
Buscar módulos en el marketplace |
marketplace install <módulo> |
Instalar un módulo |
modules load <módulo> |
Cargar un módulo |
options set <opción> <valor> |
Configurar opciones del módulo |
modules run |
Ejecutar el módulo cargado |
db insert <tabla> |
Insertar registros en la BD |
db query <SQL> |
Ejecutar SQL contra la BD |
show <tabla> |
Mostrar contenido de una tabla |
shell |
Ejecutar comandos del sistema |
exit |
Salir |
Workspaces: Organización por Objetivo
Cada objetivo de pentesting debe tener su propio workspace. Los workspaces aíslan los datos — nunca mezclas resultados de distintos objetivos.
# Crear workspace para un objetivo
[recon-ng][default] > workspaces create empresa_objetivo
# El prompt cambia para reflejar el workspace activo
[recon-ng][empresa_objetivo] >
# Listar workspaces
[recon-ng][empresa_objetivo] > workspaces list
Workspace Module Repository
----------- -----------------
default *
empresa_objetivo
# Cambiar a otro workspace
[recon-ng][empresa_objetivo] > workspaces load default
Marketplace: Módulos de Reconocimiento
El marketplace de Recon-ng contiene módulos organizados por categoría. Cada módulo realiza una tarea específica de reconocimiento y almacena los resultados automáticamente en la base de datos del workspace.
# Buscar módulos relacionados con dominios
[recon-ng][empresa_objetivo] > marketplace search domains-hosts
Path Version Status
---- ------- ------
recon/domains-hosts/baidu_site 1.1 installed
recon/domains-hosts/certificate_transparency 1.1 installed
recon/domains-hosts/google_site_web 1.2 installed
recon/domains-hosts/hackertarget 1.0 installed
recon/domains-hosts/rapiddns 1.0 installed
recon/domains-hosts/subdomaincenter 1.0 installed
recon/domains-hosts/threatminer 1.1 installed
...
# Instalar todos los módulos (recomendado para empezar)
[recon-ng][empresa_objetivo] > marketplace install all
# Instalar un módulo específico
[recon-ng][empresa_objetivo] > marketplace install recon/domains-hosts/google_site_web
Flujo de Trabajo Completo con Recon-ng
# 1. Crear workspace
[recon-ng][default] > workspaces create pentest_demo
# 2. Instalar módulos necesarios
[recon-ng][pentest_demo] > marketplace install all
# 3. Cargar módulo de Google
[recon-ng][pentest_demo] > modules load recon/domains-hosts/google_site_web
# 4. Configurar el dominio objetivo
[recon-ng][pentest_demo][google_site_web] > options set SOURCE empresa.com
# 5. Verificar configuración
[recon-ng][pentest_demo][google_site_web] > options list
Name Current Value Required Description
------ ------------- -------- -----------
SOURCE empresa.com yes Target domain
# 6. Ejecutar el módulo
[recon-ng][pentest_demo][google_site_web] > modules run
[*]empresa.com
[*] 15 hosts found.
# 7. Cargar otro módulo
[recon-ng][pentest_demo] > modules load recon/domains-hosts/certificate_transparency
[recon-ng][pentest_demo][certificate_transparency] > options set SOURCE empresa.com
[recon-ng][pentest_demo][certificate_transparency] > modules run
[*]empresa.com
[*] 47 hosts found.
# 8. Ver todos los hosts descubiertos
[recon-ng][pentest_demo] > show hosts
rowid ip_address host module
----- ---------- ---- ------
1 203.0.113.10 mail.empresa.com google_site_web
2 203.0.113.20 vpn.empresa.com google_site_web
3 203.0.113.30 api.empresa.com certificate_transparency
4 203.0.113.40 dev.empresa.com certificate_transparency
...
Módulos Más Útiles para Pentesting
Enumeración de subdominios:
| Módulo | Fuente | API Key |
|---|---|---|
recon/domains-hosts/baidu_site |
Baidu | No |
recon/domains-hosts/certificate_transparency |
CT logs | No |
recon/domains-hosts/google_site_web |
Google dorking | No |
recon/domains-hosts/hackertarget |
HackerTarget DNS | No |
recon/domains-hosts/rapiddns |
RapidDNS | No |
recon/domains-hosts/subdomaincenter |
SubdomainCenter | No |
recon/domains-hosts/threatminer |
ThreatMiner | No |
Recolección de emails:
| Módulo | Fuente | API Key |
|---|---|---|
recon/contacts-contacts/metacrawler |
MetaCrawler | No |
recon/contacts-emails/jesseduffield |
Name2Email | No |
Enriquecimiento de datos:
| Módulo | Función | API Key |
|---|---|---|
recon/hosts-hosts/resolve |
Resolución DNS de IPs | No |
recon/hosts-hosts/shodan_hostname |
Shodan: puertos y banners | Sí |
Almacenamiento y Consulta de Datos
Recon-ng almacena todo en una base de datos SQLite por workspace. Puedes consultar los datos con SQL:
# Ver todos los hosts descubiertos
[recon-ng][pentest_demo] > show hosts
# Consulta SQL directa
[recon-ng][pentest_demo] > db query SELECT ip_address, host FROM hosts WHERE host LIKE '%api%'
# Contar hosts por módulo
[recon-ng][pentest_demo] > db query SELECT module, COUNT(*) as total FROM hosts GROUP BY module
# Exportar a CSV
[recon-ng][pentest_demo] > db query SELECT * FROM hosts INTO OUTFILE '/tmp/hosts.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Exportación de Resultados
Recon-ng permite exportar datos en múltiples formatos:
# Exportar hosts a XML
[recon-ng][pentest_demo] > db query SELECT * FROM hosts INTO OUTFILE '/tmp/hosts.xml'
# Exportar a JSON (vía shell)
[recon-ng][pentest_demo] > shell
$ recon-ng -w pentest_demo -r /tmp/export.py
Flujo de Trabajo Integrado: TheHarvester → Recon-ng → Siguiente Fase
La verdadera potencia de estas herramientas sale a la luz cuando las combinas en un flujo de trabajo estructurado:
Fase 1: Exploración Rápida con TheHarvester
# Búsqueda rápida con fuentes gratuitas
theHarvester -d empresa.com -b crtsh,bing,duckduckgo,hackertarget,rapiddns -l 200 -f theharvester_empresa.html
# Con DNS brute force
theHarvester -d empresa.com -b bing,crtsh -c -f theharvester_bruteforce.html
Fase 2: Estructuración con Recon-ng
# Crear workspace basado en los resultados
[recon-ng][default] > workspaces create empresa_pentest
# Importar hosts descubiertos por theHarvester a la BD de Recon-ng
[recon-ng][empresa_pentest] > db insert hosts
ip_address: 203.0.113.10
host: mail.empresa.com
module: theharvester
[recon-ng][empresa_pentest] > db insert hosts
ip_address: 203.0.113.20
host: vpn.empresa.com
module: theharvester
# Ejecutar módulos adicionales de Recon-ng para ampliar
[recon-ng][empresa_pentest] > modules load recon/domains-hosts/certificate_transparency
[recon-ng][empresa_pentest][certificate_transparency] > options set SOURCE empresa.com
[recon-ng][empresa_pentest][certificate_transparency] > modules run
# Enriquecer con Shodan
[recon-ng][empresa_pentest] > modules load recon/hosts-hosts/shodan_hostname
[recon-ng][empresa_pentest][shodan_hostname] > modules run
Fase 3: Análisis y Siguiente Fase
Con los datos consolidados en Recon-ng, la siguiente fase depende del objetivo:
| Si encontraste... | Siguiente herramienta |
|---|---|
| Subdominios con puertos abiertos | Shodan/Censys para enumeración de servicios |
| Emails de empleados | Maltego para análisis de relaciones y grafos |
| Servicios web expuestos | Burp Suite para testing de aplicaciones web |
| Infraestructura DNS | Nmap para escaneo de red interno |
| Credenciales filtradas | OSINT de contraseñas y filtraciones |
TheHarvester vs Recon-ng: Cuándo Usar Cada Uno
| Característica | TheHarvester | Recon-ng |
|---|---|---|
| Enfoque | Recopilación rápida de datos | Framework modular de reconocimiento |
| Interfaz | CLI con flags | Shell interactiva (tipo Metasploit) |
| Fuentes | 40+ motores de búsqueda, CT logs, DNS | Módulos instalables desde marketplace |
| Almacenamiento | Archivos (HTML, XML, JSON, CSV) | Base de datos SQLite por workspace |
| Automatización | Un comando, múltiples fuentes | Workflows encadenados de módulos |
| API keys | Algunas fuentes requeridas | Algunos módulos requeridos |
| Ideal para | Exploración inicial rápida | Investigación profunda y automatizada |
| Curva de aprendizaje | Baja | Media |
| Uso típico | Primeros 15 minutos de un pentest | Horas 1-4 de reconocimiento estructurado |
La recomendación: Usa theHarvester primero para obtener una visión rápida del dominio. Luego importa los resultados a Recon-ng para la fase de reconocimiento profunda. No compitas — complementa.
Errores Comunes
1. Usar solo theHarvester y dar por terminado el reconocimiento
TheHarvester te da la superficie. Recon-ng te da la profundidad. Un pentest serio requiere ambas fases.
2. No configurar API keys
Muchas fuentes de theHarvester y módulos de Recon-ng son significativamente más potentes con API keys. Al menos configura:
- VirusTotal (500 búsquedas/día gratis)
- Shodan (requiere plan pago, pero enriquece enormemente)
- SecurityTrails (50 búsquedas/mes gratis)
3. Mezclar objetivos en un mismo workspace de Recon-ng
Cada pentest = un workspace. Los datos mezclados entre objetivos generan confusión y potencialmente violan acuerdos de confidencialidad.
4. No exportar antes de cambiar de workspace
Los workspaces de Recon-ng son persistentes, pero si necesitas cambiar entre objetivos frecuentemente, exporta los resultados a archivos antes de cargar otro workspace.
5. Olvidar que theHarvester es pasivo
TheHarvester no toca el objetivo — todo viene de fuentes de terceros. Pero Recon-ng módulos como shodan_hostname sí hacen consultas externas. Entiende qué hace cada módulo antes de ejecutarlo.
Conclusión
TheHarvester y Recon-ng son las dos caras de la misma moneda en reconocimiento OSINT. TheHarvester es la herramienta de velocidad: un comando, decenas de fuentes, resultados en segundos. Recon-ng es la herramienta de profundidad: workspaces persistentes, módulos encadenados, base de datos integrada y exportación profesional.
En un pentest real, el flujo típico es: theHarvester para los primeros 15 minutos, Recon-ng para las siguientes 2-4 horas, y luego Shodan o Maltego para la fase de análisis. Cada herramienta alimenta a la siguiente, y el reconocimiento completo no termina hasta que tienes un mapa completo de la superficie de ataque del objetivo.
No necesitas todas las herramientas OSINT del mundo. Necesitas estas dos, y saber cuándo usar cada una.
Artículos Relacionados
- OSINT: Técnicas y Fuentes Abiertas — Metodología general de OSINT, categorías de fuentes y herramientas esenciales como Shodan, Maltego y Google Dorks.
- Maltego: Guía Completa de Reconocimiento OSINT — Después de recopilar datos con theHarvester y Recon-ng, Maltego los transforma en grafos visuales de relaciones entre entidades.
- Shodan y Censys: Dispositivos Expuestos — Para enriquecer los hosts descubiertos por theHarvester/Recon-ng con información de puertos, servicios y vulnerabilidades.
- Kali Linux: Las 20 Herramientas Esenciales para Pentesting — theHarvester, Recon-ng y otras herramientas fundamentales incluidas en Kali Linux.
- Introducción al Ethical Hacking — Metodologías, marco legal y la fase de reconocimiento dentro del ciclo de pentesting.