要約を繰り返しTomcatのミドルウェアの脆弱性

TOMCATミドルウェアの脆弱性再現

序文

侵入テストプロセスでは、比較的小さなPHPの駅が発生したので、Apacheは、あまりにも少し知っています。少しを知っているようにTomcatミドルウェアステーション、これはテスト環境の脆弱性を構築するために、彼は初めてなので、ピットはもう少しで独自の方法で遭遇。私がダウンしてピットに自分を入れて、みんなを助けるために願っています。

テスト環境を構築します

Tomcatのインストール(Windowsでインストールされます)

Java環境がインストールされています

JDKのインストール

JBKインストールパッケージをダウンロードする公式サイト:https://www.oracle.com/technetwork/java/javase/downloads/index.html

 

 

 

 

 

インストールと設定環境変数から抽出するために、プロンプトに従います。示すように成功した後:

 

 

 

アパッチTomcat7.0のインストール

ダウンロードします。http://www.liangchan.net/soft/download.aspはSoftID = 9366&downid = 8&ID = 9430?

デフォルトの設定に応じて全体の次の行

 

 

 

 

 

 

 

この必要性は、ノートを取る:これは、JavaのJREディレクトリで、間違ったインストールはできません。直接アクセスをインストールし:HTTP:// locahost:8080は以下の通りです

 

 

 

脆弱性の再現

Tomcatのリモートでコードが実行される脆弱性(CVE-2017から12615)

脆弱性の原因

(設定ディレクトリ)を添加/web.xml読み取り専用プロファイルはTomcatは、脆弱性が世代になりますconfの中でfalseに設定されている、(置く要求を許可する必要があります)

 改正前(ここでは、我々はノートを取る必要がある)、比較の前と後に設定ファイルを変更します。

 

 

 

 

 

デフォルトの読み取り専用では読み取り専用がfalseに設定されている場合、ファイルはPUT / DELETEを介して操作することができ、本当です。手動で読み取り専用に設定する必要があり、利用することができます偽。更新:

 

 

 

設定ファイルを変更した後、保存して再起動します。

PUTプロトコル(方法):PUTメソッドは、HTTP要求内のメソッドです。このメソッドは、リソース要求が既にサーバーに存在する場合、それは指定されたリソースの最新修正版として、この要求内のデータを元のデータに置き換えられます、リソースの要求に格納されたエンティティを要求するためにサーバーを要求するために使用されます。リクエスト指定されたリソースが存在しない場合は、リソースとデータビットリクエストボディを作成します。

脆弱性は、バージョンに影響を及ぼし

Apache Tomcatの7.0.0 - 7.0.81

ハザードの脆弱性

リモート・コードにサーバーが実行させます

脆弱性の再現

ダイレクト・アクセスURL:http://127.0.0.1:8088 /利用Etherealのburpsuite:404を返すshell.jsp提出に直接置きます。(私はこの問題で愚かな比較をしました)

  図コントラスト、正常前修飾:

 

 

 

  図修飾:( GETのPUTに直接取り込みます)

 

 

 

ファイル名をバイパスするように構築する必要があり、回避する方法が3つあります。

 

 

 

図:(間違った側には多くの時間を無駄に比較表をアップロードして、初めは)理由を見つけることができませんでした

 

 

 

示すように、成功したアップロード:(契約を置く資産計上さ、私がなぜ言っていないされています)

 

 

 

ビュー:

 

 

正常に書き込まれトロイの木馬は、接続をチョッパー。

 

リモートTomcatの脆弱性を展開

脆弱性のプロデュース

これは、ツールJSP / PHPサイトのリモート展開で、リモート管理者は唯一、トロイの木馬は、ハッカーのためにドアを開けてアップロードし、開発者がコードを展開するための便利な一方であなたは、サイトに公開することができ、WARファイル形式をアップロードする必要があります。

脆弱性の検出

:訪問してのHttp:// localhostを:ポート/マネージャの管理アドレスは、弱いパスワードやデフォルトのパスワードを試し、成功した着陸た場合、この脆弱性があります。

 

 

 

脆弱性の再現

  1. 弱いパスワードによって管理インタフェースをログに記録します

 

 

 

  1. 戦争パッケージをアップロード

 

 

 

  1. getshellへのその後の直接アクセス

 

 

 

ハザードの脆弱性

侵入者トロイの木馬のファイルは、サーバーを制御するために、戦争を構築することでアップロードすることができます。

バグ修正

Tomcatの適切な保護ソフトウェアをインストールするなど、パスワードの強度を高めるためにアップグレード

Tomcatのデシリアライズの脆弱性(CVE-2016から8735)

構築するためのテスト環境(成功していません)

Apache Tomcatのインストールを8.5.2

Tomcatのダウンロードします。http://tomcat.apache.org/

 

 

 

