Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
cve-2023-38408 — Un análisis en profundidad de CVE 2023 38408, una vulnerabilidad crítica de OpenSSH, que incluye antecedentes técnicos, explotación en entornos controlados y estrategias de mitigación. | Kitploit
Herramientas/GitHubGitHub/adel2411/cve-2023-38408
Análisis de VulnerabilidadesExplotaciónPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónRed Teaming
GitHubadel2411/cve-2023-38408

cve-2023-38408

Un análisis en profundidad de CVE 2023 38408, una vulnerabilidad crítica de OpenSSH, que incluye antecedentes técnicos, explotación en entornos controlados y estrategias de mitigación.

Ver Repositorio
55hace 1 añoAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2023-38408: Comprendiendo y Simulando una Vulnerabilidad Real de SSH-Agent

Tabla de Contenidos

  1. Introducción
  2. Conceptos Fundamentales
  3. La Vulnerabilidad CVE-2023-38408
  4. Simulación y Pruebas Prácticas
  5. Análisis Técnico
  6. Corrección y Mitigación
  7. Conclusión

1. Introducción

Propósito del Informe

El propósito de este informe es analizar CVE-2023-38408, una vulnerabilidad crítica del mundo real descubierta en OpenSSH, mediante la comprensión teórica y la simulación práctica. El informe explica los fundamentos técnicos de la vulnerabilidad, demuestra cómo puede ser explotada en entornos controlados y examina las medidas de mitigación implementadas.

Importancia de Analizar Vulnerabilidades del Mundo Real

Comprender las vulnerabilidades de seguridad del mundo real a través de la simulación práctica no solo ayuda a proteger los sistemas, sino que también fortalece la conciencia de los desarrolladores y administradores de sistemas sobre posibles vectores de ataque. Analizar dichas vulnerabilidades cierra la brecha entre la teoría y la implementación práctica de la seguridad.

¿Qué es CVE-2023-38408 y Por Qué es Importante

CVE-2023-38408 es una vulnerabilidad que afecta a ssh-agent en OpenSSH cuando el soporte PKCS#11 está habilitado. Permite la ejecución remota de código en una máquina cliente si el usuario se conecta a un servidor comprometido con el reenvío de agente habilitado (ssh -A). Esta vulnerabilidad tiene graves implicaciones para cualquier sistema que dependa de OpenSSH para la autenticación segura.

Detalles de CVEInformación
ID de CVECVE-2023-38408
Puntuación CVSS9.8 (Crítico)
Versiones AfectadasOpenSSH < 9.3p2
Vector de AtaqueRed
Privilegios RequeridosNinguno
Interacción del UsuarioRequerida
ImpactoCompromiso total del sistema

2. Conceptos Fundamentales

2.1 Resumen de SSH

SSH (Secure Shell) es un protocolo de red criptográfico utilizado para la comunicación segura a través de redes no seguras. Proporciona canales cifrados para inicio de sesión remoto, ejecución de comandos, transferencia de archivos y más.```mermaid graph LR A[SSH Client] -->|Encrypted Connection| B[SSH Server] A -->|Authentication| C[ssh-agent] C -->|Private Keys| D[Key Store] B -->|Agent Forwarding| E[Remote ssh-agent Proxy]

### 2.2 Qué es ssh-agent

`ssh-agent` es un proceso en segundo plano que almacena tus claves SSH privadas descifradas en la memoria, permitiéndote usarlas sin tener que volver a introducir las frases de contraseña cada vez que te conectas a un sistema remoto.

#### Reenvío del agente (ssh -A)

El reenvío del agente permite que un sistema remoto acceda a tu `ssh-agent` local a través de un socket de dominio Unix. Esto es útil para encadenar conexiones SSH, pero introduce riesgos de seguridad significativos si la máquina remota está comprometida.```mermaid
sequenceDiagram
    participant Client as SSH Client
    participant Agent as ssh-agent
    participant Server as Remote Server
    participant Proxy as Agent Proxy

    Client->>Agent: Start agent
    Client->>Server: ssh -A user@server
    Server->>Proxy: Create proxy socket
    Note over Server,Proxy: SSH_AUTH_SOCK=/tmp/ssh-xxx/agent.xxx
    Server->>Proxy: ssh-add request
    Proxy->>Client: Forward request
    Client->>Agent: Process request
    Agent->>Client: Response
    Client->>Proxy: Forward response
    Proxy->>Server: Final response

