CVE-2024-38077: Remotecodeausführung im Windows-Remotedesktop-Lizenzierungsdienst ("MadLicense")
I. Schwachstellenübersicht
CVE-ID: CVE-2024-38077
Alias: MadLicense
CVSS-Score: 9.8 (Kritisch)
Typ: Heap-basierter Pufferüberlauf (CWE-122)
Entdeckt von: Ver, Lewis Lee, Zhiniang Peng
Beschreibung: Eine vorauthentifizierungspflichtige, nullklickfähige Remotecodeausführungsschwachstelle im Windows-Remotedesktop-Lizenzierungsdienst (RDL). Ein nicht authentifizierter Angreifer kann ein speziell präpariertes RPC-Paket an den über mstlsap.dll / tlslicense.dll bereitgestellten RPC over TCP-Endpunkt senden, wodurch ein Heap-Pufferüberlauf ausgelöst wird, der zur Ausführung von beliebigem Code im Kontext von SYSTEM führt.
II. Technische Details
Der Remotedesktop-Lizenzierungsdienst lauscht auf RPC-dynamischen Endpunkten (üblicherweise Ports 49664–49681), die über TCP-Port 135 (RPC-Endpunkt-Mapper) erreichbar sind. Die Schwachstelle befindet sich im LicensingSendResponse- oder einem verwandten RPC-Schnittstellenhandler in der Heap-Speicherverwaltung des Lizenzierungsdienstes. Durch Senden einer speziell gestalteten Lizenzierungsprotokollanfrage mit einer überdimensionierten oder fehlerhaften LicensingBinary-Struktur führt der Dienst eine unsichere memcpy-Operation in einen Heap-Puffer unzureichender Größe durch, wodurch benachbarte Heap-Metadaten beschädigt und Codeausführung ermöglicht wird.
Wesentliche Aspekte:
Vorauthentifizierung: Es sind keine gültigen Anmeldedaten oder eine RDP-Sitzung erforderlich.
0-Click: Keine Benutzerinteraktion auf dem Ziel.
Netzwerkvektor: Wird remote über das Netzwerk ausgenutzt.
Auswirkungen: Vollständige Kompromittierung des Ziel-Windows-Servers auf SYSTEM-Ebene.
III. Betroffene Versionen
Produkt
Auswirkungen
Windows Server 2008 R2 (alle Editionen)
RCE
Windows Server 2012 / 2012 R2
RCE
Windows Server 2016
RCE
Windows Server 2019
RCE
Windows Server 2022
RCE
Windows Server 2025
RCE
Frühere Versionen (Windows 2000 Server, Server 2003, Server 2008) können ebenfalls betroffen sein, wenn der RDL-Dienst aktiviert ist.
IV. Einrichtung der Umgebung
Installieren Sie eine unterstützte Windows Server-Version (2008–2025) in einer virtuellen Maschine.
Stellen Sie sicher, dass die Rolle „Remotedesktop-Lizenzierung“ über den Server-Manager installiert ist:
Rollen und Features hinzufügen → Remotedesktopdienste → Remotedesktop-Lizenzierung
Starten/Überprüfen Sie den Dienst:
net start "Remote Desktop Licensing"
Bestätigen Sie, dass der Dienst lauscht:
netstat -an | findstr LISTENING
Der RDL-Dienst registriert dynamische RPC-Endpunkte. Fragen Sie Port 135 mit einem RPC-Endpunkt-Mapper-Tool ab.
Isolieren Sie die Ziel-VM von Produktionsnetzwerken — der PoC wird standardmäßig einen Absturz auslösen.
V. Reproduktionsschritte
Führen Sie das PoC-Skript gegen einen Ziel-Windows-Server mit freigegebenem RDL-Dienst aus:
root@kitploit:~
python exploit.py --target <TARGET_IP>
Überwachen Sie auf dem Ziel einen Absturz des tlslicense.dll-Dienstes oder einen Systemabsturz (BSOD, abhängig vom Schweregrad der Heap-Beschädigung).
Um den Überlauf zu überprüfen, hängen Sie einen Debugger (WinDbg) an den svchost.exe-Prozess, der den RDL-Dienst hostet, bevor Sie den Exploit auslösen, und beobachten Sie die Zugriffsverletzung.
VI. PoC-Code
Das beiliegende Skript exploit.py in diesem Verzeichnis enthält eine Reproduktion des MadLicense-Angriffs. Es verbindet sich mit dem Ziel-RDL-Dienst über RPC over TCP, erstellt eine fehlerhafte Lizenzierungsanfrage mit einem überdimensionierten Binärblob und löst den Heap-Pufferüberlauf aus.
VII. Gegenmaßnahmen
Patch: Installieren Sie das offizielle Sicherheitsupdate von Microsofts Patch Tuesday vom Juli 2024 (KB5040426 / KB5040430 / KB5040434 / KB5040437, abhängig von der Windows-Version).
Workaround:
Deaktivieren Sie den Remotedesktop-Lizenzierungsdienst, falls nicht benötigt: