1

Python で cmd.exe をポートにバインドするにはどうすればよいですか? Netcats の「-e」引数と同じことをしたい。したがって、Netcat での等価物は次のようになります。

netcat -l -p 8080 -e cmd.exe

しかし、Netcat を使用せずに、Python で自分でコーディングしたいと考えています。それで、これはどのように行われますか?これを行うことができる関数/モジュールはありますか? プロセス (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 シェルで遊ぶことができます。インターネット全体がこのポートにアクセスできないように注意してください.

于 2011-07-19T14:09:33.477 に答える