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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
revsuit — RevSuitは、ペネトレーションにおいてターゲットホストからの接続を受信するために設計された、柔軟で強力なリバースコネクションプラットフォームです。 | Kitploit
ツール/GitHubGitHub/li4n0/revsuit
ペネトレーションテストフレームワーク偵察脆弱性分析エクスプロイト情報収集ウェブセキュリティペネトレーションテストDNS分析
GitHubli4n0/revsuit

revsuit

RevSuitは、ペネトレーションにおいてターゲットホストからの接続を受信するために設計された、柔軟で強力なリバースコネクションプラットフォームです。

リポジトリを見る
564693年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

RevSuit - 柔軟で強力なリバースコネクションプラットフォーム

英語 |简体中文

概要

RevSuitは、ペネトレーションテストにおいてターゲットホストからの接続を受信するために設計された、柔軟で強力なリバースコネクションプラットフォームです。現在、HTTP、DNS、RMI、LDAP、MySQL、FTPプロトコルをサポートしています。

柔軟性:

  1. RevSuitは、異なる接続をキャプチャするための柔軟なルールを設定できます。
  2. バイナリでの展開と実行が可能で、厄介な依存関係エラーを心配する必要はありません。

強力さ:

  1. ルールを通じて異なる接続に対するレスポンスをカスタマイズでき、テンプレート変数を使用した動的なレスポンス生成をサポートします。
  2. 多種多様なプロトコルをサポートし、DNSリバインディング、MySQL Load Local Data、JDBCデシリアライズ悪用、FTPパッシブモードSSRFなど、一部のプロトコルの高度な活用をサポートします。
  3. スキャナーとの使用をネイティブでサポートします。
  4. 一般的なオフィスソフトウェアへのプッシュ通知をサポートします。
  5. その他の思慮深く詳細な機能。

基本的な使い方

インストールと設定

最新リリースを直接ダウンロードするか、以下の手順でビルドします:

root@kitploit:~
git clone https://github.com/Li4n0/revsuit.git
cd revsuit/frontend && yarn install && yarn build
cd ../ && go build ./cmd/revsuit/revsuit.go

RevSuitは初回実行時にデフォルトの設定ファイルを生成します。必要に応じて設定ファイルを変更し、再実行してください。設定ファイルの詳細な説明は、設定ノートにあります。

実行

IP位置情報を確認するには、IP位置データベースを使用する必要があります。デフォルトではQQwryがデータソースとして使用され、GeoIPを使用するように設定を変更することもできます。選択したデータベースがカレントディレクトリにないか、データベースが1週間以上更新されていない場合、RevSuitは自動的に最新のデータベースをダウンロードします。ダウンロードに失敗した場合、IpAreaフィールドは常にnullになります。

root@kitploit:~
$ ./revsuit   
2021/05/16 22:55:10 [ INFO] Downloading qqwry.dat...

    ____            _____       _ __ 
   / __ \___ _   __/ ___/__  __(_) /_
  / /_/ / _ \ | / /\__ \/ / / / / __/
 / _, _/  __/ |/ /___/ / /_/ / / /_  
/_/ |_|\___/|___//____/\__,_/_/\__/    
                                   vBeta0.1
     https://revsuit.pro
2021/05/16 22:55:22 [ INFO] Starting HTTP Server at :80, token:your_token
2021/05/16 22:55:22 [ INFO] Start to listen FTP PASV port at :2020, PasvIP is 10.9.8.7
2021/05/16 22:55:22 [ INFO] Starting FTP Server at :21
2021/05/16 22:55:22 [ INFO] Starting MySQL Server at :3306
2021/05/16 22:55:22 [ INFO] Starting RMI Server at :1099
2021/05/16 22:55:22 [ INFO] Starting DNS Server at :53

実行後、HTTPサーバーの/revsuit/admin/パスにアクセスし、トークンを入力してコントロールパネルにアクセスできます。

ルールの作成と接続の受信

HTTPルールの作成を例として説明します:

いくつかの注意点は以下の通りです:

  1. ルールのnameとflagFormatは一意です。
  2. FlagFormatは正規表現構文を使用し、プロトコルによってflagFormatがマッチするフィールドは異なります。ルール作成時に詳細を確認するには、対応するヒントを参照してください。
  3. ランクが高いルールが優先的に適用されます。
  4. 異なるプロトコルルールに対して、異なるカスタムレスポンスを作成でき、一部のプロトコルではテンプレート変数を使用できます。
  5. flagFormat内で正規表現の名前付きグループを設定でき、マッチンググループの結果もテンプレート変数として使用されます。

以下に示すように、HTTPプロトコルの組み込みテンプレート変数とカスタムテンプレート変数を使用し、test_create_ruleという名前のルールを作成します:

img.png

次に、ルールを満たすリクエストを行い、レスポンスを確認します。

img.png

リクエストは同時にプラットフォームにログとして記録されます。

img.png

通知

新しい接続をオフィスソフトウェアで通知したい場合は、設定ファイルで該当ソフトウェアのwebhookアドレスを設定し、対応するルールのNoticeスイッチをオンにしてください。現在サポートされているソフトウェアは、dingtalk, wechat, lark, slackの4種類のみです。(DiscordとTelegramのサポートは計画中です。)

ルールのインポート/エクスポート

プラットフォームを移行したりデータを削除する場合、ルールを再作成するのは面倒です。そのため、プラットフォームはルールのインポートとエクスポートをサポートしています。

この機能のエントリポイントはSettings>RULESにあります。

ルールはインポート・エクスポートのためにyaml形式で保存されます。以下のような形式です:

