
Kapert gültige Treiberdienste, um beliebige (signierte) Treiber zu laden, indem native symbolische Links und NT-Pfade missbraucht werden.
DriverJack ist ein Tool, das entwickelt wurde, um einen verwundbaren Treiber zu laden, indem weniger bekannte NTFS-Techniken missbraucht werden. Diese Methode umgeht die Registrierung eines Treiberdienstes auf dem System, indem sie einen bestehenden Dienst kapert, und fälscht auch den Bildpfad, der im Treiberladeereignis angezeigt wird. Um das Vorhandensein eines verwundbaren Treibers weiter zu verschleiern, missbraucht der Angriff auch einen Emulated Filesystem Read-Only Bypass, um den Inhalt einer Treiberdatei auf einer gemounteten ISO vor dem Laden auszutauschen.
DriverJack missbraucht die Möglichkeit, auf emulierten Dateisystemen gemountete Dateien auf RW-Seiten umzuleiten, um deren Inhalt zu überschreiben. Dieser RO-Bypass ist in IoCdfsLib implementiert.
Sobald die ISO gemountet ist, fährt der Angriff fort, indem er einen Dienstreiber auswählt, der gestartet oder gestoppt werden kann, oder einen, der ausgelöst werden kann, was Administratorrechte erfordert, sofern nicht falsch konfiguriert.
ISO-Mounting und Treiberauswahl
Kapern des Treiberpfads
Diese Technik nutzt die Fähigkeit eines Installers aus, direkt auf das Verzeichnis C:\Windows\System32\drivers zuzugreifen, sodass dort ein bösartiger symbolischer Link platziert werden kann. Der symbolische Link wird vom Betriebssystem mit Vorrang verarbeitet, was dazu führt, dass der bösartige Treiber geladen wird, wenn der Dienst neu gestartet wird.
Wichtige Schritte:
NtLoadDriver normalisiert den NT-Pfad des symbolischen Links.Diese Methode, die in Zusammenarbeit mit jonasLyk von der Hackerkollektiv Secret Club entwickelt wurde, beinhaltet die Umleitung des NT-Symbolischen-Links \Device\BootDevice, der Teil des Pfades ist, von dem eine Treiberbinärdatei geladen wird. Dies ermöglicht das Verstecken eines Rootkits im System.
Schritte:
BootDevice-Symlinks sichern.BootDevice-Symlink manipulieren, sodass er auf die gemountete ISO zeigt.BootDevice-Symlinks wiederherstellen.Diese Methode wurde von Techniken inspiriert, die im Projekt unDefender verwendet werden, um den Windows Defender-Dienst und -Treiber zu deaktivieren. Das Treiberladeereignis zeigt weiterhin den tatsächlichen Pfad des geladenen Treibers an, der auf den ISO-Mountpunkt verweist.
Obwohl weithin bekannt, wird diese Technik aufgrund des Potenzials für Systeminstabilität selten eingesetzt. Sie beinhaltet die vorübergehende Änderung des Laufwerksbuchstabens, der der BootPartition zugewiesen ist, wodurch der Treiberladeprozess dazu getäuscht wird, auf ein anderes Laufwerk zuzugreifen.
In Kombination mit dem zuvor erläuterten NT Symlink Abuse kann diese Technik den Pfad des geladenen Treibers vollständig verschleiern und so die Erkennung durch SysMon und andere Überwachungstools umgehen.
DriverJack demonstriert eine weitere, nichtkonventionelle Methode zum Laden verwundbarer Treiber, die emulierte CDFS-Dateisysteme und weniger bekannte NTFS-Symbolic-Link-Eigenschaften nutzt.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.