Nidhogg 红队一体化Rootkit工具

Nidhogg 红队一体化Rootkit工具

Nidhogg简介

Nidhogg 是红队的多功能 Rootkit。Nidhogg 的目标是提供一个一体化且易于使用的 Rootkit,具有多种对红队参与有用的功能,可以通过单个头文件与您的 C2 框架集成,使用简单,您可以查看示例这里

Nidhogg 可在任何版本的 x64 Windows 10 和 Windows 11 上运行。

该存储库包含一个带有 C++ 标头的内核驱动程序,用于与其通信。

目前的特点

  • 进程隐藏和取消隐藏
  • 进程提权
  • 进程保护(防杀、防转储)
  • 绕过pe-sieve
  • 线程隐藏
  • 线程保护(防杀)
  • 文件保护(防删除、防覆盖)
  • 文件隐藏
  • 注册表项和值保护(防删除和覆盖)
  • 隐藏注册表项和值
  • 查询当前受保护的进程、线程、文件、注册表项和值
  • 任意内核读/写
  • 功能补丁
  • 内置 AMSI 绕过
  • 内置ETW补丁
  • 流程签名(PP/PPL)修改
  • 可以反射加载
  • Shellcode注入
    • APC
    • Nt创建线程Ex
  • DLL注入
    • APC
    • Nt创建线程Ex
  • 查询内核回调
    • Ob回调
    • 进程和线程创建例程
    • 图像加载例程
    • 注册表回调
  • 删除和恢复内核回调
  • ETWTI 篡改

反射负载

从 v0.3 版本开始,Nidhogg 可以通过kdmapper反射加载,但由于如果驱动程序注册回调, PatchGuard会自动触发,因此 Nidhogg 不会注册任何回调。这意味着,如果您以反射方式加载驱动程序,这些功能将默认被禁用:

  • 进程保护
  • Thread 保护
  • 注册表操作

PatchGuard 触发功能

这些是我所知道的会触发PatchGuard 的功能,您仍然可以使用它们,风险自负。

  • 进程隐藏
  • 文件保护
Nidhogg 红队一体化Rootkit工具

基本用法

它的用法非常简单,只需包含标题即可开始!

#include "Nidhogg.hpp"

int main() {
    HANDLE hNidhogg = CreateFile(DRIVER_NAME, GENERIC_WRITE | GENERIC_READ, 0, nullptr, OPEN_EXISTING, 0, nullptr);
    // ...
    DWORD result = Nidhogg::ProcessUtils::NidhoggProcessProtect(pids);
    // ...
}

设置

构建客户端

要编译客户端,您需要安装CMakeVisual Studio 2022,然后运行:

cd <NIDHOGG PROJECT DIRECTORY>\Example
mkdir build
cd build
cmake ..
cmake --build .

构建驱动程序

要编译该项目,您将需要以下工具:

克隆存储库并构建驱动程序。

驱动测试

要在测试环境中测试它,请使用提升的 cmd 运行这些命令:

bcdedit /set testsigning on

重新启动后,创建服务并运行驱动程序:

sc create nidhogg type= kernel binPath= C:\Path\To\Driver\Nidhogg.sys
sc start nidhogg

调试

要在测试环境中调试驱动程序,请使用提升的 cmd 运行以下命令并重新启动计算机:

bcdedit /debug on

重启后,您可以在DebugView等工具中看到调试消息。

下载地址

Nidhogg

转载请注明出处及链接

Leave a Reply

您的电子邮箱地址不会被公开。 必填项已用 * 标注