2011-07-19 55 views
1

如何將cmd.exe綁定到Python中的端口上?我想要做和 Netcats「-e」相同的事情。所以在Netcat equivilent將是:Python將cmd.exe綁定到端口

netcat -l -p 8080 -e cmd.exe 

但我想自己在Python中編碼它,而不使用Netcat。那麼 是如何完成的?有沒有任何功能/模塊可以做到這一點?我如何轉換進程(cmd.exe)並將其設置爲服務器,以便在端口上運行?

回答

0
  1. 聽一個端口
  2. 讀輸入
  3. 管它cmd.exe的
  4. 發回輸出沿此線
0

東西,除非你將不得不將其更改爲在Windows上運行(此示例在Linux上運行良好):

#!/usr/bin/env python 

import socket 
import subprocess 

s = socket.socket(socket.AF_INET) 
s.setsockopt(socket.IPPROTO_IP, socket.SO_REUSEADDR, 1) 
s.bind(("", 9999)) 
s.listen(1) 
(conn, address) = s.accept() 

p = subprocess.Popen(["/bin/bash"], 
        stdin=conn, stdout=conn, stderr=conn) 

如果你運行這個程序,然後在另一個終端使用netcat連接到端口9999,你將有一個bash shell來玩。注意不要讓整個互聯網訪問這個端口,這將給予任何人在你的機器上的即時shell訪問:-)