🛡️ Unidad 1: Fundamentos y Reconocimiento Agéntico

Fases del Pentesting

🎯 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:

  1. Reconocimiento (Information Gathering) 🔎: Recolección de información sobre el objetivo. Puede ser pasiva (sin interacción directa) o activa (con interacción directa).

  2. Escaneo (Enumeration) 📡: Identificación de puertos abiertos, servicios instalados y versiones. Determinación de vulnerabilidades potenciales.

  3. Explotación (Exploitation) 💥: Aprovechamiento de vulnerabilidades encontradas para obtener acceso al sistema.

  4. Post-Explotación (Post-Exploitation) 🎯: Mantenimiento del acceso, pivoting a otros sistemas, escalamiento de privilegios, exfiltración de datos.

  5. 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.com

Scripts 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.com

Opciones 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.com

Interpretació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
run

Mó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_hunter

Mó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.md para 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


📖 Bibliografía