【发布时间】:2017-01-11 10:15:00
【问题描述】:
我对通过 TCP/IP 协议运行 Windows API 有疑问。 例如,我想把远程机器的 cmd.exe 带到其他机器上(像 Netcat,完全模拟 TCP/IP 上的 cmd.exe)。我在网上搜索了用 python 来做,但找不到任何有用的东西。我可以使用 subprocess 和其他 python 功能来做到这一点,但它缺乏用户界面问题。我使用了这种代码:
import socket
import subprocess
import ctypes
HOST = '192.168.1.22'
PORT = 443
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while 1:
#send initial cmd.exe banner to remote machine
s.send(ctypes.windll.Shell32.ShellExecuteA(None,"open","cmd.exe",None,None,0))
#accept user input
data = s.recv(1024)
#pass it again to Shellexecute api to execute and return output to remote machine, fully simulating original CMD over TCP/IP
s.close()
【问题讨论】:
标签: python windows network-programming tcp-ip netcat