Python将cmd.exe绑定到端口

时间:2011-07-19 13:47:18

标签: python sockets netcat

如何将cmd.exe绑定到Python中的端口?我想做同样的事情 Netcats“-e”的说法。所以Netcat中的等值是:

netcat -l -p 8080 -e cmd.exe

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

2 个答案:

答案 0 :(得分:0)

  1. 收听端口
  2. 阅读输入
  3. 将其管道传输到cmd.exe
  4. 发回输出

答案 1 :(得分: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访问: - )