1

如何将 cmd.exe 绑定到 Python 中的端口?我想做与 Netcats "-e" 参数相同的事情。所以 Netcat 中的等价物是:

netcat -l -p 8080 -e cmd.exe

但我想自己用 Python 编写代码,而不使用 Netcat。那么这是怎么做到的呢?是否有任何功能/模块可以做到这一点?如何转换进程(cmd.exe)并使其成为服务器,以便在端口上运行?

4

2 回答 2

0
  1. 监听一个端口
  2. 读取输入
  3. 将其通过管道传输到 cmd.exe
  4. 发回输出
于 2011-07-19T13:52:32.140 回答
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 :-)

于 2011-07-19T14:09:33.477 回答