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-2022-24481-analysis — Tiefgehende Analyse der Windows-CLFS-Typverwechslung (CVE-2022-24481) mit Root-Cause-Erklärung, Exploitation-Ablauf, Kernel-Gadget-Details und funktionierendem lokalen Privilege-Escalation-PoC. | Kitploit
Tools/GitHubGitHub/uname1able/cve-2022-24481-analysis
Privilege EscalationSchwachstellenanalyseExploitationReverse EngineeringBinary-Exploitation
GitHubuname1able/cve-2022-24481-analysis

CVE-2022-24481-analysis

Tiefgehende Analyse der Windows-CLFS-Typverwechslung (CVE-2022-24481) mit Root-Cause-Erklärung, Exploitation-Ablauf, Kernel-Gadget-Details und funktionierendem lokalen Privilege-Escalation-PoC.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
6vor 24 TagenNoch nicht geprüft

CVE-2022-24481 Typverwechslung

Typverwechslung

Anfällige Datei

clfs.sys

Grundursache

Da die Validierungslogik für rgContainers[0] nicht streng ist, überlappt ClientContext nach dem Fälschen von rgContainers[0] mit der ContainerContext-Struktur. Wenn die gefälschten Daten akzeptiert werden, stellt CClfsLogFcbPhysical::FlushMetadata nach CloseHandle die ClientContext-Daten wieder her.

Ausnutzungsmethode

Nach dem Fälschen von rgContainers[0] überlappt ClientContext mit der ContainerContext-Struktur. Wenn die gefälschten Daten akzeptiert werden, stellt CClfsLogFcbPhysical::FlushMetadata nach CloseHandle die ClientContext-Daten wieder her. Da sich die Strukturen überlappen, setzt dieser Prozess ContainerContext->pContainer auf die gefälschten Daten. Wenn schließlich CClfsBaseFilePersisted::RemoveContainer aufgerufen wird, löst dies einen indirekten Aufruf einer Member-Funktion aus, führt ein bestimmtes Gadget aus und führt zu einer Privilegienausweitung.

PoC-Ablauf

1. Vorbereitung der statischen Datei

createlog erstellt eine neue Logdatei.

Füge einen Container-Eintrag hinzu.

Erstelle einen symbolischen Link X:\, der auf das aktuelle Verzeichnis zeigt.

Leere den Bereich cbSymbolName_start -> cbSymbolName_end.

Setze cbSymbolName_start auf X:\N.

Kopiere die Daten von ContainerContext_start -> New_cbSymbolName_end in ClientContext.

Aktualisiere rgContainers[0], sodass es auf die neue Position ContainerContext_start zeigt.

Aktualisiere den neuen Wert von ContainerContext->pContainer.

Berechne die Prüfsumme neu.

2. Laufzeitvorbereitung

Lokalisiere die Gadget-Adresse im Kernel-Speicher.

Erstelle die gefälschte virtuelle Tabelle.

Führe die restliche Speichereinrichtung durch.

3. Öffnen der gefälschten Logdatei

CClfsLogFcbPhysical::Initialize

00000001C0002EDB speichert die ClientContext-Daten.

Nach CloseHandle wird CClfsRequest::Cleanup->CClfsLogFcbPhysical::FlushMetadata ausgeführt.

Es kopiert die gefälschten Daten zurück in ClientContext. Da sich ClientContext mit ContainerContext überlappt, wird ContainerContext->pContainer mit den gefälschten Daten überschrieben.

CClfsBaseFilePersisted::RemoveContainer führt dann unser Gadget aus, was zu einem 16-Byte-Schreibvorgang an eine beliebige Adresse führt.

Referenzen

https://zhuanlan.zhihu.com/p/645490730

https://github.com/fr4nkxixi/CVE-2022-24481-POC

https://securelist.com/windows-clfs-exploits-ransomware-cve-2022-24521/111580/

https://starmap.dbappsecurity.com.cn/blog/articles/2022/05/10/cve-2022-24481/

https://www.4awl.net/9646.html

Liste der Datenmodifikationen

Wichtige Punkte des Funktionsablaufs

win10_21H2_19044.1620

CClfsLogFcbPhysical::Initialize(0x??7c) Initialisierungsroutine zum Öffnen der Datei

bp clfs!CClfsLogFcbPhysical::Initialize + 0x45F

Dieser Code speichert den Inhalt des ClientContext-Speichers.

Nach CloseHandle wird CClfsRequest::Cleanup->CClfsLogFcbPhysical::FlushMetadata ausgeführt.

bp clfs!CClfsLogFcbPhysical::FlushMetadata + 0x46

Dies stellt die ClientContext-Daten wieder her.

CClfsBaseFilePersisted::RemoveContainer

bp clfs!CClfsBaseFilePersisted::RemoveContainer + 0x10F

Verwende den gefälschten Virtual-Table-Zeiger, um zum Gadget zu gelangen.

Hinweis: Wenn die gefälschte Datei ungültig ist, schlägt das Öffnen der Datei fehl und GetLastError zeigt den Grund. In diesem Fall kann der Exploit-Ablauf nicht fortgesetzt werden.

Gadget

CClfsBaseFilePersisted::RemoveContainer

CLFS!ClfsEarlierLsn

nt!SeSetAccessStateGenericMapping

nt!SeSetAccessStateGenericMapping

movdqu xmmword ptr [rax+8], xmm0 schreibt 16 Bytes an [rax+8] (XMMWORD, 128 Bits).

Nach sequenzieller Ausführung werden die 16-Byte-Daten von poi(rdx) 0xFFFFFFFF in poi(poi(rcx+0x48)+0x8) geschrieben.

rcx ist der Ort des Virtual-Table-Zeigers, und dieser Ort befindet sich unter unserer Kontrolle.

Implementierter PoC

https://github.com/uname1able/CVE-2022-24481.git

Win10 PoC

winver

win10_21H2_19044.1620

bp clfs!CClfsBaseFilePersisted::RemoveContainer + 0x10F

Win11 PoC

winver

win11_21H2_22000.593

bp clfs!CClfsBaseFilePersisted::RemoveContainer + 0x183

Tool herunterladen