Nidhogg
Nidhogg是一个多功能rootkit,用于展示可以在内核空间执行的各种操作。Nidhogg的目标是提供一个多功能且易于使用的rootkit,具有多种有用的操作功能。此外,它还可以轻松地与您的C2框架集成。
Nidhogg可以在任何版本的64位Windows 10和Windows 11上运行。
该存储库包含一个内核驱动程序和一个与之通信的C++程序。
如果您想了解更多信息,请查看wiki以获取详细说明。
当前功能
- 进程隐藏和取消隐藏
- 进程提权
- 进程保护(防止终止和转储)
- 绕过pe-sieve
- 线程隐藏和取消隐藏
- 线程保护(防止终止)
- 文件保护(防止删除和覆盖)
- 注册表键和值保护(防止删除和覆盖)
- 注册表键和值隐藏
- 查询当前受保护的进程、线程、文件、隐藏端口、注册表键和值
- 函数修补
- 内置AMSI绕过
- 内置ETW补丁
- 进程签名(PP/PPL)修改
- 可反射加载
- Shellcode注入
- APC
- NtCreateThreadEx
- DLL注入
- APC
- NtCreateThreadEx
- 查询内核回调
- ObCallbacks
- 进程和线程创建例程
- 镜像加载例程
- 注册表回调
- 移除和恢复内核回调
- ETWTI篡改
- 模块隐藏
- 驱动程序隐藏和取消隐藏
- 凭据转储
- 端口隐藏/取消隐藏
- 脚本执行
- 初始操作
反射加载
从v0.3版本开始,Nidhogg可以使用kdmapper进行反射加载,但由于如果驱动程序注册回调,PatchGuard将自动触发,因此Nidhogg不会注册任何回调。这意味着,如果您反射加载驱动程序,以下功能将默认禁用:
- 进程保护
- 线程保护
- 注册表操作
脚本执行
从v1.0版本开始,Nidhogg可以执行NidhoggScripts - 一个允许依次执行多个命令的工具,从而为Nidhogg创建剧本。要了解如何编写脚本,请查看wiki
初始操作
从v1.0版本开始,Nidhogg还可以将NidhoggScripts作为初始操作执行。这意味着,如果它在项目目录的根目录(与Python文件相同的目录)中发现out.ndhg
文件,它将在每次驱动程序运行时执行该文件。
触发PatchGuard的功能
以下是已知会触发PatchGuard的功能,您仍可以自行承担风险使用它们。
- 进程隐藏
- 文件保护
基本用法
要查看可用命令,您可以运行NidhoggClient.exe
或查看wiki以获取有关如何使用每个命令、它接受的参数以及工作原理的详细信息。
NidhoggClient.exe
# 简单用法:隐藏进程
NidhoggClient.exe process hide 3110
设置
构建客户端
要编译客户端,您需要安装Visual Studio 2022,然后像其他Visual Studio项目一样构建项目即可。
构建驱动程序
要编译项目,您需要以下工具:
克隆存储库并构建驱动程序。
驱动程序测试
要在测试环境中进行测试,请在管理员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等工具中查看调试消息。
资源
贡献
非常感谢为这个项目做出贡献的以下人员: