0x01 工具介绍
下载地址在末尾
0x02 功能简介
- 使用sgn编码,使用了 EgeBalci/sgn 提供的二进制文件。
- 支持aes/xor加密,uuid/words混淆,支持间接syscall和unhook两种模式下的callback,fiber,earlybird三种加载方式。
- 间接sysacll参考了SysWhispers3的项目,链接:klezVirus/SysWhispers3
- unhook使用了 自定义跳转函数的unhook方法 文中所讲述的方法,文中提到的github仓库 trickster0/LdrLoadDll-Unhooking 只实现了64位下的demo,我在 LdrLoadDll-Unhooking-x86-x64 中完善了32位和64位通用的一段代码。
- 由于采用了sgn对 shellcode 加密,再次使用 aes/xor 加密反而成了特征点,现在已经取消了后者的加密。
- 由于rust在编译words混淆模板的时间过长(实测编译cs的shellcode要40min),且单纯的uuid混淆效果不好,现在采用的方式是前百分之10的shellcode由words混淆,其余的由uuid混淆,比例可以自行在源代码中调整,目前的编译时间大约是1min。
- 其实模板的源文件也给大家了,大家完全可以自行修改规避静态查杀,也可以改成远程加载的方式
实现效果
7.25 对rust模板进行修改,可过核晶上线
5.20 新增Rust模板,测试如下:
5.1日师傅们的测试
微步云沙箱无检出
360(未开核晶):无检出
火绒:无检出
360(开启核晶):无检出(使用syscall和unhook两种方式生成的exe均成功绕过核晶)
0x03更新说明
2024.7.25 解决了部分bug,去除了对shellcode的加密,更改了rust混淆的方式,rust模板可过核晶,c模板可过火绒
2024.5.20 解决了部分bug,新增 rust 模板,使用方法见上面说明
2024.5.4 解决了部分bug,新增加 sgn 编码工具,增加静态规避效果
2024.5.1 优化了错误提示,解决了部分bug,优化了unhook模板,新增debug模式,可以选择是否打印中间加密/混淆过程,新增加编译好的Mac可执行文件
0x04 使用介绍
C模板
首先要配好gcc的环境,命令行运行gcc -v 有反应
个人测试gcc版本
gcc version 8.1.0 (x86_64-posix-sjlj-rev0, Built by MinGW-W64 project)
如果不一样可能会出现bug
Rust模板
注意:目前Rust模板只支持Unhook选项。
配置环境参考文章 Windows 下使用MSYS2,GNU,非MSVC环境安装Rust方法 ,个人安装的是 nightly 版本,但是stable版本应该也可以。
https://zhuanlan.zhihu.com/p/613466378
个人工具链配置
C:>rustup toolchain list
nightly-i686-pc-windows-gnu
nightly-x86_64-pc-windows-gnu (default)
其中 i686 是为了编译32位下目标设置的,可以使用rustup default nightly-x86_64-pc-windows-gnu调整默认工具链,工具使用时默认64位工具链就可以,但是如果需要编译32位loader需要安装 i686 的工具链,在上面的参考文章对应地方稍微改一下就行。
示例1
示例2
即在当前目录下生成 Program.exe
注意:syscall下的earlybird方式由于某些bug并没有使用间接syscall方式加载,尽量不要使用。
0x05 下载
WIndows版本:https://github.com/fdx-xdf/darkPulse/releases/download/v2.1/darkPulse_windows_2.1.zip
darwin版本:https://github.com/fdx-xdf/darkPulse/releases/download/v2.1/darkPulse_darwin_2.1.zip
原文:https://github.com/fdx-xdf/darkPulse
原文始发于微信公众号(渗透安全HackTwo):darkPulse用于生成各种各样的shellcode loader的工具免杀火绒 360核晶等|免杀相关
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论