Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
emsign-trust-scan — 2026年10月のeMudhra/emSign CA鍵漏洩に対応するオフラインスキャナー。OSのトラストストア、CAバンドル、Java cacerts、NSS、コンテナイメージ全体から影響を受けた証明書を検出します。 | Kitploit
ツール/GitHubGitHub/0xajstrike/emsign-trust-scan
防御ツール侵害指標 (IOC) 管理静的分析脆弱性スキャナーコンテナセキュリティ構成監査デジタルフォレンジック暗号化インシデントレスポンス
GitHub0xajstrike/emsign-trust-scan

emsign-trust-scan

2026年10月のeMudhra/emSign CA鍵漏洩に対応するオフラインスキャナー。OSのトラストストア、CAバンドル、Java cacerts、NSS、コンテナイメージ全体から影響を受けた証明書を検出します。

31296日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る

emSign / eMudhra 侵害 - トラストストアスキャナー

2026年10月の eMudhra / emSign 中間CA秘密鍵侵害に対する検出ツール。8つの中間CAが、秘密スカラーが極めて小さな整数である P-384 鍵で発行されていた(復元値 4, 56, 66, 115, 155, 156, 230, 237)。そのため、誰でもこれらのCAに連鎖する証明書を容易に偽造できる。ブラウザやOSのトラストストアは迅速に信頼を解除したが、ほとんどの非ブラウザのトラストストアは自動更新されない。本ツールはまさにそこを検出する。

