3月18日更新:沙箱全绿免杀 BY ZheTian
距离上次更新过了很久了。近日golang更新了1.18,优化了项目编译方式,意味着基于go的免杀项目又可以残喘一段时间了。
之前在社区看到大佬说加些无用函数过免杀,让我想到了Java的try case 。故意将项目报错使之进入case选项,在case里执行注入shellcode操作。说干就干,新项目在沙箱里全绿了,以及网友的测试。项目代码已经更新,请各位大佬自测。
注意使用go1.18版本------------3.18日更新----------------
ZheTian
ZheTian Powerful remote load and execute ShellCode tool,免杀shellcode加载框架
命令详解
-u:从远程服务器加载base64混淆后的字节码。
-r:从本地文件内读。
-s:读取无修改的原始文件,只能从本地加载
-o:参数为true自动向启动项添加自启模块。
-n:向管理员组创建用户,-n的参数即为账户,-p的参数为密码。需以管理员身份运行
-c:直接从命令行获取base64字符串。如:ZheTian -c ZmM0ODgzZTRmMGU4Yzg4YjUyMjA4YjQyM2M==...
·
如果releases里下载的可执行程序被安全软件查杀了,请下载源码重新编译一份!·
示例:
Base64字符串方式加载:
原始python代码:
buf = "\xfc\x48\x83\xe4\xf0\xe8\xc8\x8b\x52\x20\x8b\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x75..."
只需提取数组中的16进制代码:
\xfc\x48\x83\xe4\xf0\xe8\xc8\x8b\x52\x20\x8b\x42\x3c\x48\x01\xd0\x66\x81\x78\x18\x0b\x02\x75...
然后去除\x,得到: fc4883e4f0e8c88b52208b423c4801d0668178180b0275......
然后使用base64转码,得到: ZmM0ODgzZTRmMGU4Yzg4YjUyMjA4YjQyM2M0ODAxZDA2NjgxNzgxODBiMDI3NQ==
c、ruby等同理,Java之流的则是去除 ", 0x"。注意,是逗号空格0x byte buf[] = new byte[] { 0xfc, 0x48, 0x83, 0xe4, 0xf0, 0xe8, 0xc8, 0x00, 0x00, 0x00, 0x41};
获取到base64字符串之后可以选择放到远程服务器加载,使用-u 命令即可。也可以放到本地文件内,或者直接使用-c命令以命令行方式运行。如:ZheTian.exe -c ZmM0ODgzZTRmMGU4Yzg4YjUyMjA4YjQyM2M0ODAxZDA2NjgxNzgxODBiMDI3NQ==
原文件读取类型:
使用 ZheTian -h
命令可查看支持的语言。推荐使用Java、py、C语言。原文件无需进行任何修改即可直接加载,但是不支持放在远程服务器,只能通过本地 -s 命令读取,如: ZheTian -s C:/Windows/Temp/payload.java
编译:
go build -ldflags "-w -s" -o ZheTian.exe
可以使用
go build -ldflags "-w -s -H windowsgui" -o ZheTian.exe
实现无窗口运行。但是360偶尔会识别为恶意程序。如果目标机器无安全设备,可以尝试使用此命令打包,然后使用参数: -o true
实现写入启动项功能。
带图标编译:
先执行:go get github.com/akavel/rsrc
rsrc -manifest ZheTian.manifest -ico favicon.ico -o ZheTian.syso
再执行go build -ldflags "-w -s" -o ZheTian.exe
更多介绍:https://blog.csdn.net/qq_38376348/article/details/108318880
注意:打包的时候需指定是64位还是32位。默认会根据系统自动选择。 而在生成payload shellcode的时候也需要选择正确的位数,否则会加载失败。使用code字节码加载时一定要使用base64加密,否则无法解析!!
有问题可以提Issues,也可加联系方式。
项目地址:https://github.com/yqcs/ZheTian/
TCV:1
评论44次
麻烦搬帖子以后带上链接好吗?https://github.com/yqcs/ZheTian
目前测试下来,直接编译,360是还没杀
测试的多了,360要是云查杀,就GG
火绒过了
是呀。我本机实测360火绒都过了。上面一哥们编译的 时候就被火绒拦了
火绒过了
360还没测,这种方法过个defender很轻松
可以看看有篇文章 是讲多加几个编译参数能防止被杀的 一时想不起来了
推荐测试使用物理机装杀软,虚拟机不太好使
用原生的liteide编译都没被杀,是不是360不同地区还不一样啊。。。
也是呀。我本机有电脑管家、360杀毒、火绒安全。编译都没杀。。帖子下其他老哥的就给杀了
火绒生成的时候直接报毒了
怎么会,我刚装的完整版火绒。-s -w只是去除程序的debug和符号表。本身并不是恶意操作。所以单纯的一个程序直接使用这个命令为什么会被杀?除非程序内的恶意操作被检测到了
出现这个问题就挺怪的哥们。我今天才下载的火绒。
就怕不运行的时候免杀,一旦运行起来就被查杀
上周测试了一下动态查杀,执行命令的时候没有拦截。
这种东西一旦公布出来存活时间不长呀
用原生的liteide编译都没被杀,是不是360不同地区还不一样啊。。。
就怕不运行的时候免杀,一旦运行起来就被查杀
火绒生成的时候直接报毒了
怎么会,我刚装的完整版火绒。-s -w只是去除程序的debug和符号表。本身并不是恶意操作。所以单纯的一个程序直接使用这个命令为什么会被杀?除非程序内的恶意操作被检测到了
直接编译不带参数,360就不会杀
我带参数编译也没杀
直接编译不带参数,360就不会杀
编译的时候可以不选择-s -w标记。直接go build main.go。加上这个只是为了去除一些不必要的东西减少包的大小而已。GitHub的releases里面的几个打包好的程序,放了几周了,现在下载下来还是不会被杀的。我这个程序的原理只是将hex注入到内存中。又没有恶意操作。怎么会报毒
火绒生成的时候直接报毒了
怎么会,我刚装的完整版火绒。-s -w只是去除程序的debug和符号表。本身并不是恶意操作。所以单纯的一个程序直接使用这个命令为什么会被杀?除非程序内的恶意操作被检测到了
火绒生成的时候直接报毒了
见-ldflags "-w -s"必杀- -
有区别的。我使用-s -w360没杀,在执行开机自启+hidewindowgui的时候,提示可疑程序。我现在放在桌面的程序一周左右了,360云查杀还是没有报毒。github上releases的也是没报毒。只有在使用隐藏窗口加上开机自启的时候提示过一次。