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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
c-jwt-cracker — Cで書かれたJWTブルートフォースクラッカー | Kitploit
ツール/GitHubGitHub/brendan-rius/c-jwt-cracker
パスワードクラッキングウェブセキュリティペネトレーションテスト認証
GitHubbrendan-rius/c-jwt-cracker

c-jwt-cracker

Cで書かれたJWTブルートフォースクラッカー

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

人気

すべて見る →

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

すべてのツールを探索

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

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

JWTクラッカー

Cで書かれたマルチスレッドのJWTブルートフォースクラッカーです。非常に幸運であるか、膨大な計算能力を持っている場合、このプログラムはJWTトークンの秘密鍵を見つけ出し、有効なトークンを偽造できるようにします。これはテスト目的のみであり、トラブルに巻き込まれないようにしてください :)

わずかに修正した Apple Base64実装 を使用しています。

Dockerイメージのビルド

root@kitploit:~
docker build . -t jwtcrack

Dockerでの実行

root@kitploit:~
docker run -it --rm  jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE

手動コンパイル

opensslのヘッダーがインストールされていることを確認してください。 Ubuntuでは apt-get install libssl-dev でインストールできます。

root@kitploit:~
make

Macを使用している場合、brew install openssl でOpenSSLをインストールできますが、ヘッダーは別の場所に保存されます。

root@kitploit:~
make OPENSSL=/usr/local/opt/openssl/include OPENSSL_LIB=-L/usr/local/opt/openssl/lib

実行

root@kitploit:~
$ > ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE

異なるHMAC関数での実行

HMAC(鍵付きハッシュメッセージ認証コードを生成するため)でサポートされているハッシュ関数は以下の通りです:JSON HS256(HMAC-SHA256)用の"sha256"、HS384用の"sha384"、HS512用の"sha512"です。OpenSSLで指定されている名前とまったく同じように、他のハッシュ関数の名前を指定することもできます。OpenSSLがこのハッシュ関数をHMACで使用することを許可している場合、jwtcrackは秘密鍵の解読を試みます。ただし、jwtcrackは単なるデコーダであるため、このアルゴリズムが実際にエンコードに使用されたという保証はなく、ましてや"JSON Web Algorithms" RFCで許可されているアルゴリズムのリストに含まれているかどうかも不明です。詳細はRFC 7518のセクション3.1を参照してください。

次の例では、JSON HS256(HMAC-SHA256)に対応するsha256ハッシュ関数を使用します。最後のコマンドラインパラメータとして"sha256"を指定してください。また、この例では秘密鍵の最大長を5文字に指定し、アルファベットを次の文字に限定します:ABCSNFabcsnf1234

root@kitploit:~
$ > ./jwtcrack eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.cAOIAifu3fykvhkHpbuhbvtH807-Z2rI1FS3vX1XMjE ABCSNFabcsnf1234 5 sha256

上記の例では、鍵は Sn1f であり、2019年頃に製造された平均的なノートパソコン(例えばIce LakeマイクロアーキテクチャベースのIntel CPU搭載)で1秒未満で処理されます。jwtcrackプログラムのコンパイルにはGCCバージョン9.3.0("-O3"付き)が使用されました。Linux Ubuntu 20.04.1 LTS上でOpenSSLライブラリバージョン1.1.1fとリンクされています。

次に、最後のコマンドラインパラメータとして"sha512"を使用してHS512(HMAC-SHA512)を指定します。また、秘密鍵の最大長を9文字に指定し、アルファベットを次の7つの小文字ラテン文字に限定します:"adimnps"。

root@kitploit:~
$ > ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiYWRtaW4ifQ.RnWtv7Rjggm8LdMU3yLnz4ejgGAkIxoZwsCMuJlHMwTh7CJODDZWR8sVuNvo2ws25cbH9HWcp2n5WxpIZ9_v0g adimnps 9 sha512

上記の例では、鍵は adminpass であり、Intel Core i7 1065G7 CPU(Ice Lakeマイクロアーキテクチャ、2019年、ベース周波数1.30 GHz、最大ターボ3.90 GHz)搭載のノートパソコンで平均約15秒かかります。マルチスレッドによるユーザーモードでの各コアからの合計CPU秒数は、その秘密鍵を解読するのに平均約100秒です。

"sha384"の使用例:

root@kitploit:~
$ > ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJyb2xlIjoiYWRtaW4ifQ.31xCH3k8VRqB8l5qBy7RyqI2htyCskBy_4cIWpk3o43UkIMW-IcjTUEL_NyFXUWJ 0123456789 6 sha384

jwtcrackの消費時間の測定

root@kitploit:~
/usr/bin/time -f "Total number of CPU-seconds consumed directly from each of the CPU cores: %U\nElapsed real wall clock time used by the process: %E" ./jwtcrack eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJyb2xlIjoiYWRtaW4ifQ.RnWtv7Rjggm8LdMU3yLnz4ejgGAkIxoZwsCMuJlHMwTh7CJODDZWR8sVuNvo2ws25cbH9HWcp2n5WxpIZ9_v0g adimnps 9 sha512

貢献

  • 進捗状況の表示なし
  • プログラムを停止しても、中断した場所から再開できません

重要:既知のバグ

私が使用している(Apple製の)Base64実装は、すべてのBase64実装が同じではないため、時々バグがあります。 そのため、Base64トークンの復号が部分的にしか機能せず、正しくない秘密鍵が見つかってしまうことがあります。

より堅牢なBase64実装を実装してくれる人がいれば、素晴らしいのですが :)

ツールをダウンロード