ステータス: 本インシデントは現在進行中であるため、同梱のIOCはスナップショットとして扱うこと(実行のたびに generated 日付が表示される)。更新するには、上流のトラッカーから tools/sources/*.json を再取得し、ジェネレーター(下記)を再実行する。

trustscan(Python)と trustscan.ps1(Windows/PowerShell)は、ホスト上のトラストストアとCAバンドルを棚卸しし、影響を受けた証明書に一致するものを警告する。標準ライブラリのみ + cryptography を使用し、その他の依存関係はない。

クイックスタート

Python 3 と cryptography(唯一の依存関係)が必要:

pip install -r requirements.txt
# scan this host's trust stores and CA bundles
python trustscan.py

# machine-readable for ticketing
python trustscan.py --format csv > findings.csv
# Windows-native: cert stores (both scopes) + GPO roots + env bundles
pwsh -File trustscan.ps1

終了コード: 0 = クリーン、1 = 検出あり、2 = エラー。INFO のみの結果(下記の --flag-aaa を参照)は 0 で終了します。

すべての実行は、AAA クロスサイン経路に関する 1 行の注意書きで終わります( スコープと制限事項を参照)。text モードではこれは レポートの一部です。json/csv モードでは機械可読な出力をクリーンに保つため stderr に出力されます。

証明書のマッチング方法

下記のいずれかの場所で見つかったすべての証明書はフィンガープリントが取得され、4 通りの方法でチェックされます:

マッチ重大度意味
compromised_ca_certCRITICAL正確に一致する侵害された中間証明書(証明書 SHA-256)
compromised_key_reuseCRITICAL侵害された鍵を持つ別の証明書(SPKI SHA-256) - Sectigo のクロスサインや再発行を検出
issued_by_compromised_caHIGHAuthorityKeyIdentifier が侵害された中間証明書を指すリーフ/サブ CA - 偽造可能
distrust_root_presentCRITICAL信頼されていない emSign ルートがここで依然として信頼されている。ルート自身の鍵は無傷 - しかし中間鍵は公開されているため、このルートが信頼されている間は、あらゆるドメインに対する偽造証明書が、失効確認を行わないすべてのクライアント(ほとんどの非ブラウザクライアント)で検証を通ってしまう。これを削除するか、バンドルを更新すること。これ単独では AAA クロスサイン経路(下記)を塞がない

さらに 1 つのチェックはオプトインです(--flag-aaa / -FlagAaa):

マッチ重大度意味
cross_sign_root_presentINFO正規の Sectigo ルート AAA Certificate Services が存在する。これは 8 つの中間証明書にクロスサインしており、それらの第 2 の信頼経路を支えている。自身の鍵は無傷。Mozilla と Chrome は 2025 年 4 月にこれを削除したが、Windows、Apple、古い Linux バンドル、そして多くの Java キーストアは依然としてこれを信頼している。要求時のみ報告され、削除すべきか判断するチーム向けの情報(このインシデントに対する Debian の更新では削除されている)。終了コードには一切影響しない

デフォルトでは AAA Certificate Services はフラグされません: 自身の鍵は無傷であり、 これを削除するのは意図的な選択であって、デフォルトの修復措置ではないためです。これが重要である理由については、下記の制限事項を参照してください。

trustscan が参照する場所

ファイルバンドル

ソース内容確認される場所
certifiPython CAバンドルcertifi.where()(実行時に解決)
bundles → ディストロOSのca-certificates集約Debian/Arch/Alpine /etc/ssl/certs/ca-certificates.crt · RHEL /etc/pki/tls/certs/ca-bundle.crt、/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem、統合Java cacerts、管理者anchors/ディレクトリ · SUSE /etc/ssl/ca-bundle.pem、/var/lib/ca-certificates/ca-bundle.pem · Debianソースディレクトリ /usr/share/ca-certificates/ · /etc/ssl/cert.pem
bundles → FreeBSDca_root_nss/usr/local/share/certs/ca-root-nss.crt · /usr/local/etc/ssl/cert.pem
bundles → Homebrew / MacPortsbrew / port ca-certificates、openssl/opt/homebrew/etc/ca-certificates/cert.pem · /opt/homebrew/etc/openssl*/cert.pem · /usr/local/etc/...(Intel) · /opt/local/etc/{openssl,ssl}/cert.pem
bundles → curlスタンドアロンcurlバンドル/usr/local/share/curl/curl-ca-bundle.crt · /opt/local/share/curl/curl-ca-bundle.crt · C:\Program Files\Git\...\ca-bundle.crt
bundles → conda各環境のssl/cacert.pem$CONDA_PREFIX · /opt/conda · ~/anaconda3、~/miniconda3、~/miniforge3(envs/*を含む)
bundles → AWS CLI v2バンドルされたbotocore/usr/local/aws-cli/.../botocore/cacert.pem · C:\Program Files\Amazon\AWSCLIV2\...
bundles → クラウドSDK / レジストリ / エコシステムその他のベンダーバンドルgcloud / Azure CLI third_party/certifi · コンテナレジストリ /etc/{docker,containers}/certs.d/*/ · Perl Mozilla::CA · Erlang/Elixir certifi
bundles → pippipにバンドルされたcertifi<pip>/_vendor/certifi/cacert.pem(import pip経由で解決)
nssFirefox / Thunderbird / Chrome-Linux + システムNSS DB~/.mozilla/firefox/*/cert9.db · ~/.thunderbird/*/cert9.db · ~/snap/firefox/common/.mozilla/firefox/*/cert9.db · ~/.pki/nssdb/cert9.db · /etc/pki/nssdb/cert9.db · %APPDATA%\Mozilla\Firefox\Profiles\*\cert9.db · %APPDATA%\Thunderbird\Profiles\*\cert9.db

OSトラストストアとその他のソース

ソース確認される場所
os(Linux)/etc/ssl/certs · /usr/local/share/ca-certificates · /etc/pki/tls/certs · /etc/pki/ca-trust/extracted/pem(再帰)、さらにAndroid/AOSP /system/etc/security/cacerts、/apex/com.android.conscrypt/cacerts、cacerts-added/(ハッシュ名ファイル)
os(macOS)デフォルトキーチェーン + SystemRootCertificates.keychainに対するsecurity find-certificate -a -p
os(Windows、Python)ROOT、CA、MY、TrustedPublisher、AuthRootに対するssl.enum_certificates + グループポリシーでプッシュされたLocalMachineルート(レジストリ)
java$JAVA_HOME + JVMルート(/usr/lib/jvm/*、/opt/java/*、/Library/Java/JavaVirtualMachines/*、C:\Program Files\Java\*、Adoptium、Corretto、Microsoft) → .../lib/security/cacerts
envSSL_CERT_FILE、REQUESTS_CA_BUNDLE、CURL_CA_BUNDLE、NODE_EXTRA_CA_CERTS内のファイル、SSL_CERT_DIR内のディレクトリ
containers(オプトイン)Docker /var/lib/docker/overlay2/*/diff、podman(root + rootless、他ユーザーを含む)、containerd overlayfsスナップショット - 各レイヤーの集約バンドルをスキャン、root権限が必要、場所がレイヤー名を示す
apptrust(オプトイン)アプリサーバーおよびデータインフラのJavaトラストストア(Tomcat、WildFly/JBoss、Kafka、Elasticsearch)と/opt/*/jre/.../cacerts、C:\Program Files\*\jre\...配下のアプリバンドルJRE - ホストのJavaスキャンでは見逃されるベンダーバンドルJRE
--pathターゲット設定で参照されるストア(nginx、Apache、HAProxy、Oracle sqlnet.ora、LDAP)、およびプロジェクトごとのバンドル(Composer vendor/composer/ca-bundle/...) - --pathをそれらに向ける
paths渡した任意のファイル/ディレクトリ
--rootfs <dir>展開されたイメージまたはファームウェアルートfs内のディストロ / curl / Java / Androidストアの場所

env変数はパスを保持しており、証明書データではありません - trustscanはそのパスにあるファイルを読み取ります。

Python仮想環境、conda、その他のベンダーバンドル - --pathを使用

certifi は、独自の CA ルートを同梱している唯一の Python パッケージではありません。以下のパッケージは、certifi と OS のストアの両方から独立して、site-packages 内に独自の *.pem をバンドルしています:

パッケージ同梱ファイル
botocore (AWS CLI / boto3)botocore/cacert.pem
grpcio (gRPC)grpc/_cython/_credentials/roots.pem
httplib2httplib2/cacerts.txt (変則的な拡張子 - ファイルを直接指定してください)
requests (レガシー <2.16)requests/cacert.pem

デフォルトのスキャンは、certifi と pip にベンダリングされた certifi のみを自動的に特定し、trustscan.py を実行しているインタプリタに対してのみ行います。上記のその他すべて - さらにマシン上の他のすべての virtualenv や conda 環境 - は、--path を site-packages に向けて明示的にスキャンする必要があります:

python trustscan.py "$(python -c 'import site;print(site.getsitepackages()[0])')"
# or cover many environments at once
python trustscan.py /opt/venvs/ /home/*/.virtualenvs/ /opt/conda/envs/
# Windows / PowerShell equivalent
python trustscan.py (python -c "import site; print(site.getsitepackages()[0])")

OS のルートストア(/etc/ssl/certs など)にはこれらは含まれていません。ライブラリはそれらに依存しないよう、まさに自前のコピーをバンドルしています。ディレクトリのスキャンでは証明書拡張子のファイルしか開かないため、cacerts.txt のような風変わりな名前はファイルとして直接渡す必要があります。

Windows(trustscan.ps1)はさらに踏み込む

Python の os ソースは LocalMachine ストアと LocalMachine GPO ルートをカバーします。trustscan.ps1 は、Python 標準ライブラリが Win32 相互運用なしでは到達できない唯一のもの、すなわち CurrentUser スコープ(同じ論理ストア)を追加します。さらに env バンドルや -Path のファイル/ディレクトリをネイティブに処理します。ユーザーごとの信頼が重要な場合はこれを使用してください。そうでなければ、Python ツールの Windows カバレッジと同等です。

証明書フォーマット

PEM/DER X.509、PKCS#7(.p7b/.p7c)、PKCS#12(.p12/.pfx、changeit/空で試行)、および JKS キーストア - すべて標準ライブラリのみで解析されます。

スコープと制限(必読)

ツールをダウンロード