通過 tcp/udp 命令 necat/socat 控制 PC
當我告訴伺服器執行此操作時,我想用 necat 或 socat 配置 PC 來執行腳本。
我有一個舊應用程序能夠發送首選的簡單消息 UDP。
消息儲存在播放列表中。
例子
假設我想向執行 netcat/socat 的 PC 發送一條消息以打開宏/腳本
"C:\Users\xxx\Desktop\script.bat"
伺服器需要監聽一個埠。並在收到命令時執行程序
我該怎麼做?我不知道如何開始我在網際網路上沒有找到任何東西。
PS。請不要介意 UDP 的安全性或可靠性;這是區域網路的事情,我不需要伺服器告訴我任何回复。
這是一個經典的用法
netcat
。但這就是unix.SE
我的答案將完全在 unix 中。注意:
netcat
在不同的發行版上有不同的名稱:
netcat``nc
:在某些發行版上的別名nc
: linux 上的 GNU netcat 或 *BSD 上的 BSD netcatncat
: Nmap netcat,在大多數係統上一致不同版本之間的選項各
netcat
不相同,我會指出不同版本可能表現不同的地方。此外,我強烈建議安裝 netcat (ncat
) 的 nmap 版本,因為它的命令行選項在不同系統中是一致的。我將
ncat
在答案中使用 netcat 名稱。TCP
要使用 TCP 來控制機器,
netcat
您有兩個選擇:使用命名管道(適用於所有版本的 netcat)和使用-e
(僅存在於 linux 版本中,或者更準確地說,-e
在 *BSD 上做一些完全不同的事情) .在伺服器端,您需要執行以下任一操作:
mkfifo pinkie ncat -kl 0.0.0.0 4096 <pinkie | /bin/sh >pinkie
其中:
0.0.0.0
是“所有介面”的佔位符,使用特定IP將其限制為特定介面;-l
是監聽並-k
保持打開(在單個連接後不終止)。另一個選項(在 linux/ncat 上)是使用:
ncat -kl 0.0.0.0 4096 -e /bin/sh
達到同樣的效果。
在客戶端,您可以使用您的應用程序或簡單地執行:
ncat <server ip> 4096
並且您可以控制伺服器上的外殼,並且可以發送命令。
UDP
UDP 類似,但有一些限制。
-k
沒有UDP 協議就不能使用-e
,因此需要使用 linux/ncat 來實現可重用的套接字。在伺服器端,您執行以下操作:
ncat -ukl 0.0.0.0 4096 -e /bin/sh
在客戶端(或從您的應用程序):
ncat -u <server ip> 4096
再一次你有一個工作的外殼。