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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
jarm — アクティブなTLSサーバーフィンガープリンティングツールで、カスタマイズされたClient Helloパケットを送信してユニークなJARMハッシュを生成し、サーバー設定の識別、インフラのグループ化、悪意のあるサーバーの検出を行います。 | Kitploit
ツール/GitHubGitHub/salesforce/jarm
偵察情報収集ネットワークセキュリティ脅威インテリジェンス
GitHubsalesforce/jarm

jarm

アクティブなTLSサーバーフィンガープリンティングツールで、カスタマイズされたClient Helloパケットを送信してユニークなJARMハッシュを生成し、サーバー設定の識別、インフラのグループ化、悪意のあるサーバーの検出を行います。

リポジトリを見る
1.3k1517日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

JARM

詳細については、最初の JARM ブログ記事 をお読みください。

JARM はアクティブな Transport Layer Security (TLS) サーバーフィンガープリンティングツールです。

JARM フィンガープリントは以下の用途に使用できます。

  • グループ内のすべてのサーバーが同一の TLS 設定を持っているかを迅速に確認する。
  • インターネット上の異なるサーバーを設定ごとにグループ化し、例えば Google、Salesforce、Apple のどれに属するかを識別する。
  • デフォルトのアプリケーションやインフラストラクチャを特定する。
  • マルウェアのコマンド&コントロールインフラストラクチャや、インターネット上のその他の悪意のあるサーバーを特定する。

JARM のサポートは以下のサービスに追加されている、または追加が進められています。 SecurityTrails Shodan BinaryEdge RiskIQ Palo Alto Networks Censys 360

JARM の実行

python3 jarm.py [-h] [-i INPUT] [-p PORT] [-v] [-V] [-o OUTPUT] [-j] [-P PROXY] [domain/IP] 例: % python3 jarm.py www.salesforce.com Domain: www.salesforce.com Resolved IP: 23.50.225.123 JARM: 2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5

Python 2 で使用するには ipaddress モジュールが必要です。

pip install -r requirements.txt

大規模リストに対する JARM の一括高速実行

./jarm.sh <list> <output_file> 例: % ./jarm.sh alexa500.txt jarm_alexa_500.csv

出力例

JARM の動作原理

JARM の動作を理解する前に、TLS の仕組みを理解することが重要です。TLS とその前身である SSL は、インターネットブラウザのような一般的なアプリケーションの通信を暗号化してデータを保護するため、またマルウェアがノイズに紛れるためにも使用されます。TLS セッションを開始するには、クライアントは TCP 3 ウェイハンドシェイクの後に TLS Client Hello メッセージを送信します。このパケットとその生成方法は、クライアントアプリケーションの構築に使用されたパッケージやメソッドに依存します。サーバーは TLS 接続を受け入れる場合、TLS Server Hello パケットで応答します。

TLS サーバーは、受信した TLS Client Hello パケットの詳細に基づいて Server Hello パケットを構成します。特定の Client Hello に対する Server Hello の構成方法は、アプリケーションやサーバーの構築方法によって異なります。その要因には以下が含まれます。

  • オペレーティングシステム
  • オペレーティングシステムのバージョン
  • 使用されているライブラリ
  • 使用されているライブラリのバージョン
  • ライブラリが呼び出される順序
  • カスタム設定

これらの要因により、各 TLS サーバーは独自の方法で応答します。これらの組み合わせにより、異なる組織によって展開されたサーバーが同じ応答を持つ可能性は低くなります。

JARM は、対象の TLS サーバーに 10 個の TLS Client Hello パケットを積極的に送信し、TLS Server Hello 応答の特定の属性をキャプチャすることで動作します。収集された TLS サーバーの応答は、特定の方法でハッシュ化され、JARM フィンガープリントが生成されます。

これは弊社が TLS フィンガープリンティングに取り組んだ初めてのケースではありません。2017 年には、パッシブな TLS クライアント/サーバーフィンガープリンティング手法である JA3/S を開発しました。これは現在、ほとんどのネットワークセキュリティツールに搭載されています。しかし、JA3/S がネットワークトラフィックを傍受してクライアントとサーバーを受動的にフィンガープリントするのに対し、JARM はアクティブなサーバーフィンガープリンティングスキャナーです。TLS ネゴシエーションと JA3/S パッシブフィンガープリンティングの詳細についてはこちらをご覧ください。