バージョン8.0をインストールします。

 

 

 

私たちは、バージョンを確認する必要があります

 

 

 

ビンをクリックします

 

 

 

ダウンロード可能なバージョンを確認するには

 

 

 

その上でローカルに直接ダウンロードエキス(無料インストール)。

その後、Tomcatを実行し、第1の方法は、CMDでバッチファイルを実行STARTUP.BAT環境変数を設定することであり、私は\ apacheの-tomcatに-8.5.2 binに第二の方法、実行CMDコマンドボックスを使用して、実行しますstartup.bat。図示のように:

何の環境変数JDKがないので、それは、与えられました

 

 

 

ソリューション:(私が原因と解決策は、非常に明確に書かれているインターネットから見つけます。)

https://blog.csdn.net/zhangchao19890805/article/details/50646644

 

 

 

ポートの競合がconf-> server.xmlの約69行、Webポートを変更することができます。図示のように:

 

 

 

すべての準備が整った後、CMDコマンドボックスでのstartup.batを実行します。Tomcatを実行するポップアップ表示されますボックスに示すように、オフにしないでください。直接ブラウザでの行に開きます。

 

 

 

 

 

 

サービスが正常に開始されました。

(前述)Jdk1.7.0_80インストール

脆弱性の説明

関連するOracle mxRemoteLifecycleListenerデシリアライゼーションの脆弱性(CVE-2016から3427)の以前のリリースとの脆弱性は、監視機能JmxRemoteLifecycleListener鉛の使用です。また、Oracleの修理の正式リリース後、Tomcatはリモートでコードが実行される原因とアップデートを修復することができませんでした。

脆弱性のための最も基本的な理由は、JMX監視を設定する際にTomcat JmxRemoteLifecycleListenerが行う使用方法によって引き起こされます。

脆弱性は、バージョンに影響を及ぼし

9.0.0.M11にApacheTomcat 9.0.0.M1

8.5.0 8.5.6にApacheTomcat

8.0.38へApacheTomcat 8.0.0.RC1

7.0.0 7.0.72にApacheTomcat

6.0.0 6.0.47にApacheTomcat

条件をエクスプロイト

JmxRemoteLifecycleListenerは、リモートでコードが実行されるため、外部モニタポート10001および10002を開く必要があります。

脆弱性の再現

必要な環境ツールキット:

カタリナ-JMX-remote.jar:

https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.2/bin/extras/catalina-jmx-remote.jar

グルーヴィー-2.3.9.jar:

http://central.maven.org/maven2/org/codehaus/groovy/groovy/2.3.9/groovy-2.3.9.jar

ysoserial.jar:

https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar

私たちは、以下の点を設定する必要が脆弱性を再現する前に:

30ラインの構成機能でのconf / server.xmlのポートJmxRemoteLifecycleListenerリスニング:(ないポートの競合に注意してください、あなた自身の手を加える)を有効に

<リスナクラス名= "org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiRegistryPortPlatform = "1001" rmiServerPortPlatform = "1002" />

 

 

 

あなたは、ポートJMXを設定した後、余分/ディレクトリに対応する我々Tomcatのバージョンはダウンカタリナ-JMX-remote.jarをダウンロードして、グルーヴィー-2.3.9.jar 2つのJARパッケージをダウンロードしてください。ダウンロード後libディレクトリに入れて完了です。

その後、我々はスクリプトを修正はcatalina.batのbinディレクトリに移動します。コマンドExecuteThe要求されたコメントの前に、このような行を追加します。(スペースに注意してください、手動で追加しました)

設定CATALINA_OPTS = -Dcom.sun.management.jmxremote.ssl = falseを-Dcom.sun.management.jmxremote.authenticate =偽

 

 

 

主な構成は、遠隔監視JVMの情報を開けないでください、Tomcatを起動するために構成設定することを意味しています。彼のSSLリンクを設定することで有効になっていないとアカウントを監視するために使用されていません。特定の構成は、Tomcatの使用を監視し、JMXを理解しようとすることができます。

すべての設定が正常に保存された後、この時点で、我々は、Tomcatを実行します。

1001渡すと、正常に実行するためにローカルサービスとRMIポート1002をリッスンするかどうか

 

 

 

成功を監視し、我々は、コマンドを実行するペイロードを構築するために始めました。まず、古いルーチン爆弾電卓。

ペイロードます。java -cp ysoserial-マスターv0.0.4.jar ysoserial.exploit.RMIRegistryExploit localhostの10001 Groovy1 CALC.EXE

 

 

 

(誰か他の人のマップではなく、段階右)爆弾の成功なし、前の手順が正しいないうち再生されています。私は、理由のJava環境かもしれません。

おすすめ

転載: www.cnblogs.com/zy-king-karl/p/11530147.html