从 NetCat 获取更多输出

从 NetCat 获取更多输出

目前我正在使用该标准netcat -e /bin/sh来提供远程 shell 供其他计算机访问。

但问题是这个 shell 相当糟糕,因为它的输出有限。例如,如果我发送一些无效的命令xxxxx,我将不会从机器得到任何响应,但在机器上,终端上会出现错误,显示/bin/sh: xxxxx: not found

如果我使用 shell 启动控制台应用程序,通常我看不到控制台应用程序输出的任何内容,并且我无法Ctrlz通过 shell,因为这会关闭计算机上的 netcat。这是一团糟,我希望它像 SSH 一样工作(我不能使用它)。

/bin/sh是否可以创建一个自定义应用程序来显示终端中的所有输出,而不是像我使用 netcat 那样将所有内容通过管道传输?是否有可能以某种方式从终端获取文本,无论写入的是什么进程?

是否可以sshd在盒子上启动,然后netcat -e "ssh root@localhost"这样做? (我已经尝试过这个,似乎不起作用)。

我正在寻找任何类型的解决方案。

答案1

创建“自定义应用程序”将重新实现 telnet / ssh。这当然是可能的,但不是必需的。

如果主机上有 sshd (或 telnetd),您可以使用 例如 从 netcat-shell 会话启动它,/usr/sbin/sshd -p <port> -D 2>&1然后ssh -p <port> root@<host>在您的客户端上执行此操作。您可能需要向 sshd 添加更多选项,也许创建一个配置文件并在命令行中给出它:/usr/sbin/sshd -f <config-file> ...

如果没有,您可以使用 netcat 会话上传 telnetd 或 sshd,设置所需的环境/配置并在某个端口上运行它。

您还可以在 shell 周围创建一个包装器,将 stderr 重定向到 stdout,例如/bin/sh 2>&1,这将允许您在 netcat 会话中看到 stderr,但不会为您提供“真正的终端”功能。

另一种选择是DISPLAY=<client>:0 xtrem主机上有 xterm 或同等版本,客户端上有 X Server。

相关内容