How I found my first RCE! から学ぶ

ソース:

medium.com

脆弱性:RCE、SSRF

 

訳:

私の方法論:

  1. 範囲内のドメインを収集しました。
  2. アクティブおよびパッシブのサブドメインの列挙を開始しました。
    パッシブ サブドメイン列挙に使用されるツール:  subfinder (Shodan、Chaos、GitHub、Sublist3r などのさまざまなサービスの API キーを使用)。
    アクティブなサブドメインの列挙には、Best DNS Wordlist の Assetnote Wordlist が使用されました。
  3. 約 219 個のサブドメインが見つかりました

wordlists.assetnote.io

https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt

 

 

4. 次のステップは、ステータス コードに基づいてライブ ドメインをフィルタリングして除外することでした。

5. ステータス コード 403 Forbidden を持つサブドメイン accounts.example.com がすぐに見つかりました。

 

6. そしてここからが実際の旅の始まりです。 

 

そこで私はFFuF と有名なSeclists の単語リストを準備して、ファジング スキャンを開始しました。

 

github.com

 CVE-2022–29464 に対して脆弱であると思われる エンドポイント /fileupload/toolsAny が見つかりました。 

 

CVE-2022–29464 は、Orange Tsaiによって発見された WSO2 の重大な脆弱性です。
この脆弱性は、認証されていない無制限の任意のファイルのアップロードであり、認証されていない攻撃者が悪意のある JSP ファイルをアップロードすることで WSO2 サーバー上で RCE を取得できるようになります。 

 

cve.mitre.org

脆弱なエンドポイントは /fileupload で、攻撃者はこれを使用して .jsp ファイルをアップロードし、被害者のマシンのリバース シェルにつながる可能性がありました。 

 

脆弱性を確認したら、次の課題は適切なエクスプロイトを見つけることでした。 これを行うには、Burp でリクエストをキャプチャしてリクエストを変更するか、開発されたエクスプロイトを使用するかの 2 つのアプローチがありました。
両方の手順を理解しましょう 

 

方法 1: Burpを使用する

  1. Burp Suiteでエンドポイントリクエストをキャプチャする
  2. メソッドをGETからPOSTに変更します。
  3. Content-Disposition ヘッダーに加えて、エンドポイント名とファイル名を入力します。
    例えば:

Content-Disposition: form-data; name=”../../../../repository/deployment/server/webapps/authenticationendpoint/MyShell.jsp”;filename=”MyShell.jsp

 

     4. POST 本文に、file.jsp が実行するコマンドを入力します。
         例えば:

<% out.print(“MyShell Uploaded here”); %>

 

     5. エンドポイント accounts.example.com/authenticationendpoint/MyShell.jsp  に移動すると、コマンドが実行されます。

 

方法 2: エクスプロイトを使用する

  1.  https://github.com/hakivvi/CVE-2022-29464 に移動します。
  2. Git でファイルをローカル マシンにクローンします。
  3. python3exploit.py https://accounts.example.com MyShell.jsp を使用してエクスプロイトを実行します
  4. エンドポイント https://accounts.example.com/authenticationendpoint/MyShell.jsp にアクセスします。
  5. あらゆるコマンドを実行できるようになります

その間、私は RCE を悪用し、同じドメイン accounts.example.com で waybackurls を使用していました。
そして、次のエンドポイントが私の目に留まりました。 https://accounts.example.com/shindig/gadgets/proxy?container=default&url=https://google.com

私はすぐにInteractsh クライアントを開き、ペイロードを貼り付けました。

 

 

同じ WSO2 も SSRF に対して脆弱であることが判明しました。 

 

ほなほな。