如何连接 netcat 中的 stderr?

如何连接 netcat 中的 stderr?

假设我有两个 shell(A 和 B)。我对第一个 shell 执行以下命令:

nc -lvp 7777 -e /usr/bin/bash

在第二个 shell 中我执行:

nc localhost 7777

之后,我在第一个第二个 shell 中输入“某些内容”,但是标准错误位于下面的第一个 shell 中:

bash: line 1: something: command not found

我想放标准错误在第二个 shell 中,而不是第一个 shell 中。我该怎么办?

答案1

这个想法是可行的。我刚刚做了一些测试,但由于引号问题无法让它工作。也许有人可以让它工作?

听众:

nc -lvp 7777 -e '/usr/bin/bash -c "bash 2>&1"'

但您可以手动执行此操作。从已打开的 shell 中,您可以使用 stderr 重定向启动另一个 shell。因此,在建立连接并拥有 shell 后,您可以运行以下命令。

bash 2>&1

它打开了另一个 shell,但这次 stderr 重定向到 stdout。

答案2

这在 Windows 上有效。基于此示例,您应该找到一种方法使其在 Linux 上工作。它运行两个 cmd.exe,但它完成了工作。

ncat 127.0.0.1 4444 -e "cmd /c (cmd 2>&1)"

相关内容