CVE-2025-5777 Citrix NetScaler Memory Leak Exploit
[!WARNING]
Ce script est destiné uniquement à des fins éducatives et de recherche. Ne l'utilisez pas contre des systèmes sans autorisation explicite. Tout accès ou test non autorisé est illégal et contraire à l'éthique. Lisez l'intégralité du DISCLAIMER avant d'utiliser ce script.
Aperçu
Ce projet démontre une vulnérabilité de fuite de mémoire (CVE-2025-5777) découverte dans les appliances Citrix NetScaler. La vulnérabilité résulte d'une gestion inappropriée de la mémoire non initialisée lors de l'analyse de données POST malformées, en particulier du paramètre login. Elle est largement connue sous le nom de CitrixBleed 2 en raison de sa forte ressemblance avec la tristement célèbre CVE-2023-4966 (CitrixBleed d'origine) qui a été massivement exploitée en 2023.
Lorsque le champ login est inclus sans signe égal ni valeur, une partie de la mémoire de pile non initialisée est renvoyée dans la balise <InitialValue> de la réponse XML.

Données divulguées : Chaque requête HTTP peut divulguer environ 127 octets de contenu de la mémoire RAM. En répétant ces requêtes, les attaquants peuvent collecter des données sensibles depuis la mémoire, notamment :
- Jetons de session (permettant le détournement de session et le contournement de la MFA).
- Données d'authentification.
- Parties de requêtes HTTP précédentes.
- Identifiants en clair.
- Autres informations sensibles.
Utilisation du script
Prérequis / Dépendances
pip3 install aiohttp colorama
Exécuter le script
python3 exploit.py <URL> [options]
Options de la ligne de commande
positional arguments:
url Base URL (e.g., http://target.com)
optional arguments:
-h, --help Show help message
-v, --verbose Enable debug output
-p, --proxy PROXY HTTP proxy URL (e.g., http://127.0.0.1:8080)
-t, --threads N Number of concurrent threads (default: 10)
-d, --delay SECONDS Delay between request batches in seconds (default: 1.0)
--max-requests N Maximum number of requests to send (default: unlimited)
-e, --endpoints PATH Additional endpoints to test (can specify multiple)
--no-save Don't save data to files on exit
Exemples
Utilisation de base :
python3 exploit.py http://target.com
Mode verbeux avec proxy :
python3 exploit.py http://target.com -v -p http://127.0.0.1:8080
Concurrence élevée avec limitation de débit :
python3 exploit.py http://target.com -t 20 -d 0.5
Requêtes limitées avec plusieurs points de terminaison :
python3 exploit.py http://target.com --max-requests 1000 -e /p/u/doAuthentication.do /api/auth
Aide :
Fonctionnalités avancées
Cette version améliorée comprend :
🔍 Détection de motifs
- Détecte automatiquement les jetons de session (schémas NSC_*, NSC_TASS, NSC_AAAC)
- Identifie les identifiants (nom d'utilisateur:mot de passe, authentification Basic)
- Trouve les adresses IP, adresses e-mail, URL
- Détecte les données Base64, chaînes hexadécimales, données JSON
- Met en évidence les motifs dans le dump hexadécimal
📊 Suivi des statistiques
- Affichage des statistiques en temps réel
- Taux de réussite, taux de fuite, suivi des erreurs
- Compteur d'octets divulgués
- Détection de fuites uniques (hachage MD5)
- Compteurs de détection de motifs
💾 Collecte et exportation des données
- Sauvegarde automatique des données à la sortie (Ctrl+C)
- Export JSON avec métadonnées complètes
- Export CSV pour analyse dans un tableur
- Fichier distinct pour les jetons de session
- Fichier texte des fuites brutes
- Répertoires de sortie horodatés
- Détection automatique des jetons de session Citrix
- Déduplication des jetons trouvés
- Stockage et exportation séparés des jetons
- Suivi du nombre de jetons
- Décodage de l'authentification Basic
- Détection du motif nom d'utilisateur:mot de passe
- Stockage et exportation des identifiants
📈 Sortie améliorée
- Dumps hexadécimaux avec code couleur
- Mise en évidence des motifs dans la sortie
- Résumés détaillés des fuites
- Mises à jour de progression périodiques
- Statistiques complètes à la sortie
⚙️ Configuration avancée
- Test de plusieurs points de terminaison
- Limites de requêtes configurables
- Délais ajustables entre les lots
- Meilleure gestion des erreurs et récupération
- Arrêt propre avec sauvegarde des données
Ce script Python avancé :
- Envoie des requêtes POST malformées répétées à des points de terminaison vulnérables
- Analyse les réponses XML à la recherche de balises
<InitialValue>
- Extrait le contenu mémoire divulgué
- Analyse les données pour détecter des motifs sensibles (jetons, identifiants, etc.)
- Affiche les résultats au format hexadécimal amélioré avec mise en évidence
- Suit les statistiques et les fuites uniques
- Sauvegarde automatiquement les données collectées dans plusieurs formats
- Prend en charge le proxy, le multithreading, la limitation de débit et la sortie verbeuse
Impact
- Détournement de session : La préoccupation principale est le vol de jetons de session, ce qui permet aux attaquants de détourner des sessions actives et d'obtenir un accès non autorisé à des systèmes critiques, même si l'authentification multifacteur (MFA) est activée.
- Contournement de l'authentification : Les jetons de session ou identifiants volés peuvent être utilisés pour contourner complètement le processus d'authentification.
- Divulgation de données : Des informations sensibles résidant en mémoire peuvent être exposées.

Défense et atténuation
- Mettez à jour immédiatement vers le dernier firmware sécurisé.
- Surveillez les schémas de requêtes POST anormaux.
Référence