これは、VBScript & WSH(Windows Scripting Host)用です


履歴



はじめに
StreamRelay.NET.exeを用いて、HostHeaderを操作しながらWebサーバにアクセスし、SSRF可能かどうか調べるツールです。

想定としては、調査対象のWebサーバの手前に(ステルスな)Webリバースプロキシが存在していて、それが内部ネットワークへの"匿名プロキシ"のような状態になっているような場面を想定しています。

想定しているネットワークの図


WSH なので、処理自体が遅いです。

SSRFのURLリストは、ここから入手できます。
C:\>cscript ssrfHostPoisonCheck.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.

usage: cscript.exe ssrfHostPoisonCheck.vbs <<ListFile>> <<TargetHost/IP>> <<TargetPort>> <<Options>>
      Options
           -ssl : Enable SSL/TLS
           -VirtualHostName <<HostName>> : Set VirtualHostName
           -RoleName <<RoleName>> : Set Role-Name
           -DefaultPath <<Path>> : Set Default URL Path
           -SSLProtocolCheck : SSL/TLS Protocol Check
           -HttpMethodCheck : HTTP Method Check
           -HttpHeader <<name:value>>: HTTP Header added

                  ver1.5
                  create by active@window.goukaku.com





リストファイルについて


SSRFのURLリストは、ここから入手できます。
例えば、こんな感じ
リストファイルの例
169.254.169.254/latest/user-data
169.254.169.254/latest/meta-data/
169.254.169.254:80/latest/user-data
# リクエストヘッダ付きで送信するリクエストメッセージ
169.254.169.254:80/latest/meta-data/
X-Request: XmlHttpRequest
# Delegateの多段プロキシのURL /-_-http://www.example.com/



ソースの説明
省略


使い方
  1. StreamRelay.NET.exeをどこかにインストールします。
  2. ダウンロードしたファイルを解凍しします。
  3. 解凍して出来た ssrfHostPoisonCheck.vbs がスクリプトファイルです。
  4. スクリプトファイル中の「StreamRelay.NET.exe」のパスを自分の環境に合わせて書き直してください
  5. あとは、コマンドラインで操作してください



削除方法
スクリプトファイルを消してください
レジストリを操作した場合は、該当レジストリを削除してください


免責など
当然ですが、悪用厳禁です。

修正BSDライセンスで配布します。


SSRFのリストとか参考リンクとか・・・
こんなところですかね...


DownLoad(ssrfHostPoisonCheck.zip as 6,114byte) (ssrfHostPoisonCheck.zip.base64)

これを使った記事を書いた



mail to active@window.goukaku.com