root@kitploit:~
http:
  - name: test_create_rule
    flag_format: (?P<what>\w+)\?
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "302"
    response_headers:
      Location: ${query.url}
    response_body: ${header.say} ${what}
  - name: other_rule
    flag_format: other
    rank: 1
    push_to_client: false
    notice: true
    response_status_code: "200"
    response_headers: { }
    response_body: Hello Revsuit!
dns:
  ... ...

高度な使い方

スキャナーとの連携

RevSuitは私のスキャナープロジェクトから分割されたもので、そのためスキャナーとのネイティブな連携が機能します。

RevSuitの観点からは、スキャナーをクライアントと呼びます。

接続の確立

RevSuitはHTTP Server-sent Events(SSE)を使用して、クライアントとの一方向通信チャネルを確立します。

チャネルのAPIは/revsuit/api/events?messageです。クライアントはまずヘッダーにToken: your tokenを追加し、その後APIにアクセスしてチャネルを確立します。プラットフォームが新しい接続を受信すると、ルールによってキャプチャされたflagがこのチャネルを介してクライアントに渡されます。 img.png

以下は、Golangのsseライブラリを使用した簡単なデモです。

マルチクライアント

上記のように、RevSuitは複数のクライアントをサポートしており、接続状態の各クライアントはflagのプッシュを受信するため、分散スキャニングが可能です。

すべてのクライアントがすべてのflagプッシュを受信したくない場合は、sse接続を作成する際にFlag-Filterリクエストヘッダーを使用して、そのクライアントに受信させたいflagの形式(正規表現)を設定できます:

img.png

一時保存キュー

RevSuitはクライアント接続がない場合、flagをキューに一時保存し、クライアントが接続したときに送信します。これにより、クライアントの切断によって脆弱性を見逃す心配がありません。(これは特に遅延トリガー型の脆弱性の発見に役立ちます。)

flagGroupの使用

実際の脆弱性スキャンシナリオでは、単一の脆弱性ポイントに対して多数の異なるペイロードを送信し、それらすべてが有効である可能性があります。その結果、リバースリンクプラットフォームは多くのリクエストを受信しますが、それらはすべて同じ脆弱性に起因します。同じ脆弱性に対してクライアントが多数のflagを受信したくない場合は、ルールのflagFormatのflagGroup機能を利用できます。

FlagGroupは、ルールのflagFormatフィールド内の匿名グループによってマッチされたコンテンツです。プラットフォームはグループ化でマッチしたコンテンツをチェックし、flagGroupが初めてキャプチャされたときにのみ、クライアントにフラグをプッシュします。

例えば、SSRFスキャンを考えます。

まず、以下のようなルールを作成します:

root@kitploit:~
http:
  - name: ssrf
    flag_format: (ssrf[a-z0-9]{6})[0-9]{1,3}
    rank: 0
    push_to_client: false
    notice: false
    response_status_code: "200"
    response_headers: { }
    response_body: "Here is a SSRF!"

ターゲットがhttps://www.testvuln.com?url=api.com&p=uselessで、SSRF用に5つのペイロードがあるとします。スキャナーが送信する最終的なリクエストは['https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni1&p=useless','https://www.testvuln.com?url=http://revsuit.com/ssrfa98oni2&p=useless', ... ,'https://www.testvuln.com?url=//revsuit.com/ssrfa98oni5&p=useless']のようになります。これらはすべて攻撃に成功する可能性があります。

しかし、ルールのflagFormatで匿名グループが使用されているため、プラットフォームは接続されたflagGroup(この場合はssrfa98oni)を照会し、最初に出現したときにのみflagをクライアントにプッシュします。そのため、クライアントはssrfa98oni1という1つのフラグのみを受信します。これにより、ターゲットのurlパラメータが脆弱であることがすでに証明されます。

マルチモジュール連携

実際のペネトレーションテストシナリオでは、RevSuitのさまざまなモジュールを組み合わせてマッチングさせることで、特定のタスクを簡単かつ迅速に実行できます。以下はJava WebにおけるBlind XXEの例で、RevSuitのHTTPモジュールとFTPモジュールをテンプレート変数と組み合わせて使用し、ポートスキャンを迅速に完了する方法を示しています。

まず、evil.dtdを返すHTTPルールを作成し、dtdの内容をカスタマイズしてRevSuitのFTPサービスに接続するようにし、テンプレート変数を使用してスキャン対象のHostとPortをFTPのユーザー名とパスワードを介してFTPに渡します。

create evil.dtd rule

次に、ユーザー名とパスワードのテンプレート変数からスキャン対象のHostとポートを受信し、Pasv Addressに設定するFTPルールを作成します。

create ftp scan rule

次に、BurpSuitを使用してスキャンを開始します。evil.dtd URLのhostとportパラメータを設定して、ポートスキャンのターゲットを指定します。

xxe

実行結果は以下の通りです:

ftp-scan

これは、Passive Addressにアクセスできない場合、FTP接続がクラッシュするためです。接続が正常に終了するかどうかに基づいて、ポートが開いているかどうかを判断できます。この例では、ポート8005と8080が開いていることを正常に検出しました。

その他の使い方

より詳細なwikiを準備中です。準備が整うまでは、ご自身で探索してください。

フィードバック、提案、連絡先

Issueを提出するか、Weixinで連絡してください: TGk0bjA2Cg==

謝辞

参考

このプロジェクトは以下の優れたプロジェクトのコードを参考にしています:

  • https://github.com/rmb122/rogue_mysql_server
  • https://github.com/256dpi/newdns
  • https://github.com/EmYiQing/JNDIScan

特に

このプロジェクトの開発中に受けたすべての助けとアドバイスについて、友人@E99p1antに感謝します。

ライセンス

@Apache License 2.0

ツールをダウンロード