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


10

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


是的,但可能必须是一根衬管,这很好,管道是这样的。我不知道您是否可以通过pid告知nc和管道是否已在运行实例。您可以nc到ip并将其通过管道传输到正在监听的nc,然后通过管道将其传输到正在监听的nc等,然后通过管道传输到nc到ip。
barlop

我更改了标题是因为您所说的听起来更像是I / O 重定向,而不是使用管道(管道仅用于将一个进程的输出移至另一个进程的输入)。
2013年

@Breakthrough与管道有何不同?当他谈论IO重定向而不是谈论文件时,那么它与管道传输有何不同?
barlop

@barlop I / O重定向(<>)与管道(|)显着不同,尽管有时可以同时使用两者来实现等效的操作。同样,通过I / O重定向,您可以更改两个流的位置。管道只是将一个过程的标准输出重定向到另一个过程的标准输入。
突破

@Breakthrough看看我问过你什么。>和<当然不同于管道,因为<和>使用文件。但是他不是在谈论文件。我问你“ [IO重定向]与管道有何不同?因为他在谈论IO重定向而不是在谈论文件,那么它与管道有何不同?”
barlop

Answers:


16

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

nc -l -pport_number -e程序名

示例通常显示/bin/shbash用作program_name。不建议使用此选项,因为它基本上会在您的计算机中打开一个匿名的无密码访问门户。当然,这可以通过使用功能比外壳程序少的程序(没有能力逃脱到外壳程序的程序),最小化对它的使用并将其保密来缓解。但是,的原始开发人员netcat强烈感觉到此选项是一个坏主意,因为他们默认情况下将其禁用,并将其置于“ GAPING_SECURITY_HOLE”编译选项下。该NetCat教程和其他netcat文档中对此进行了简要介绍。

Google搜索使我在其他Stack Exchange网站上讨论了此问题:Stack OverflowServer Fault。多个贡献者提供了以下技术,无需使用该-e选项即可执行相同的操作(即,在禁用netcat-e选项的版本中):

在服务器上:
mkfifopipe_name
nc -l -p端口号<pipe_name   | 程序名>pipe_name

在客户端上:
nc server_machine_name  port_number

一些注意事项:

  • 在的某些版本中netcat-l暗含-p,因此您应该先说公正-l,然后说出端口号。
  • 您可能需要将解决方案包装成一个while true循环。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.