JARM の 10 個の TLS Client Hello パケットは、TLS サーバーからユニークな応答を引き出すために特別に作成されています。JARM は、異なる TLS バージョン、暗号スイート、拡張を様々な順序で送信し、ユニークな応答を収集します。サーバーは TLS 1.3 をサポートしているか?TLS 1.2 の暗号スイートで TLS 1.3 をネゴシエートするか?暗号スイートを弱いものから強いものへと並べた場合、どの暗号スイートを選択するか?これらは、JARM がサーバーに対して、最もユニークな応答を引き出すために実質的に質問している種類のものです。10 個の応答はハッシュ化され、JARM フィンガープリントが生成されます。

JARM フィンガープリントハッシュはハイブリッドファジーハッシュであり、可逆ハッシュアルゴリズムと非可逆ハッシュアルゴリズムを組み合わせて 62 文字のフィンガープリントを生成します。最初の 30 文字は、送信された 10 個の Client Hello のそれぞれに対してサーバーが選択した暗号スイートと TLS バージョンで構成されます。"000" は、サーバーがその Client Hello とのネゴシエーションを拒否したことを示します。残りの 32 文字は、x509 証明書データを除外した、サーバーから送信された累積拡張の SHA256 ハッシュの切り詰めです。JARM フィンガープリントを比較する際、最初の 30 文字が同じで最後の 32 文字が異なる場合、これはサーバーの設定が非常に類似しており、同じバージョンと暗号スイートを受け入れているが、拡張が異なるために完全には一致しないことを意味します。

各 TLS サーバーハロー メッセージを受信した後、JARM は FIN で接続を正常に閉じ、ソケットを開いたままにしないようにします。

JARM は高性能なフィンガープリント関数であり、安全な暗号関数と見なされたり混同されたりすべきではないことに注意することが重要です。JARM フィンガープリントは、機械で消費できるだけでなく、人間が消費できるように設計されています。つまり、一目で確認でき、共有、ツイートするのに十分な小ささであり、なおかつ文脈の詳細を収める余地があります。

JARM を悪意のあるサーバーの識別に使用する方法

マルウェアのコマンド&コントロール(C2)サーバーや悪意のあるサーバーは、他のサーバーと同様に作成者によって設定され、フリート全体に展開されます。したがって、これらはユニークな JARM フィンガープリントを生成する傾向があります。以下は、一般的なマルウェアおよび攻撃ツールと、Alexa Top 1M ウェブサイトとの JARM 重複の例です(2020年10月時点)。

Alexa Top 1M ウェブサイトとの重複がほとんど、あるいは全くないため、組織内のホストがこれらの JARM フィンガープリントを持つサーバーに接続する可能性は低いはずです。

JARM チーム

John Althouse - オリジナルのアイデア、コンセプト、プロジェクトリーダー Andrew Smart - コンセプトとテスト RJ Nunnally - プログラミングとテスト Mike Brady - プログラミングとテスト

運用上の使用のために Python で書き直されました: Caleb Yu

ツールをダウンロード
ドメインJARM
salesforce.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
force.com2ad2ad0002ad2ad00042d42d00000069d641f34fe76acdc05c40262f8815e5
google.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
youtube.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
gmail.com27d40d40d29d40d1dc42d43d00041d4689ee210389f4f6b4b5b1b93f92252d
facebook.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
instagram.com27d27d27d29d27d1dc41d43d00041d741011a7be03d7498e0df05581db08a9
oculus.com29d29d20d29d29d21c41d43d00041d741011a7be03d7498e0df05581db08a9
悪意のあるサーバー C2JARM フィンガープリントAlexa Top 1M との重複
Trickbot22b22b09b22b22b22b22b22b22b22b352842cd5d6b0278445702035e06875c0
AsyncRAT1dd40d40d00040d1dc1dd40d1dd40d3df2d6a0c2caaa0dc59908f0d36029430
Metasploit07d14d16d21d21d00042d43d000000aa99ce74e2c6d013c745aa52b5cc042d0
Cobalt Strike07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb10
Merlin C229d21b20d29d29d21c41d21b21b41d494e0df9532e75299f15ba73156cee38303