
Rootkit per Windows per Intel x64 con oltre 25 funzionalità, che dimostra tecniche di rootkit compatibili con tutte le versioni di Windows 10 e Windows 11.
Nidhogg è un rootkit multifunzionale per mostrare la varietà di operazioni che possono essere eseguite dallo spazio kernel. L'obiettivo di Nidhogg è fornire un rootkit tutto-in-uno e facile da usare con molteplici funzionalità utili per le operazioni. Inoltre, può essere facilmente integrato con il tuo framework C2.
Nidhogg può funzionare su qualsiasi versione di Windows 10 x64 e Windows 11.
Questo repository contiene un driver del kernel con un programma C++ per comunicare con esso.
Se vuoi saperne di più, dai un'occhiata al wiki per una spiegazione dettagliata.
[!IMPORTANT]
Tutte le funzionalità sono state completamente testate fino a Windows 11 25H2. Se incontri un problema, apri una segnalazione dopo aver verificato che non esista già un'issue aperta.
[!WARNING]
Durante il caricamento riflessivo, alcune funzionalità verranno disabilitate per impostazione predefinita e lo scaricamento automatico e corretto dei moduli nascosti e l' unhooking dei callback non funzioneranno correttamente. È responsabilità dell'utente assicurarsi di scaricare manualmente eventuali moduli nascosti al termine del processo e di rimuovere eventuali callback se il driver di destinazione viene scaricato. In caso contrario, si potrebbero verificare instabilità del sistema o crash.
Dalla versione v0.3, Nidhogg può essere caricato riflessivamente con kdmapper ma poiché PatchGuard verrà attivato automaticamente se il driver registra callback, Nidhogg non registrerà alcun callback. Di conseguenza, se carichi il driver riflessivamente, queste funzionalità saranno disabilitate per impostazione predefinita:
Dalla versione v2.0, Nidhogg ha una nuova capacità chiamata "Nidhogg Object File" (NOF) per l'esecuzione di COFF in modalità kernel. Ciò significa che puoi scrivere il tuo codice in modalità kernel e compilarlo in un file COFF che ha accesso a:
Questa funzionalità non è compatibile con Virtualization Based Security (VBS) poiché viola sia HVCI che kCFG.
Dalla versione v1.0, Nidhogg può eseguire NidhoggScripts - uno strumento che permette di eseguire una serie di comandi uno dopo l'altro, creando così playbook per Nidhogg. Per vedere come scriverne uno, dai un'occhiata al wiki.
A causa della difficile manutenibilità e del fatto che non è una funzionalità molto popolare, è stata deprecata nella versione v2.0 e verrà rimossa nella prossima release major. Sarà sostituita da un'altra capacità chiamata "Nidhogg Object File" (NOF) per l'esecuzione di COFF in modalità kernel, che avrà accesso all'API di Nidhogg.
Dalla versione v1.0, Nidhogg può eseguire NidhoggScripts anche come operazioni iniziali. Ciò significa che, se trova il file out.ndhg nella radice della directory del progetto (la stessa directory del file Python), eseguirà il file ogni volta che il driver è in esecuzione.
A causa della difficile manutenibilità e del fatto che non è una funzionalità molto popolare, è stata deprecata nella versione v2.0 e verrà rimossa nella prossima release major. Sarà sostituita da un'altra capacità chiamata "Nidhogg Object File" (NOF) per l'esecuzione di COFF in modalità kernel, che avrà accesso all'API di Nidhogg.
[!CAUTION]
Le seguenti funzionalità sono note per attivare PatchGuard, puoi comunque usarle a tuo rischio.
Per vedere i comandi disponibili, puoi eseguire NidhoggClient.exe o consultare il wiki per informazioni dettagliate su come utilizzare ogni comando, i parametri che accetta e come funziona.
NidhoggClient.exe
# Simple usage: Hiding a process
NidhoggClient.exe process hide 3110
Per compilare il client, dovrai avere installato Visual Studio 2022 e poi costruire il progetto come qualsiasi altro progetto di Visual Studio.
Per compilare il progetto, avrai bisogno dei seguenti strumenti:
Clona il repository e costruisci il progetto:
git clone https://github.com/Idov31/Nidhogg.git --recurse-submodules
Per testarlo nel tuo ambiente di test, esegui questi comandi con cmd elevato:
bcdedit /set testsigning on
Dopo il riavvio, crea un servizio ed esegui il driver:
sc create nidhogg type= kernel binPath= C:\Path\To\Driver\Nidhogg.sys
sc start nidhogg
Per eseguire il debug del driver nel tuo ambiente di test, esegui questo comando con cmd elevato e riavvia il computer:
bcdedit /debug on
Dopo il riavvio, puoi visualizzare i messaggi di debug in strumenti come DebugView.
Un grande ringraziamento a queste persone che hanno contribuito al progetto: