
Der Console Monitor Driver ist ein KMDF-Kernelmodus-Filtertreiber, der bestimmte Fast-I/O-Operationen (Eingabe und Ausgabe) erfasst, die an ConDrv gesendet oder von ConDrv empfangen werden. ConDrv ist ein Gerät, das von condrv.sys erstellt wird und den Datenverkehr zwischen der Konsolenanwendung (cmd/powershell/etc.) und der eigentlichen Konsole (conhost.exe) abwickelt.
Dieses Projekt basiert auf der Forschung, die für die Mimikatz-Erkennungstechnik Phase 2 durchgeführt wurde. Es enthält mehrere Projekte in der Projektmappe:
Der Console Monitor Driver ist ein KMDF-Kernelmodus-Filtertreiber, der bestimmte Fast-I/O-Operationen (Eingabe und Ausgabe) erfasst, die an ConDrv gesendet oder von ConDrv empfangen werden. ConDrv ist ein von condrv.sys erstelltes Gerät, das den Datenverkehr zwischen der Konsolenanwendung (cmd/powershell/etc.) und der eigentlichen Konsole (conhost.exe) abwickelt. Console Monitor ist eine C#-GUI-Anwendung, die dem Endbenutzer jeden Tastendruck oder jede Zeile anzeigt, die an die Konsole gesendet oder von ihr empfangen wurde. Der Nutzen dieser Anwendung ist gering, aber sie eignet sich hervorragend für Präsentationen und Debugging.
Die Console Monitor GUI-Anwendung erstellt eine Named Pipe und wartet auf eingehende Verbindungen. Alle Daten, die an die Named Pipe gesendet werden, werden in der GUI angezeigt. Der Treiber prüft, ob die Named Pipe vorhanden ist; wenn nicht, gibt er einen Fehler zurück und wird nicht installiert. Falls die Named Pipe vorhanden ist (GUI läuft), installiert er sich und sendet alles, was abgegriffen wird, an die Pipe.
Die folgenden Schritte müssen befolgt werden, damit es funktioniert:
Die zugrunde liegende Technik ist dieselbe wie zuvor beim ConsoleMonitorDriver, aber hier versucht der KMDF-Filtertreiber, statt alle Daten abzugreifen, mehrere Zeichenfolgen mit den Daten abzugleichen, die über den Treiber laufen. In diesem speziellen Fall wird der Titel der Konsolenanwendung gegen eine statische Zeichenfolge geprüft, und auch der Inhalt der Konsolenausgabe wird gegen mehrere statische Zeichenfolgen geprüft. Falls einer der Abgleiche zutrifft, wird über die Ereignisablaufverfolgung für Windows (ETW) ein Ereignis an das Ereignisprotokoll gesendet. Derzeit sind im Treiber 4 verschiedene Ereignisse definiert:
Um das System darauf vorzubereiten, diese Meldungen korrekt lesen zu können, muss die Datei event.xml mit (wevtutil.exe) installiert werden, dies wird jedoch im Skript install.ps1 abgedeckt.
Schritte, damit der Treiber funktioniert:
Natürlich können die Zeichenfolgen, die gegen den Titel und die Ausgabe abgeglichen werden, geändert werden, sodass mit dem Tool auch andere Schadsoftware/Werkzeuge erkannt werden können, wenn die Zeichenfolgen geändert werden.
Verwenden Sie einfach die Funktion Uninstall-Driver von install.ps1.
Umleitungen in Dateien werden nicht erkannt, da die Ausgabe nicht an das ConDrv-Gerät gesendet wird.