🛡️ Unidad 1: Fundamentos y Reconocimiento Agéntico

🎯 Objetivos de Aprendizaje
- Identificar las fases del pentesting y su importancia en una evaluación de seguridad.
- Ejecutar técnicas de reconocimiento pasivo y activo utilizando herramientas automatizadas.
- Analizar los resultados de escaneo para identificar vulnerabilidades y vectores de ataque.
- Configurar y optimizar herramientas de reconocimiento como Nmap, Recon-ng y SpiderFoot.
- Evaluar la superficie de ataque de un objetivo mediante OSINT y enumeración.
📚 Contenido Teórico
1.1 Metodología de Pentesting 🔍
El pentesting (penetration testing) es una evaluación de seguridad autorizada que simula ataques reales contra sistemas, aplicaciones o redes para identificar vulnerabilidades explotables. A diferencia de los escaneos automatizados de vulnerabilidades, el pentesting implica explotación manual, creatividad y pensamiento lateral.
📋 Fases del Pentesting
El estándar más aceptado define 5 fases principales:
Reconocimiento (Information Gathering) 🔎: Recolección de información sobre el objetivo. Puede ser pasiva (sin interacción directa) o activa (con interacción directa).
Escaneo (Enumeration) 📡: Identificación de puertos abiertos, servicios instalados y versiones. Determinación de vulnerabilidades potenciales.
Explotación (Exploitation) 💥: Aprovechamiento de vulnerabilidades encontradas para obtener acceso al sistema.
Post-Explotación (Post-Exploitation) 🎯: Mantenimiento del acceso, pivoting a otros sistemas, escalamiento de privilegios, exfiltración de datos.
Reporte (Reporting) 📝: Documentación técnica y ejecutiva de hallazgos, recomendaciones de remediación.
📊 Marcos de Trabajo
OSSTMM (Open Source Security Testing Methodology Manual) 📖
Desarrollado por ISECOM, proporciona una metodología científica para pruebas de seguridad. Se centra en: - Análisis de seguridad de canales (redes, comunicaciones, etc.) - Medición de seguridad en términos de pérdida de confidencialidad, integridad, disponibilidad y privacidad - Ranking de seguridad (Carnellie Index)
PTES (Penetration Testing Execution Standard) ⚙️
Más práctico y orientado a la industria, define: - Pre-engagement Interactions (alcance, reglas de compromiso) - Intelligence Gathering (reconocimiento) - Threat Modeling (modelado de amenazas) - Vulnerability Analysis (análisis de vulnerabilidades) - Exploitation (explotación) - Reporting (reporte)
Comparativa de Marcos 📈
| Aspecto | OSSTMM | PTES | OWASP Testing Guide |
|---|---|---|---|
| Enfoque | Científico/medible | Práctico/industrial | Aplicaciones web |
| Complejidad | Alta | Media | Media |
| Aplicación | Auditorías profundas | Pentests generales | Web apps |
| Métricas | Carnellie Index | Directo | CVSS |
💡 Nota del instructor: En este curso utilizaremos PTES como referencia principal por su aplicabilidad directa, complementado con OSSTMM para métricas y OWASP para aplicaciones web.
1.2 Reconocimiento Agénticor 🤖
El reconocimiento (reconnaissance) es la fase más crítica del pentesting. Un reconocimiento exhaustivo puede revelar el 70% de la información necesaria para un ataque exitoso. El reconocimiento agéntico se refiere al uso de herramientas automatizadas que actúan como “agentes” de recolección de información.
OSINT (Open Source Intelligence) 🌐
OSINT es la recolección de información de fuentes públicamente disponibles:
- Motores de búsqueda: Google, Bing, DuckDuckGo 🔍
- Registros DNS: WHOIS, DNS enumeration 📬
- Redes sociales: LinkedIn, Twitter, Facebook 📱
- Shodan: Dispositivos IoT y servidores 🖥️
- Censys: Certificados y fingerprints 🔐
Google Dorks (Búsquedas Avanzadas) 🕵️
site:example.com inurl:admin # Páginas de admin
site:example.com filetype:pdf # Documentos PDF
site:example.com "password" # Exposed passwords
site:example.com ext:log # Archivos de log
site:example.com intext:email # Emails expuestos
Shodan Queries 🔎
product:apache example.com # Servidores Apache
port:22 city:Madrid # SSH en Madrid
vuln:CVE-2024-1234 # Vulnerables a CVE
🕸️ Scraping y Recolección de Datos
El scraping automatizado permite extraer información de sitios web:
- theHarvester 📧: Recopila emails, subdominios, IPs de fuentes públicas
- Sherlock 🔎: Búsqueda de usernames en redes sociales
- Maltego CE 🕸️: Análisis visual de relaciones entre entidades
Ejemplo: theHarvester 🛠️
# Instalación con uv (recomendado 2026)
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
uv sync
# Uso básico
uv run theHarvester -d example.com -b all
# Uso avanzado con fuentes específicas
uv run theHarvester -d empresa.com -b google,bing,linkedin -s -v -n🐍 Automatización con Python
Scripts personalizados para reconocimiento específico:
import socket
import subprocess
from concurrent.futures import ThreadPoolExecutor
def scan_port(target, port):
"""Escanea un puerto específico"""
try:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(1)
result = sock.connect_ex((target, port))
sock.close()
return port if result == 0 else None
except:
return None
def scan_target(target, ports=[22, 80, 443, 8080, 3306, 5432]):
"""Escanea múltiples puertos"""
with ThreadPoolExecutor(max_workers=10) as executor:
results = executor.map(lambda p: scan_port(target, p), ports)
return [r for r in results if r]
# Uso
open_ports = scan_target("192.168.1.100")
print(f"Puertos abiertos: {open_ports}")1.3 Herramientas de Escaneo 🛠️
Nmap (Network Mapper) 🗺️
La herramienta de escaneo de red más versátil y utilizada.
Escaneos Básicos ⚡
# Escaneo TCP SYN rápido
nmap -sS -F target.com
# Escaneo completo con detección de servicios y OS
nmap -sS -sV -sC -O -p- target.com
# Escaneo de scripts básicos (vulnerabilidades comunes)
nmap -sC target.com
# Escaneo UDP
nmap -sU -p 53,161 target.comScripts NSE (Nmap Scripting Engine) 📜
# Scripts de vulnerabilidades
nmap --script vuln target.com
# Scripts de descubrimiento
nmap --script discovery target.com
# Scripts específicos (ej: SSL)
nmap --script ssl-enum-ciphers -p 443 target.com
# Scripts de autenticación
nmap --script auth target.comOpciones Avanzadas 🚀
# Timing (T0-T5, más rápido = más ruido)
nmap -T4 target.com
# Evadir IDS/IPS (fragmentación)
nmap -f target.com
# Source port spoofing
nmap -g 53 target.com
# Output formats
nmap -oA resultados target.com # Todos los formatos
nmap -oX resultados.xml target.comInterpretación de Resultados 📊
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.41
443/tcp open ssl/http Apache httpd 2.4.41
Estados de puerto: - open 🟢: Servicio escuchando - filtered 🟡: Probablemente filtrado por firewall - closed 🔴: Puerto cerrado - open|filtered ⚪: Estado desconocido
Recon-ng 🔧
Framework de reconocimiento web modular written in Python.
# Iniciar
recon-ng
# Marketplace - instalar módulos
marketplace install recon/domains-contacts/whois
marketplace install discovery/info_disclosure/interesting_files
# workspaces - crear proyecto
workspaces create pentest_empresa
workspaces load empresa
# Agregar dominio
db insert domains domain=empresa.com
# Ejecutar módulos
modules load recon/domains-contacts/whois
run
modules load discovery/info_disclosure/interesting_files
runMódulos esenciales: - recon/domains-contacts/whois 📬: Contactos WHOIS - recon/domains-contacts/free_geoloc 🌍: Geolocalización - recon/domains-websites/bing_web 🔍: Subdominios Bing - recon/netblocks-whois/whois 🌐: Rangos de red - exploitation/injection/sqlmap 💉: SQLi automation
SpiderFoot 🕷️
Herramienta de automatización OSINT con interfaz web y CLI.
# Instalación
git clone https://github.com/smicallef/spiderfoot.git
cd spiderfoot
pip install -r requirements.txt
# Interfaz web
python sf.py -l 127.0.0.1:5001
# CLI - escaneo básico
python sfcli.py -s target.com
# CLI - módulos específicos
python sfcli.py -s target.com -m sfp_dns,sfp_builtwith,sfp_hunterMódulos por categoría: - Passive 🤫: No toca el objetivo (Shodan, Hunter, DNS aggregates) - Active 🔓:Interactúa directamente (nmap, robots.txt) - Footprint 👣: Análisis profundo (subdominios, fingerprints)
🛠️ Herramientas
| Herramienta | Propósito | Instalación / URL |
|---|---|---|
| Nmap 🗺️ | Escaneo de red y puertos | sudo apt install nmap o nmap.org |
| Recon-ng 🔧 | Framework de reconocimiento web | pip install recon-ng |
| SpiderFoot 🕷️ | Automatización OSINT | spiderfoot.net |
| theHarvester 📧 | Recopilación de emails/subdominios | git clone theHarvester |
| Maltego CE 🕸️ | Análisis visual de enlaces | maltego.com |
| Shodan CLI 🔎 | Búsqueda de dispositivos | pip install shodan |
| Hunter.io 🎯 | Emails corporativos | hunter.io (free tier) |
🔬 Laboratorio
Ver
labs/lab-unidad1.mdpara el escenario completo.
Escenario: Realizar reconocimiento completo de un objetivo simulado (máquina con servicios expuestos en Docker o entorno de laboratorio). El estudiante debe identificar: - Información de dominio y DNS 🌐 - Subdominios 🔍 - Puertos abiertos y servicios �ports - Vulnerabilidades potenciales ⚠️ - Correos electrónicos expuestos 📧
Entregable: Reporte técnico de reconocimiento con screenshots y comandos utilizados. 📝
📚 Recursos Adicionales
- Nmap Official Documentation 📖
- PTES Technical Guidelines ⚙️
- OSSTMM 3.0 📊
- Nmap Scripting Engine Documentation 🛠️
- Recon-ng Wiki 🔧
- SpiderFoot Documentation 🕷️
- OSINT Framework 🎮
- OWASP Testing Guide v4.2 🛡️