
Windows-Hypervisor für Intel x64: defensiver Host-Hypervisor für Windows, entwickelt zur Abmilderung von Kernel-Level-Angriffen einschließlich BYOVD, kompatibel mit VMware und Hyper-V.
NovaHypervisor ist ein defensiver x64 Intel Host-basierter Hypervisor. Das Ziel dieses Projekts ist es, vor Kernel-basierten Angriffen (entweder über Bring Your Own Vulnerable Driver (BYOVD) oder andere Mittel) zu schützen, indem Verteidigungsprodukte (Antivirus / Endpoint Protection) und Kernel-Speicherstrukturen geschützt und unbefugter Zugriff auf Kernel-Speicher verhindert werden.
NovaHypervisor ist in C++ und Assembly geschrieben und so konzipiert, dass es unter Windows 10 und späteren Versionen kompatibel läuft. Siehe Abschnitt Einrichtung für weitere Informationen zur Verwendung.
[!IMPORTANT]
Der Hypervisor wurde unter Windows 11 25H2 und mehreren Windows 10-Versionen getestet. Wenn ein Problem auftritt, öffnen Sie bitte ein Issue, nachdem Sie überprüft haben, dass es nicht bereits ein offenes Issue gibt.
✅ - Unterstützt und getestet
⌛ - In Arbeit
❌ - Nicht unterstützt und nicht geplant
| Hypervisor | Unterstützt |
|---|
Um NovaHypervisor zu verwenden, müssen Sie einen Kernel-Dienst erstellen und starten:
sc create NovaHypervisor type= kernel binPath= "C:\Path\To\NovaHypervisor.sys"
sc start NovaHypervisor
Dann können Sie mit der Anwendung NovaClient die Adressen hinzufügen und entfernen, die Sie schützen möchten:
REM Add an address to protect
NovaClient.exe protect 0x12345678 <r|w|x> <execution hook>
REM Remove an address from protection
NovaClient.exe unprotect 0x12345678
protect: Schützt eine Speicheradresse vor Zugriff. Sie können die Art des Schutzes angeben:
r: Leseschutzw: Schreibschutzx: Ausführungsschutz
Der Schutz, den Sie angeben, ist der Schutz, den die Adresse haben wird. Wenn Sie z. B. Ausführungsberechtigungen entfernen möchten, verwenden Sie "rw".unprotect: Entfernt den Schutz von einer Speicheradresse.
[!NOTE] Execution Hook per Inline Hook + EPT-Hooks werden nicht unterstützt und werden für dieses Projekt nicht unterstützt, um Missbrauch zu verhindern.
Zum Kompilieren des Projekts benötigen Sie:
Um den Hypervisor auszuführen, benötigen Sie eine Windows 10 oder höher Version auf Ihrem Rechner. Außerdem benötigen Sie:
NovaHypervisor protokolliert auf den zweiten seriellen Port (COM2, E/A-Port 0x2F8) mit einem kleinen COM-Logger, der auf HIGH_LEVEL IRQL und in VMX-Root-Pfaden laufen kann. Es sendet Debug-, Info- und Fehlereinträge mit einem festen NovaHypervisor-Präfix.
bcdedit /dbgsettings serial debugport:2 baudrate:115200
Erfassen Sie die Ausgabe von der Host-seitigen seriellen Pipe oder dem konfigurierten COM2-Endpunkt Ihrer VM bei 115200 8N1. In PuTTY können Sie sich beispielsweise mit dem für die VM konfigurierten seriellen Transport verbinden und die Protokollzeilen beobachten, während der Treiber läuft. Sie können auch das Skript connect-vm.ps1 verwenden, um eine Verbindung zum COM2-Port der VM herzustellen und die Protokolle in der Konsole anzuzeigen.
Um es in Ihrer Testumgebung zu testen und zu debuggen, führen Sie diese Befehle in einer als Administrator ausgeführten Eingabeaufforderung aus und starten Sie dann Ihren Rechner neu:
bcdedit /set testsigning on
bcdedit /debug on
bcdedit /dbgsettings net hostip:<HOSTIP> port:55000 key:1.2.3.4
Wobei <HOSTIP> die IP-Adresse Ihres Host-Rechners ist.
Sinaei: Für seine Hilfe bei der Beantwortung meiner Fragen und für seine erstaunliche Arbeit an HyperDbg und Hypervisor From Scratch.
Humza: Für seine Hilfe beim Beheben von Fehlern und Vorschlagen von Verbesserungen.
memN0ps: Für seine Hilfe bei der Beantwortung meiner Fragen und für das Verweisen auf die richtigen Ressourcen.
| VMware | ✅ |
| Hyper-V | ✅ |
| Hyper-V mit VBS | ⌛ |
| VirtualBox | ❌ |
| QEMU | ❌ |
| KVM | ❌ |