Técnicamente, cuando usas ssh -A, el cliente SSH crea un socket de dominio Unix en el servidor remoto que actúa como un proxy hacia tu ssh-agent local. La variable de entorno SSH_AUTH_SOCK se configura para apuntar a este socket proxy. Cualquier llamada realizada a SSH_AUTH_SOCK en el servidor remoto se reenvía de vuelta a través de la conexión SSH y es procesada por tu ssh-agent local.

2.3 ¿Qué es PKCS#11?

PKCS#11 es una API estándar para interactuar con tokens criptográficos, como tarjetas inteligentes, YubiKeys o módulos de seguridad de hardware virtuales (HSM).

Función PKCS#11PropósitoNivel de Riesgo
C_Initialize()Inicializar la libreríaBajo
C_GetSlotList()Listar slots disponiblesBajo
C_FindObjects()Encontrar objetos criptográficosMedio
C_Sign()Firmar datosAlto
dlopen()Cargar librería compartidaCrítico

Cómo ssh-agent soporta PKCS#11

El ssh-agent de OpenSSH soporta la carga de proveedores PKCS#11 (librerías compartidas .so) mediante el comando ssh-add -s /path/to/provider.so. Estas librerías permiten que el agente interactúe con módulos de hardware o software seguros para usar claves privadas sin exponerlas directamente.

Internamente, cuando se ejecuta ssh-add -s, se realiza lo siguiente:

  • El archivo .so se carga dinámicamente en memoria usando dlopen().
  • El agente resuelve y llama a funciones como C_Initialize(), C_GetSlotList(), C_FindObjects() y C_Sign() a través de la API PKCS#11.
  • El proveedor devuelve metadatos y maneja solicitudes para firmar desafíos de autenticación, manteniendo el material de la clave privada de forma segura dentro del token hardware.

3. La Vulnerabilidad CVE-2023-38408

3.1 Resumen de CVE

AtributoDetalles
IDCVE-2023-38408
SeveridadAlta (CVSS 9.8)
CronologíaDivulgada en julio de 2023, corregida en OpenSSH 9.3p2
Software AfectadoVersiones de OpenSSH anteriores a 9.3p2 con soporte PKCS#11
Complejidad de AtaqueBaja
Vector de AtaqueRed a través de reenvío del agente SSH

3.2 Mecanismo de la Vulnerabilidad

La vulnerabilidad se origina porque ssh-agent carga cualquier archivo de objeto compartido (.so) proporcionado mediante ssh-add -s, sin validar si se trataba de un proveedor PKCS#11 legítimo.```mermaid graph TD A[Attacker sends ssh-add -s malicious.so] --> B[Request forwarded to victim's ssh-agent] B --> C[ssh-agent calls dlopen on malicious.so] C --> D[Constructor function executes immediately] D --> E[Arbitrary code runs on victim machine]

### 3.3 Análisis del Flujo de Ataque```mermaid
sequenceDiagram
    participant V as Victim
    participant A as Attacker
    participant Agent as ssh-agent
    participant Lib as Malicious .so

    V->>A: ssh -A attacker@host
    Note over V,A: Agent forwarding enabled
    A->>Agent: ssh-add -s /path/to/malicious.so
    Agent->>Lib: dlopen("/path/to/malicious.so")
    Note over Lib: Constructor executes
    Lib->>V: Malicious code runs
    Note over V: System compromised

En el nivel más bajo, la secuencia de eventos incluye:

Descargar herramienta