LightsOut 将生成一个混淆的 DLL,用于禁用 AMSI 和 ETW,同时尝试规避杀毒软件。它通过随机化所有使用的 WinAPI 函数、对字符串进行 XOR 编码以及利用基本沙箱检查来实现这一点。使用 Mingw-w64 将混淆后的 C 代码编译成 DLL,可加载到任何存在 AMSI 或 ETW 的进程中(例如 PowerShell)。
LightsOut 设计在安装了 python3 和 mingw-w64 的 Linux 系统上运行。无需其他依赖。
当前功能包括:
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>] [-p <pid>]
Generate an obfuscated DLL that will disable AMSI & ETW
options:
-h, --help show this help message and exit
-m <method>, --method <method>
Bypass technique (Options: patch, hwbp, remote_patch) (Default: patch)
-s <option>, --sandbox <option>
Sandbox evasion technique (Options: mathsleep, username, hostname, domain) (Default: mathsleep)
-sa <value>, --sandbox-arg <value>
Argument for sandbox evasion technique (Ex: WIN10CO-DESKTOP, testlab.local)
-k <key>, --key <key>
Key to encode strings with (randomly generated by default)
-o <outfile>, --outfile <outfile>
File to save DLL to
Remote options:
-p <pid>, --pid <pid>
PID of remote process to patch
预期用途/操作安全考量
此工具设计用于渗透测试,主要目的是执行恶意 PowerShell 脚本而不被杀毒软件/EDR 拦截。因此,该工具非常精简,有很多可以改进操作安全性的地方。不要指望此工具能完全规避 EDR 检测。
使用示例
你可以将输出的 DLL 传输到目标系统,并通过多种方式将其加载到 PowerShell 中。例如,可以通过 P/Invoke 使用 LoadLibrary 加载:

或者更简单,将 PowerShell 复制到任意位置并侧加载 DLL!

致谢/参考/进一步资料: