我可以通过 netcat 管道/重定向控制台应用程序以便远程使用它吗?

Jam*_*mie 10 networking linux console netcat

是否可以通过 netcat 对控制台应用程序的实例进行“管道化”,因此 netcat 正在侦听新连接stdinstdout通过网络连接重定向和重定向。

Sco*_*ott 16

那么,作为中记录维基百科netcat文件,还有一个-e,导致它产卵选项(ē xecute)在收到的连接的程序,在安装插座标准输入,标准输出,并且该过程的标准错误。用法示例:

nc -l -pport_number -eprogram_name

示例通常显示/bin/shbash用作program_name。不鼓励使用此选项,因为它基本上会打开一个匿名的、无密码的访问门户到您的机器。当然,这可以通过使用比 shell 功能更弱的程序(无法逃逸到 shell 的程序)来缓解,尽量减少对它的使用,并将其保密。尽管如此,最初的开发人员netcat强烈认为这个选项是一个坏主意,他们默认禁用它,并将其置于“GAPING_SECURITY_HOLE”编译选项下。本NetCat 教程和其他netcat文档中简要提到了这一点。

谷歌搜索让我在其他 Stack Exchange 站点上讨论了这个问题:Stack OverflowServer Fault。多个贡献者提供了以下技术来在不使用该-e选项的情况下做同样的事情(即,在禁用netcat-e选项的版本中):

在服务器上:
mkfifopipe_name
nc -l -pport_number <pipe_name   | program_name >pipe_name

在客户端:
nc server_machine_name  port_number

一些注意事项:

  • 在某些版本的netcat,-l暗示-p,所以你应该说 just-l然后是端口号。
  • 您可能希望将解决方案包装在一个while true循环中。