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

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

当我告诉服务器执行此操作时,我想使用 necat 或 socat 配置 PC 来执行脚本。

我有一个旧的应用程序能够发送简单的消息 UDP 首选。

该消息存储在播放列表中。

在此输入图像描述

例子

假设我想发送一条消息以打开宏/脚本到运行 netcat/socat 的 PC

"C:\Users\xxx\Desktop\script.bat"   

服务器需要侦听端口。并在收到命令时执行程序

我该怎么做?我不知道如何开始,我在互联网上找不到任何东西。

附言。请不要介意 UDP 的安全性或可靠性;这是局域网的事情,我不需要服务器告诉我任何信息。

答案1

这是 的经典用法netcat。但这是unix.SE我的答案将完全在unix中。

注意:netcat在不同的发行版上有不同的名称:

  • netcatnc:某些发行版上的别名
  • nc:Linux 上的 GNU netcat 或 *BSD 上的 BSD netcat
  • ncat:Nmap netcat,在大多数系统上一致

不同版本之间的选项netcat有所不同,我将指出不同版本可能表现不同的地方。此外,我强烈建议安装 netcat () 的 nmap 版本,ncat因为它的命令行选项在不同系统中是一致的。

我将在ncat整个答案中使用 netcat 名称。

传输控制协议

要使用 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

您可以控制服务器上的 shell,并且可以发送命令。

UDP协议

UDP 类似,但有一些限制。-k没有 UDP 协议就无法使用-e,因此需要使用 linux/ncat 来实现可重用的套接字。

服务器端你做:

ncat -ukl 0.0.0.0 4096 -e /bin/sh

并在客户端(或从您的应用程序):

ncat -u <server ip> 4096

你又拥有了一个可以工作的 shell。

相关内容