此仓库包含在 test.cpp
和 bypass1.cpp
中实现的高级 Shellcode Loader 绕过技术示例。这些技术旨在规避检测并绕过现代安全机制,如 EDR(端点检测与响应)和 AV(杀毒软件)解决方案。
PS:用小于100kb以下的bin较稳定,因为线程池执行的内存分配限制,不然就得牺牲隐蔽性。
以下绕过技术在 test.cpp
中实现:
-
API 解析与动态调用
在运行时动态解析并调用 API,以避免静态检测。 -
API Hammering(API 锤击)
重复调用无害的 API 以混淆基于行为的检测机制。 -
字符串混淆与解密
对敏感字符串(如 API 名称、Shellcode)进行混淆,并在运行时解密以规避静态分析。 -
NTDLL 恢复与反 Hook
恢复原始、未 Hook 的ntdll.dll
,以绕过 EDR 放置的用户模式 Hook。 -
线程池执行 Shellcode
使用线程池执行 Shellcode,以模仿合法的应用程序行为。 -
远程线程注入
将 Shellcode 注入到远程进程中,以隐秘地执行负载。 -
加密 Shellcode 文件加载(
shellcode.bin
)
在运行时加载并解密加密的 Shellcode 文件(shellcode.bin
),以避免检测。
以下绕过技术在 bypass1.cpp
中实现:
-
API 哈希解析函数
使用哈希名称而非明文字符串解析 API 函数,以规避静态分析。 -
API Hammering(API 锤击)
与test.cpp
类似,重复调用无害的 API 以混淆基于行为的检测机制。 -
动态 API 解析
在运行时动态解析 API 函数,以避免静态检测。 -
解除
ntdll.dll
Hook
恢复原始、未 Hook 的ntdll.dll
,以绕过用户模式 Hook。 -
加密 Shellcode 文件加载(
shellcode.bin
)
在运行时加载并解密加密的 Shellcode 文件(shellcode.bin
),以避免检测。 -
线程池执行
使用线程池执行 Shellcode,以模仿合法的应用程序行为。 -
隐秘的内存分配
以隐秘的方式为 Shellcode 分配内存,避免触发可疑模式导致的检测。
-
使用您首选的方法生成原始 Shellcode 的
.bin
文件。 -
将文件重命名为
input.bin
,然后运行xor.py
。这将生成一个名为output.bin
的加密文件。 -
将
output.bin
重命名为shellcode.bin
,并将其放置在与可执行文件相同的目录中。 -
执行负载。
总结
test.cpp
:可以绕过腾讯、火绒和 Defender,但由于添加了针对 RuntimeBroker.exe 的远程注入功能,无法绕过 360。
bypass1.cpp
:可以绕过腾讯、火绒和 360,但无法绕过 Defender。
免责声明:
此仓库仅供教育和研究用途。此处展示的技术不应用于恶意目的。请始终确保遵守适用的法律法规。
Disclaimer:
This repository is for educational and research purposes only. The techniques demonstrated here should not be used for malicious purposes. Always ensure compliance with applicable laws and regulations.