我有一个线程的c / c ++应用程序,它提供了一个安装在多个linux客户机上的pty reverse shell,它们都连接到同一个服务器/端口
现在我需要find一个可靠的方法来与特定的主机交互,所以我可以例如bash脚本/以后别名。
通过使用socat我认为它应该像保持倾听,并等待特定的主机select和分叉,并与它的壳交互,closures/退出,如果它不是特定的主机,我认为这样的东西会工作
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等待input这个命令这工作正常的第一个客户端连接
socat - TCP-LISTEN:8080
我也尝试使用nmap的ncat –allow选项ncat -lvvp 8080 --keep-open --max-conns 1 --allow some ip/host但不幸的是我不能使用它,因为主机在相同的IP
那么是否有任何解决scheme,这个问题将允许我pipe理/select/与多个反向客户端shell交互,而不必为每个客户端使用不同的端口也是我保持它明白的testing,但我需要它工作在SSL这就是为什么我试图与socat和ncat
我已经看到了github上的一些python项目,但他们都是越野车和软弱