Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2025-59287 PoC — Windows Server Update Service (WSUS) Remote Code Execution Vulnerability

Source
Associated Vulnerability
Title:Windows Server Update Service (WSUS) Remote Code Execution Vulnerability (CVE-2025-59287)
Description:Deserialization of untrusted data in Windows Server Update Service allows an unauthorized attacker to execute code over a network.
Description
Module PowerShell de réponse à l'incident CVE-2025-59287 — WSUS Remote Code Execution (RCE)
Readme
# 🧰 WSUSResponder

**Version : 1.0.1**  
**Auteur : RZA / IT Operations**  
**Licence : [MIT](LICENSE)**  

---

## 🎯 Objectif

Le module **WSUSResponder** fournit un ensemble d’outils PowerShell pour **répondre rapidement à la vulnérabilité critique CVE-2025-59287**, une faille d’exécution de code à distance (RCE) affectant **Windows Server Update Services (WSUS)**.

Il permet de :

- 🔍 Scanner un parc Active Directory ou une liste de serveurs ciblés  
- 🧩 Identifier les serveurs WSUS vulnérables  
- 🛡️ Vérifier la présence des correctifs **Out-of-Band (OOB)** publiés par Microsoft  
- 🚧 Appliquer un **workaround pare-feu** (blocage ports 8530/8531)  
- ♻️ Retirer ce workaround une fois les serveurs patchés  
- 📊 Générer des rapports d’audit complets (CSV, JSON, XLSX)

---

## ⚙️ Prérequis

### Modules PowerShell nécessaires
| Module | Rôle | Installation |
|---------|------|--------------|
| **ActiveDirectory** | Découverte automatique des serveurs via AD | `Add-WindowsCapability -Online -Name 'Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0'` |
| **ImportExcel** | Génération des rapports Excel (.xlsx) | `Install-Module ImportExcel -Scope CurrentUser` |

### Environnement requis
- PowerShell **5.1+**  
- WinRM activé sur les serveurs cibles (`Enable-PSRemoting`)  
- Droits d’administrateur local sur les hôtes distants  

---

## 📦 Installation

1. Créez un dossier nommé `WSUSResponder` dans l’un de vos répertoires de modules PowerShell :  
   ```powershell
   $Path = "$env:USERPROFILE\Documents\WindowsPowerShell\Modules\WSUSResponder"
   New-Item -ItemType Directory -Path $Path -Force
Copiez les fichiers du module :

WSUSResponder.psm1

WSUSResponder.psd1

Importez le module :

powershell
Copier le code
Import-Module WSUSResponder
Get-Command -Module WSUSResponder
Vérifiez le chargement :

powershell
Copier le code
Get-Module WSUSResponder -ListAvailable
🧩 Fonctions exportées
Fonction	Description
Get-WSUSCveStatus	Scanne les serveurs pour détecter la présence du rôle WSUS et des correctifs OOB.
Set-WSUSCveWorkaround	Applique le contournement (règles pare-feu bloquant les ports 8530/8531).
Remove-WSUSCveWorkaround	Supprime les règles pare-feu créées par le workaround.
Export-WSUSCveReport	Exporte les résultats du scan dans plusieurs formats (CSV, JSON, XLSX, TXT).

🚀 Exemples d’utilisation
🔎 Audit complet du domaine AD
powershell
Copier le code
$ReportPath = "C:\Temp\WSUS_Audit_$(Get-Date -Format yyyyMMdd)"
Get-WSUSCveStatus -FromAD -UsePS7Parallel | Export-WSUSCveReport -ExportPath $ReportPath
🛡️ Scan + Application du Workaround
powershell
Copier le code
$scanResults = Get-WSUSCveStatus -FromAD -UsePS7Parallel
$vulnerable = $scanResults | Where-Object { $_.IsWSUS -and -not $_.IsPatched -and $_.Reachable }
$vulnerable | Set-WSUSCveWorkaround -PassThru
$scanResults | Export-WSUSCveReport -ExportPath "C:\Temp\WSUS_Mitig_$(Get-Date -Format yyyyMMdd)"
🔁 Suppression du Workaround après patching
powershell
Copier le code
Remove-WSUSCveWorkaround -ComputerName 'srv-wsus-01','srv-wsus-02'
📊 Rapports générés
Les rapports sont sauvegardés dans le dossier défini par -ExportPath :

Fichier	Format	Contenu
WSUS_CVE59287_Report.csv	CSV	Résultats complets du scan
WSUS_CVE59287_Report.json	JSON	Export structuré pour API/automatisation
WSUS_CVE59287_Report.xlsx	XLSX	Rapport formaté avec filtres automatiques
Vulnerable_Hosts.txt	TXT	Liste simple des hôtes vulnérables

🧱 Architecture technique
Utilisation de Invoke-Command et WinRM pour exécution distante

Parallélisme natif PS7 (ForEach-Object -Parallel) pour accélérer les pré-tests

Timeout configurable via -OperationTimeoutSec

Workaround idempotent (pas de duplication de règles)

Export multi-format automatisé (CSV, JSON, XLSX via ImportExcel)

🔐 Sécurité et Signature du module
Si votre politique d’exécution est AllSigned, vous pouvez signer le module :

powershell
Copier le code
New-SelfSignedCertificate -Type CodeSigning -Subject "CN=IT Operations" -CertStoreLocation Cert:\CurrentUser\My
$cert = Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert | Select-Object -First 1
Set-AuthenticodeSignature -FilePath "C:\Modules\WSUSResponder\WSUSResponder.psm1" -Certificate $cert
Set-AuthenticodeSignature -FilePath "C:\Modules\WSUSResponder\WSUSResponder.psd1" -Certificate $cert
🧾 Changelog
v1.0.1 – (27/10/2025)
Refactor complet en module PowerShell (.psm1 / .psd1)

Ajout du support parallèle PS7 (-UsePS7Parallel)

Nouveau moteur d’export (CSV, JSON, XLSX)

Correction de la gestion du timeout WinRM

Rollback idempotent des règles pare-feu

🧑‍💻 Auteurs
(RZA) — IT Operations

Contributeurs internes Sécurité Microsoft / DOT_SU_KIOSQUE_CENTER

📜 Licence
Distribué sous licence MIT.
© 2025 RZA / IT Operations – Tous droits réservés.

File Snapshot

[4.0K] /data/pocs/4da9f1ce77353aafeaaacb8eb5e6e9f4137dd7b5 ├── [ 520] CHANGELOG.md ├── [5.2K] Documentation du module.txt ├── [1.1K] LICENSE.txt ├── [4.9K] README.md ├── [4.4K] Use-WSUSResponder.ps1 ├── [1.6K] WSUSResponder.psd1 └── [ 22K] WSUSResponder.psm1 1 directory, 7 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →