【问题标题】:can bash be executed with stdin and stdout being a tcp socket可以使用标准输入和标准输出作为 tcp 套接字执行 bash
【发布时间】:2017-02-11 16:30:49
【问题描述】:

为了提供一些上下文,我正在尝试了解伪终端 (pty)。伪终端对用户进程(例如 bash)来说就好像它是真实的一样。这允许做各种好东西,如 telnet、ssh 等。

我的问题是,对于 telnet 之类的东西,是否可以只“执行”bash 并将标准输入和标准输出设置为远程客户端计算机的 tcp 连接。因为如果可以的话,那我就不完全理解使用伪终端的价值了

【问题讨论】:

    标签: c linux pty


    【解决方案1】:

    是的,这是可能的——事实上,这就是传统上针对网络服务的大量“shellcode”漏洞利用方式为攻击者提供了一个 shell——但您将无法像通常那样以交互方式控制它。这是因为套接字不是 tty。它不能将通过线路发送的字节转换为附加进程的信号(如^C^Z 等),它不能将 EOF 作为数据发送,它不能进行作业控制(暂停^Z,在后台暂停输入等),它不能传达模式切换(规范/“熟”模式与原始模式)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-01
      • 2013-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多