
CVE-2023-21554 Preuve de concept
Ce dépôt contient une preuve de concept prête à exécuter qui cible Microsoft Message Queuing écoutant sur le port TCP 1801. Ce travail est basé sur et utilise des éléments du projet original à l'adresse
https://github.com/leongxudong/MSMQ-Vulnerability
Ce dépôt utilise les artefacts binaires fournis par ce projet. Les fichiers binaires inclus et référencés par la PoC sont :
establish_connection.binconnection_parameters.binuser_message.binCette PoC tente de reproduire la condition décrite dans CVE 2023 21554 en envoyant une séquence de trames du protocole MSMQ à un hôte cible sur le port 1801. Les scripts de la PoC effectuent uniquement une activité au niveau réseau et n'effectuent aucune action de post-exploitation. Ce projet est destiné uniquement à l'analyse et à la vérification défensive dans un environnement de laboratoire isolé.
CVE-2023-21554.py — script PoC d'origine qui envoie les trois blobs binaires en séquenceCVE-2023-21554.py — script d'assistance côté attaquant qui journalise les réponses, les hexdumps, les horodatages et les erreurs au niveau socket. Utilisez ce script pour obtenir des preuves côté attaquant plus utilesestablish_connection.bin — charge utile binaire de l'étape un du dépôt d'origineconnection_parameters.bin — charge utile binaire de l'étape deux du dépôt d'origineuser_message.bin — charge utile binaire de l'étape trois du dépôt d'origineREADME.md — ce fichierPlacez les trois fichiers binaires dans le même dossier que le script PoC
Modifiez le script PoC ou CVE-2023-21554.py pour définir l'adresse IP cible
Démarrez une capture réseau sur votre machine attaquante pour l'IP et le port cibles. Exemple de commande dans un shell séparé (remplacez l'IP par votre cible) :
sudo tcpdump -i eth0 host 10.0.2.15 and port 1801 -w msmq_test.pcap
Exécutez le script de vérification amélioré pour obtenir des journaux horodatés et des hexdumps
python3 CVE-2023-21554.py
Enregistrez la sortie de la PoC et le fichier de capture réseau pour analyse
CVE-2023-21554.py signale connection_reset ou orderly_close immédiatement après une étape de charge utile (ce sont des statuts explicites affichés par le script d'assistance).mqsvc.exe plante ou redémarre au moment du test.mqsvc.exe.mqsvc.Remplacez <TARGET> par l'IP de votre cible pour chaque filtre.
Afficher tout le trafic entre l'attaquant et la cible sur le port MSMQ :
ip.addr == <TARGET> && tcp.port == 1801
Afficher uniquement les RST TCP provenant du serveur :
ip.src == <TARGET> && tcp.port == 1801 && tcp.flags.reset == 1
Afficher les paquets contenant des données applicatives (charges utiles TCP non vides) :
ip.addr == <TARGET> && tcp.port == 1801 && tcp.len > 0
Afficher les segments de longueur nulle ou les FIN :
ip.addr == <TARGET> && tcp.port == 1801 && (tcp.len == 0 || tcp.flags.fin == 1)
Afficher les retransmissions et les anomalies TCP :
tcp.analysis.retransmission || tcp.analysis.fast_retransmission || tcp.analysis.duplicate_ack
tcp.len ou le paquet immédiatement avant un RST.server_reply.hex).CVE-2023-21554.py dans un fichier textemsmq_test.pcap)mqsvc.exe à l'aide de procdump et enregistrez-le pour analyseCe code peut provoquer des plantages de services et une instabilité sur les hôtes cibles. Ne l'exécutez pas contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester. Testez toujours dans un environnement de laboratoire isolé et prenez un instantané de la machine virtuelle avant d'exécuter les tests. Le travail original est crédité au projet en amont à l'adresse :
https://github.com/leongxudong/MSMQ-Vulnerability
Ce dépôt est dérivé du projet original à l'adresse :
https://github.com/leongxudong/MSMQ-Vulnerability
Si vous ajoutez des outils d'aide à la détection ou des scripts de collecte de preuves, veuillez les documenter et inclure des instructions pour une utilisation sûre en laboratoire
Référez-vous au dépôt en amont au lien ci-dessus pour le contexte original et les artefacts binaires. Pour des conseils défensifs, consultez les avis des fournisseurs et les analyses publiées sur CVE 2023 21554