Recopilación de información
Antes de atacar nada hay que entender qué existe. Un buen reconocimiento decide gran parte del resultado de una auditoría: cuanto más sabes del objetivo, menos ruido haces y menos tiempo pierdes.
- Situar el reconocimiento dentro de una metodología y entender por qué condiciona todo lo demás.
- Distinguir reconocimiento pasivo y activo, con sus implicaciones legales y de detección.
- Construir un perfil OSINT de una organización (dominios, personas, tecnologías, fugas).
- Enumerar DNS a fondo: tipos de registro, subdominios y transferencia de zona.
- Elegir el tipo de escaneo
nmapadecuado entendiendo qué hace cada uno a nivel de paquetes. - Perfilar servicios de red (FTP, SMTP, SSH, SMB...) y extraer de ellos información accionable.
- Correlacionar hallazgos entre fuentes y documentarlos para las fases siguientes.
1. Por qué el reconocimiento lo decide casi todo
En una auditoría, el tiempo es finito y la superficie de ataque es enorme. El reconocimiento es la fase que convierte "un objetivo" en "una lista priorizada de puntos por donde entrar". Un pentester con prisa que se salta esta fase acaba lanzando exploits a ciegas contra lo primero que ve; uno metódico dedica una parte desproporcionada del encargo a entender el objetivo, y por eso encuentra el camino que los demás no ven: el subdominio olvidado, el servicio en un puerto raro, la cuenta de correo que revela el formato de nombres de usuario.
La regla mental es ampliar antes de estrechar: primero se recopila todo lo posible (aunque parezca irrelevante), y solo después se decide qué merece un ataque. Un dato inútil hoy es la pieza que encaja tres fases más adelante.
2. Pasivo frente a activo: detección y legalidad
La diferencia no es solo técnica, es también de riesgo de ser detectado y de encaje legal.
| Pasivo | Activo | |
|---|---|---|
| Interacción con el objetivo | Ninguna directa (consultas a terceros) | Envías tráfico al objetivo |
| Detectable por la víctima | No: no toca su infraestructura | Sí: aparece en logs, IDS, WAF |
| Encaje legal | Consulta de información pública; casi siempre seguro | Puede requerir autorización explícita según el alcance |
| Ejemplos | Buscadores, WHOIS, certificados, redes sociales, filtraciones | Escaneo de puertos, consultas DNS directas, peticiones web |
Un matiz importante que confunde a mucha gente: consultar el DNS público de una empresa a través de un resolver de terceros (como 8.8.8.8) es pasivo; lanzar consultas directamente contra su servidor DNS ya es activo, porque tu tráfico llega a su máquina. En un encargo real se empieza siempre por lo pasivo —no alerta al objetivo y refina lo que luego atacarás activamente— y todo lo activo se hace dentro del alcance acordado por escrito (ver el módulo 1).
3. OSINT: perfilar la organización sin tocarla
El reconocimiento pasivo moderno gira en torno a fuentes públicas (OSINT, Open-Source Intelligence). Lo que buscas y dónde:
| Objetivo | Fuente típica |
|---|---|
| Dominios y titularidad | WHOIS, registros RDAP |
| Subdominios (sin tocar el objetivo) | Transparencia de certificados (crt.sh): cada certificado TLS emitido queda en un registro público y revela nombres de host |
| Tecnologías y versiones | Wappalyzer, cabeceras, Shodan (que ya escaneó por ti) |
| Personas, correos, nombres de usuario | theHarvester, LinkedIn, notas de prensa |
| Credenciales filtradas | Volcados públicos de brechas anteriores |
| Ficheros con metadatos | Documentos publicados (PDF, DOCX) que llevan autor, rutas internas, software |
Dos ideas potentes aquí. La primera: la transparencia de certificados convierte en público, sin que tú toques nada, un mapa de subdominios que la empresa creía discreto (incluidos entornos de dev, staging, vpn). La segunda: el formato de los correos (inicial+apellido@empresa) te da directamente la convención de nombres de usuario de su directorio interno, que reutilizarás en ataques de contraseñas (módulo 12) y Active Directory (módulo 18).
4. Reconocimiento web
Un sitio web filtra información por muchos sitios, y conviene mirarlos todos de forma ordenada:
- Ficheros por convención:
robots.txt(lista rutas que la empresa no quiere indexar, y por eso mismo señala),sitemap.xml,/.well-known/security.txt. Nunca son un control de seguridad: son un índice de sitios interesantes. - Cabeceras HTTP:
Server,X-Powered-Byy cabeceras de depuración revelan tecnología y versiones. Ojo: se pueden falsear, así que son una pista de partida, no una prueba. - Contenido visible y oculto: comentarios en el código fuente, rutas en el JavaScript del cliente, páginas de equipo con nombres y correos.
- Hosts virtuales (vhosts): un mismo servidor sirve sitios distintos según la cabecera
Hostque reciba. Un sitio interno que no resuelve por DNS público sigue existiendo si adivinas su nombre de host y lo pones en esa cabecera.
$ curl -sI http://objetivo/ # solo cabeceras: Server, X-Powered-By, cookies
$ curl -s http://objetivo/robots.txt$ curl -s -H "Host: intranet.objetivo" http://objetivo/ # probar un vhost interno
El descubrimiento de contenido no enlazado (directorios y ficheros ocultos) se hace por diccionario con herramientas como gobuster o ffuf; lo trabajamos a fondo en el módulo 4.
5. DNS: el mapa de la infraestructura
El DNS traduce nombres a direcciones, pero para un atacante es sobre todo un mapa: qué máquinas existen, cómo se llaman y qué papel cumplen. Tipos de registro que importan:
| Registro | Qué revela |
|---|---|
A / AAAA | Nombre → dirección IPv4 / IPv6 |
MX | Servidores de correo (objetivos de phishing y de enumeración SMTP) |
NS | Servidores DNS autoritativos del dominio |
TXT | SPF, DKIM, verificaciones... a menudo con notas internas o pistas de proveedores |
CNAME | Alias; delata servicios de terceros (y a veces subdominios reaprovechables) |
El fallo clásico es la transferencia de zona (AXFR): el mecanismo legítimo con el que un servidor DNS secundario copia la zona de uno primario. Si el primario no restringe quién puede pedir esa copia, cualquiera obtiene la zona completa de una sola vez: todos los subdominios y registros, sin adivinar nada. Es raro en producción hoy, pero cuando aparece es un regalo.
$ dig NS dominio.tld # ¿quién es autoritativo?
$ dig axfr dominio.tld @ns1.dominio.tld # pedir la zona entera
Cuando no hay AXFR, los subdominios se descubren por otras vías: transparencia de certificados (pasivo) o fuerza de diccionario de nombres de host contra el DNS (activo).
6. Descubrimiento de servicios con nmap
nmap es la herramienta central de esta fase, pero usarla bien exige entender qué hace cada tipo de escaneo, no memorizar comandos.
| Escaneo | Cómo funciona | Cuándo |
|---|---|---|
-sS (SYN) | Envía un SYN y, si recibe SYN/ACK, sabe que el puerto está abierto pero no completa la conexión. Rápido y algo más discreto. Requiere privilegios. | Escaneo por defecto cuando eres root |
-sT (connect) | Completa la conexión TCP entera (usa la pila del SO). Más ruidoso y registrable. | Sin privilegios, o a través de un proxy |
-sU (UDP) | UDP no confirma conexión, así que es lento y ambiguo; hay que pedirlo aparte. | Para no perderte SNMP, DNS, SNMP, TFTP... |
-sV | Habla con cada puerto abierto para identificar el servicio y su versión. | Siempre, sobre los puertos ya abiertos |
-sC / --script | Lanza scripts de la NSE (enumeración, comprobaciones conocidas). | Cuando ya sabes qué servicio hay |
El error más común es fiarse del escaneo por defecto, que solo mira los 1000 puertos más habituales: un servicio en un puerto alto pasa desapercibido y da una falsa sensación de que "no hay casi nada". El flujo recomendado es en dos tiempos: primero un barrido rápido de todos los puertos, y luego -sV y scripts solo sobre los que estén abiertos (así lo lento se hace sobre pocos puertos).
$ nmap -p- --min-rate 2000 objetivo -oA barrido # los 65535 puertos, rápido
$ nmap -sV -sC -p 21,22,25 objetivo -oA detalle # versión y scripts en los abiertos
-oA guarda la salida en los tres formatos a la vez: se consulta después sin repetir el escaneo, y deja evidencia para el informe.
7. Perfilado de servicios comunes
Cada servicio abierto es una entrevista. Qué preguntar a los más frecuentes:
| Servicio | Qué buscar |
|---|---|
| FTP (21) | Acceso anónimo (anonymous), ficheros expuestos, y los ocultos (empiezan por punto). |
| SMTP (25) | El banner identifica el software; VRFY/EXPN pueden confirmar si un usuario existe, lo que valida una lista de nombres. |
| SSH (22) | Versión (para buscar CVE) y el banner previo a la autenticación, que a veces lleva avisos internos. |
| SMB (139/445) | Sesiones nulas, recursos compartidos accesibles sin credenciales (lo vemos en el módulo 4). |
| SNMP (161/UDP) | Cadenas de comunidad por defecto (public) que revelan inventario del equipo. |
$ nc objetivo 25 # hablar SMTP a mano: EHLO, VRFY usuario
$ ftp objetivo # usuario anonymous; ls -la para ver ocultos
La conexión manual con nc es una habilidad que conviene dominar: cuando nmap -sV no reconoce un servicio, hablar con él a mano suele revelar qué es (muchos servicios responden a HELP o se identifican solos).
8. Correlacionar y registrar
El valor del reconocimiento no está en cada dato aislado, sino en cómo se conectan. Un ejemplo real del propio laboratorio de este módulo: un fichero en el FTP menciona una cuenta de servicio → esa cuenta se confirma por SMTP con VRFY → y ese nombre de usuario alimenta un ataque de contraseñas más adelante. Ninguno de los tres pasos por separado es gran cosa; encadenados, son una vía de entrada.
Por eso hay que documentar sobre la marcha: qué encontraste, en qué servicio, con qué comando. Esa nota no solo sostiene el informe final (módulo 20): es tu memoria de trabajo cuando, tres fases después, necesites recordar dónde viste aquel nombre. Anota máquinas, puertos, versiones, nombres de usuario, rutas y cualquier credencial, con la evidencia de cómo la obtuviste.
- OSINT Framework y la guía de OSINT de Ghost Academy (ver "Herramientas relacionadas" más abajo).
- crt.sh y la búsqueda por transparencia de certificados para enumerar subdominios sin tocar el objetivo.
- El libro de referencia de nmap (documentación oficial) para entender los estados de puerto (open, closed, filtered) y las técnicas de temporización.
Guías y laboratorios ya publicados en Ghost Academy sobre las herramientas de este módulo:
Google Dorking · Shodan · theHarvester · Recon-ng · SpiderFoot · Nmap: guía completa
Descomprime el ZIP, lee el LEEME.md y despliega el laboratorio. Reconoce la empresa ficticia nebula.lab. Hay 8 flags con formato GO{...}. Verifica cada una en http://localhost:8080/verificador.
Aplica esta unidad. Recuerda: no todos los servicios están en su puerto estándar.
¿Atascado o ya terminado? La solución paso a paso revela todas las flags: úsala solo cuando lo hayas intentado.
Autoevaluación
- ¿Por qué consultar el DNS de una empresa por
8.8.8.8es pasivo y hacerlo contra su propio servidor DNS es activo? - ¿Cómo permite la transparencia de certificados enumerar subdominios sin enviar un solo paquete al objetivo?
- ¿Por qué el formato de los correos de una empresa es un hallazgo valioso para fases posteriores?
- Explica la diferencia entre un escaneo
-sSy uno-sTa nivel de conexión TCP. - ¿Por qué hay que pedir el escaneo UDP (
-sU) aparte y qué servicios te perderías si no lo haces? - ¿Qué es una transferencia de zona y por qué es un fallo de configuración tan valioso?
- Da un ejemplo de cómo tres hallazgos inofensivos por separado se encadenan en una vía de entrada.