Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2018-0952-SystemCollector — PoC für Privilegieneskalation im Windows 10 Diagnostics Hub Standard Collector Service | Kitploit
Tools/GitHubGitHub/atredispartners/cve-2018-0952-systemcollector
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstestsRed TeamingBinary-Exploitation
GitHubatredispartners/cve-2018-0952-systemcollector

CVE-2018-0952-SystemCollector

PoC für Privilegieneskalation im Windows 10 Diagnostics Hub Standard Collector Service

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
11131vor 8 JahrenVon Kitploit geprüft

SystemCollector

PoC für Privilege Escalation im Windows 10 Diagnostics Hub Standard Collector Service

Betroffene Produkte

  • Windows 10
  • Windows Server
  • Windows Server 2016
  • Visual Studio 2015 Update 3
  • Visual Studio 2017

Zusammenfassung

Die Diagnostics Hub Packaging-Bibliothek, die vom Windows Standard Collector Service verwendet wird, kann gezwungen werden, eine beliebige Datei an einen beliebigen Speicherort zu kopieren, da in DiagnosticsHub.StandardCollector.Runtime.dll keine Client-Impersonation durchgeführt wird.

Hier finden Sie eine ausführliche Beschreibung, wie diese Schwachstelle gefunden und ausgenutzt wurde: Privilege Escalation Vulnerability in Windows Standard Collector Service.

Technische Details

Der Standard Collector Service erlaubt es, beim Konfigurieren einer Diagnosesitzung mehrere Werte festzulegen, einschließlich des Scratch-Verzeichnisses und der Sitzungs-ID. Die Sitzungs-ID kann eine beliebige GUID sein, und das Scratch-Verzeichnis kann ein beliebiger Ort sein, an dem der Benutzer Schreibrechte besitzt. Wenn die Sammlungssitzung mit einer ID von c13851b2-b1e1-438f-bf73-949df897f1bf und einem Scratch-Pfad von C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\ konfiguriert ist, treten beim Aufrufen der GetCurrentResult-Methode des ICollectionSession-Objekts die folgenden Ereignisse auf:

  1. Eine Event Trace Log-Datei (.etl) wird im Scratch-Pfad erstellt: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl
  2. Ein Report-Ordner wird ebenfalls im Scratch-Pfad erstellt: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1
  3. Ein Ordner mit einer zufälligen GUID wird im Report-Ordner erstellt: C:\Users\Bob\AppData\Local\Temp\Microsoft\F12\perftools\visualprofiler\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65

Diese Ordner und ETL-Dateien werden vom Collector-Dienst für das .diagsession-Paket erstellt, das normalerweise erstellt wird, wenn eine Sitzung beendet wurde. Das Aufrufen der Stop-Methode auf dem ICollectionSession-Objekt veranlasst den Collector-Dienst, das Diagnosepaket durch Aufruf von Microsoft::DiagnosticsHub::Packaging::DhPackageDirectory::CommitPackage zu übernehmen. Die CommitPackage-Funktion kopiert oder verschiebt die ursprüngliche Datei {scratch path}\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl in den Ordner mit der zufälligen GUID: {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl

Der Kopier-/Verschiebevorgang, der durch die CommitPackagingResult-Funktion in DiagnosticsHub.StandardCollector.Runtime.dll ausgelöst wird, wird ohne Impersonation des Benutzers durchgeführt (anders als bei der anfänglichen Erstellung von Dateien/Ordnern), was zu einem möglichen TOCTOU-Problem führt, wenn der Zielordner durch einen Mount-Point ersetzt wird, der das Kopieren auf einen beliebigen Speicherort umleitet. Um dieses Problem sinnvoll auszunutzen, müsste ein Angreifer den Inhalt der ETL-Datei austauschen, bevor sie kopiert wird. Dies kann erreicht werden, indem man die Race Condition mit einem OpLock gewinnt, nachdem das Dateihandle vom Dienst freigegeben wurde.

Obwohl wir den Namen der kopierten .etl-Datei nicht vollständig kontrollieren, können wir den Symlink-Trick des Objektverzeichnisses nutzen, um ihn zu kontrollieren. Der Aufbau aus Mount-Point und Symlink würde in etwa so aussehen:

  • Mount-Point: {scratch path}\Report.c13851b2-b1e1-438f-bf73-949df897f1bf.1\EAD6A227-31D4-4EA2-94A9-5DF276F69E65\ -> \RPC Control\
  • Symlink: \RPC Control\c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl -> C:\Windows\System32\anything.dll

Die Kontrolle über den Dateiinhalt, den Kopierort und den Dateinamen gibt einem Angreifer zahlreiche Möglichkeiten zum Laden von DLLs. Der enthaltene PoC zeigt jedoch, dass die Kontrolle über den Dateinamen nicht erforderlich ist, da der Collector-Dienst bereitwillig eine DLL mit einem beliebigen Dateinamen lädt, solange sie sich im Verzeichnis C:\Windows\System32 oder C:\Windows\System32\DiagSvcs befindet. Dies wird erreicht, indem eine neue Collector-Sitzung mit einem Agenten gestartet wird, dessen Assembly-Name mit dem Namen der kopierten DLL c13851b2-b1e1-438f-bf73-949df897f1bf.1.m.etl übereinstimmt.

Der enthaltene PoC ist eine Visual-Studio-Projektmappe mit einem C++-DLL-Projekt für die notepad.exe-Popup-Payload und einem C#-Projekt zur Interaktion mit dem Dienst und zur Ausnutzung der Schwachstelle mit der NtApiDotNet-Bibliothek.

Schritte zur Reproduktion:

  1. Visual-Studio-Projektmappe erstellen
  2. SystemCollector.exe als normaler Benutzer ausführen

Erwartetes Ergebnis:

Der Paket-Commit-Vorgang impersoniert den Benutzer und schlägt beim Versuch, die Datei zu kopieren, fehl.

Beobachtetes Ergebnis:

Die Datei wird in den Mount-Point-Zielordner C:\Windows\System32 kopiert, dann als Collector-Agent geladen, und schließlich wird notepad.exe mit SYSTEM-Berechtigungen gestartet.

Zusätzliche Referenzen

  • https://www.atredis.com/blog/cve-2018-0952-privilege-escalation-vulnerability-in-windows-standard-collector-service
  • https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2018-0952
  • https://github.com/atredispartners/advisories/blob/master/ATREDIS-2018-0004.md
Tool herunterladen