“反向 shell”- 使用人为控制的输入从远程主机提取 shell 命令?

“反向 shell”- 使用人为控制的输入从远程主机提取 shell 命令?

我想连接到远程计算机(最好通过 SSH),然后从那里提取命令。

准确地说,我想让一台远程计算机连接到我的本地计算机,在本地计算机上我将有一个交互式控制台,发送命令并查看输出。
从功能上来说,它类似于 Windows 远程助手,或者叫什么名字。

我可以想象我会实现一个具有 GUI 的 HTTP 服务器,并且根据请求,它将永远保持连接并将我键入的任何行发送到 GUI;并接收对方发送的所有内容作为其输出。我只需要处理 HTTP 标头。然而,这不太优雅。

有没有现成的解决方案?或者可以使用nc一些工具将 TTY 与监听端口连接起来?

答案1

如果你运行:

socat "unix-listen:$HOME/.shell-access,mode=600,fork" \
      "exec:$SHELL,pty,stderr,setsid,ctty"

例如,这允许您执行以下操作:

socat -,raw,echo=0 "unix:$HOME/.shell-access"

在本地,与该 shell 连接并交互。

然后你可以通过 ssh 进行远程端口转发:

ssh -R "/path/to/socket/on/host:$HOME/.shell-access" user@host

(假设 openssh 版本相对较新(客户端和服务器))。

然后userhost可以通过这样做与该 shell 进行交互

socat -,raw,echo=0 "unix:/path/to/socket/on/host"

$SHELL您可以运行screen -xRS some-screen-session来附加给定的会话,而不是运行,screen以便多个人可以看到相同的屏幕会话。

答案2

与传统的netcat。

服务器:

$ nc.traditional  -lvp 1234 -e /bin/sh

客户:

$ nc -nv <ip> 1234

您还可以通过 ssh 转发端口。

答案3

我想让远程计算机连接到我的本地计算机,在那里我将有一个交互式控制台

在您的语言环境机器上创建监听:

socat file:`tty`,raw,echo=0 tcp-listen:PORT

在远程计算机上键入以下命令:

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:YOUR_IP_ADDRESSE:PORT

相关内容