生成一个混淆的 DLL,以禁用 AMSI 和 ETW。
作者:Sec-Labs | 发布时间:
项目地址
https://github.com/icyguider/LightsOut
LightsOut
LightsOut 会生成一个混淆的 DLL,可以在尝试逃避 AV 的情况下禁用 AMSI 和 ETW。这是通过随机化所有使用的 WinAPI 函数、XOR 编码字符串和利用基本沙箱检查来完成的。使用 Mingw-w64 将混淆的 C 代码编译为可以加载到任何存在 AMSI 或 ETW 的进程(例如 PowerShell)中的 DLL。
LightsOut 旨在在安装有 python3 和 mingw-w64 的 Linux 系统上工作。不需要其他依赖项。
目前的功能包括:
- 字符串的 XOR 编码
- WinAPI 函数名称随机化
- 多个沙箱检查选项
- 硬件断点绕过选项
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>]
生成一个混淆的 DLL,以禁用 AMSI 和 ETW
选项:
-h, --help 显示此帮助信息并退出
-m <method>, --method <method>
绕过技术 (选项:patch,hwbp) (默认值:patch)
-s <option>, --sandbox <option>
沙箱逃避技术 (选项:mathsleep、username、hostname、domain) (默认值:mathsleep)
-sa <value>, --sandbox-arg <value>
沙箱逃避技术的参数 (例如:WIN10CO-DESKTOP、testlab.local)
-k <key>, --key <key>
用于编码字符串的密钥(默认情况下随机生成)
-o <outfile>, --outfile <outfile>
要保存 DLL 的文件
预期用途/Opsec 考虑
这个工具是为了在渗透测试中使用,主要是执行恶意 PowerShell 脚本而不被 AV/EDR _阻止_。因此,该工具非常简洁,可以添加很多内容来改进 Opsec。不要期望这个工具完全逃避 EDR 的检测。
使用示例
您可以将输出的 DLL 传输到目标系统,并以各种方式将其加载到 PowerShell 中。例如,可以通过 P/Invoke 和 LoadLibrary 完成:

甚至更简单,将 PowerShell 复制到任意位置并侧向加载 DLL!

问候/Credit/进一步参考资料:
- @RastaMouse 的博客文章,介绍了修补 AMSI 的方法:https://rastamouse.me/memory-patching-amsi-bypass/
- @CCob/EthicalChaos 的博客文章,介绍了通过硬件断点进行无修补 AMSI 绕过的方法:https://ethicalchaos.dev/2022/04/17/in-process-patchless-amsi-bypass/
- @rad9800 的代码,该工具使用它来通过硬件断点绕过 AMSI 和 ETW:https://github.com/rad9800/misc/tree/main/hooks
标签:工具分享, 免杀工具, 主机安全