异或+反沙箱+请求状态码判断+数字签名
shellcode 是一段利用软件漏洞进行执行的机器码,
通常用汇编语言编写并被翻译为十六进制操作码,
因常被攻击者用于获取系统的命令终端shell接口,
所以被称为 shellcode。
免杀制作:
python的免杀说实话效果并没有C++好
各种shellcode加载器被查的很死
比如下面的线程加载器
其实要实现免杀我们还需在加载器中下点功夫,目前杀软对于Windows API
也有查杀特征(如RtlMoveMemory)
这里采取的方式是对整个shellcode加载器进行异或随机值加密,然后
再通过exec来执行我们的shellcode
如上图,先来到crypto_PigPig.py,这部分是我们的异或随机值加解密函数
(文章末尾回复免杀001获取源代码)
如上图这里是我们要对整个shellcode加载器进行异或加密处理,字符串要加r
其中shellcode我是通过base64在线网址加密base64的shellcode
print输出结果为
也就是加密成这种字节流的方式
然后再把加密的字节流放入到
decrypted.py下的strs
这里主要是有请求状态码是否是200并且不在沙箱中,我们才执行shellcode
这里请求的是百度的网址(干扰杀软),200回来满足后
如果if判断在沙箱的话就直接sys.exit()
其中沙箱的def函数is_sanbox如下图
利用了Windows API的 GetTickCount64 和 Sleep 函数
由于在沙箱中检测我们的木马需要一定时间,所以一旦大于该时间就判断我们在沙箱中
最后就是解密异或字节流再exec执行原本的shellcode加载器
接下来就是看看我们的免杀效果
首先就是pyinstaller.exe打包python程序的时候要加上图标
pyinstaller.exe -F -w -i 你的ico图标 decrypted.py
之后再通过sigthief.py注入数字签名,我这里注入的是奇安信的数字签名
查杀率8,还行
并且可以在360核晶安全防护下反弹shell执行命令均可
火绒和Defender都没问题
也可以尝试放入沙箱看看
直接分析失败
并且只有卡巴斯基检测到是木马
获取源代码下载链接
原文始发于微信公众号(PwnPigPig):Python免杀shellcode篇-过360等大部分杀软
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论