Socat 通过多个客户端/连接与特定主机(反向 shell)进行交互

Socat 通过多个客户端/连接与特定主机(反向 shell)进行交互

我有一个线程 c/c++ 应用程序,它提供了一个安装在多个 Linux 客户端上的 pty 反向 shell,它们都连接回同一个服务器/端口,
现在我需要找到一种可靠的方法来与特定主机进行交互,以便我可以例如稍后使用 bash 脚本/别名。

通过使用 socat,我认为它应该像继续监听并等待特定主机选择和分叉并与其 shell 交互,如果不是那个特定主机则关闭/退出,我认为这样的事情会起作用

socat TCP-LISTEN:8080,fork SYSTEM:'[ $(hostname) != "host.d.com" ] && { exit;}',pty,stderr

但它没有给我任何输出,我尝试使用一个简单的命令

socat TCP-LISTEN:8080,fork SYSTEM:'/usr/bin/id',pty,stderr

每次客户端连接时都会出现此错误

socat[1567] E write(5, 0x7faa9c802c00, 341): Input/output error

请记住,我得到了通常的 shell 等待输入,这个命令对于第一个连接的客户端来说工作正常

socat - TCP-LISTEN:8080

我也尝试使用 nmap 的 ncat --allow 选项ncat -lvvp 8080 --keep-open --max-conns 1 --allow some ip/host,但不幸的是我无法使用它,因为主机位于同一 IP 下

那么有没有办法解决这个问题,可以让我管理/选择/与多个反向客户端 shell 交互,而不必为每个客户端使用不同的端口,而且我将其保持简单以进行测试,但我需要它通过 SSL 工作,这就是我尝试使用 socat 和 ncat 的原因

我在 github 上看到了一些 python 项目,但它们都有缺陷,而且很弱

相关内容