Netcat

通過 tcp/udp 命令 necat/socat 控制 PC

  • August 20, 2016

當我告訴伺服器執行此操作時,我想用 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 netcat
  • ncat: 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

再一次你有一個工作的外殼。

引用自:https://unix.stackexchange.com/questions/299677