本工具是一款高度自动化的白加黑(DLL劫持)攻击辅助工具,旨在简化和加速红队操作中的DLL劫持攻击链。它实现了全流程自动化,能够在几分钟内完成从目标识别到最终Payload生成的全过程,显著提升了在攻防对抗中的效率。
开发ShadowSync的初衷是为了提升效率,它结合了ZeroEye的白程序自动挖掘逻辑与AheadLib的导出转发技术。目前其v1.0版本在绕过特定安全软件的测试中表现良好,能够在比赛中争取时间优势。当然,工具仍有改进空间,首次使用时建议在本地测试生成的文件,以确认其可用性。
实现原理
- 自动化挖掘(基于ZeroEye逻辑):工具会自动扫描指定目录下的所有
.exe文件,分析其导入表,并智能排除kernel32.dll、user32.dll等系统DLL,从而筛选出适合进行劫持的非系统DLL目标。
- 自动化导出转发(基于AheadLib逻辑):无需手动编写汇编跳转代码。工具采用链接器导出转发技术自动生成
.def文件,确保生成的“黑DLL”能将所有函数调用无缝转发给重命名后的“白DLL”(ApiHelp.dll),在维持原程序正常运行的同时,简化了编译流程。
- 自动化模板填充:自动将白程序名称填入DllMain的宿主进程判断逻辑中,并将用户输入的Shellcode插入预设的代码模板。
- 自动化编译:脚本自动调用
g++编译器,将生成的C++源代码编译为最终的DLL文件,完成自动化编译流程。
这里提到的 ZeroEye 是一个用于自动化扫描EXE文件导入表、筛选并复制非系统DLL的辅助工具,它与ShadowSync搭配使用能进一步提升效率。其开源项目地址如下:
https://github.com/ImCoriander/ZeroEye
环境要求
MinGW-w64环境
本工具依赖MinGW-w64环境进行编译,配置步骤如下:
# 1. 安装MinGW-w64
# 下载地址:https://sourceforge.net/projects/mingw-w64/
# 2. 配置环境变量
# 系统变量 PATH 中添加:C:\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin
# 3. 验证安装
g++ --version
# 应输出:g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0
使用方式
使用流程非常简单,仅需四步:
- 在GUI界面中输入需要扫描的目标目录路径。
- 输入C语言格式的Shellcode。
- 点击“Start Scan”按钮,工具会自动处理并在当前目录下生成
Output_ShadowSync_GUI文件夹。
- 将生成的子文件夹内的白程序、
ApiHelp.dll以及新生成的DLL这三个文件一并上传到目标机器并执行,即可完成上线。


免杀效果
在实际测试中,通过此方法生成的DLL文件能够有效规避部分安全软件的静态与动态检测。下图展示了在开启相关防护的情况下,Payload被成功加载执行。

工具获取
ShadowSync是一个开源工具,你可以通过以下地址获取源码,进行研究或在此基础上进行改进。对于此类开源实战项目,也欢迎到云栈社区与其他安全爱好者交流探讨。
项目地址: https://github.com/CURRYSY/ShadowSync/
|