
LinuxカーネルのLPE脆弱性CVE-2026-43284およびCVE-2026-43500向けの自動化SSHベーススキャナ兼パッチャー。マルチホスト検出、権限昇格検出、モジュールブラックリストによる緩和策を備えています。
免責事項: このツールは正当な内部セキュリティ監査専用に設計されています。あなたが所有していないシステムに対する許可のない使用は違反です。開発者: Gagaltotal666 - GhostGTR666。
このツールはLinuxカーネルにおける2つの**ローカル権限昇格(LPE)**脆弱性を特定し、緩和します:
f4c50a4034e6)/etc/modprobe.d/ 経由でモジュールをブラックリスト化| 機能 | 説明 |
|---|---|
| マルチホストスキャナー | サブネット全体(CIDR)または特定のIPリストを並列スキャン |
| TCP Ping Discovery | SSH前にアクティブなホストを自動検出(--skip-discoveryでスキップ可能) |
| 詳細監査 | カーネルバージョン、モジュールステータス、アップストリームパッチ、権限レベルの分析 |
| 脆弱性評価 | ステータスを自動分類: VULNERABLE、MITIGATED、LIKELY_PATCHED、POSSIBLY_SAFE、MODULE_NOT_LOADED |
| 自動緩和 | 一度の--patchでモジュールのブラックリスト化、アンロード、ページキャッシュのフラッシュ |
| ゼロタッチsudoインジェクション | sudo -S経由でパスワードを自動注入 — NOPASSWD設定は不要 |
| スマート認証検出 | 権限昇格を自動検出(root、sudo NOPASSWD、パスワード付きsudo) |
| CLI検証 | タイプミスの事前チェック、SSHキーファイルの検証(偽のknown_hostsを防止) |
| 並列実行 | スキャンおよびSSH操作用のスレッドプール(デフォルト20ワーカー) |
| JSONレポート | 完全な監査結果をJSON形式でエクスポート |
| 見やすい出力 | カラー出力 + PrettyTableサマリー(ライブラリがない場合は自動フォールバック) |
| シグナル処理 | SIGINT/SIGTERMによるグレースフルシャットダウン |
Python 3.8以上
ライブラリ: paramiko、colorama、prettytable
python3 -m venv .venv
source .venv/bin/activate
# リポジトリのクローン
git clone https://github.com/gagaltotal/dirtyfrag-scanner.git
cd dirtyfrag-scanner
# 依存関係のインストール
pip install -r requirements.txt
# または
pip install paramiko colorama prettytable

ターゲットサーバーに何も変更せずに脆弱性を検出します。
# パスワードを使用
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!'
# SSHキーを使用
python3 dirtyfrag_scanner.py --subnet 10.134.205.0/24 --user root --key ~/.ssh/id_rsa
# 両方を使用(キーが失敗した場合のパスワードフォールバック)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --key ~/.ssh/id_rsa
# 特定IPのスキャン(ディスカバリーなし)
python3 dirtyfrag_scanner.py --hosts 192.168.1.10,192.168.1.20 --user admin --password 'pass'
監査を実行し、脆弱なサーバーに直接緩和策を適用します。
# パスワードを使用したパッチ(SUDO自動注入、NOPASSWD不要)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user ghostgtr666 --password 'server@02!' --patch
# rootログインを使用したパッチ
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# カスタムワーカーでのパッチ(より高速なスキャン)
python3 dirtyfrag_scanner.py --subnet 192.168.0.0/16 --user admin --password 'pass' --patch --workers 50
--subnet CIDR CIDRサブネットをスキャン(例: 192.168.1.0/24)
--hosts IP[,IP,...] 特定IPをスキャン(カンマ区切り、スペースなし)
--user USERNAME SSHユーザー名(必須)
--password PASSWORD SSHパスワード(特殊文字がある場合は引用符を使用)
--key PATH SSH秘密鍵へのパス(例: ~/.ssh/id_rsa、known_hostsではない!)
--port PORT カスタムSSHポート(デフォルト: 22)
--timeout SECONDS SSH接続タイムアウト(デフォルト: 10、最大: 300)
--skip-discovery TCP pingディスカバリーをスキップし、すべてのIPに直接SSH接続
--workers NUM 並列SSHワーカー数(デフォルト: 20、最小: 1、最大: 100)
--patch 脆弱なホストに緩和策を適用
--output FILE 監査結果をJSONファイルに保存
このツールは、sudoersの変更を必要とせずにさまざまなSSHサーバー環境で動作するように設計されています:
Root直接(推奨)
--user root --key ~/.ssh/id_rsa --patch
Sudo NOPASSWD
--user ubuntu --key ~/.ssh/id_rsa --patch
/etc/sudoers に NOPASSWD が設定されていることsudo -n を使用パスワード注入付きSudo(ゼロタッチ)⭐
--user ubuntu --password 'mypass' --patch
/etc/sudoers: ALL=(ALL) ALL で動作sudo -S -p '' 経由でパスワードを自動注入ハイブリッド(キー + パスワード)
--user ubuntu --key ~/.ssh/id_rsa --password 'mypass' --patch
--patch フラグを使用すると、ツールは以下の手順を順番に実行します:
/etc/modprobe.d/dirtyfrag.conf を削除(存在する場合)/etc/modprobe.d/dirtyfrag.conf に書き込み:
install esp4 /bin/false
install esp6 /bin/false
install rxrpc /bin/false
chmod 644 を実行rmmod esp4(ロードされていない場合はスキップ)rmmod esp6(ロードされていない場合はスキップ)rmmod rxrpc(ロードされていない場合はスキップ)echo 3 > /proc/sys/vm/drop_caches注記: rmmod 後もモジュールがロードされたままの場合、再起動が必要になる可能性があることがユーザーに通知されます。
──────────────────────────────────────────────────────────
ホスト 1/2: 10.134.205.163 (ubuntu-web-01)
──────────────────────────────────────────────────────────
OS : Ubuntu 22.04.4 LTS
カーネル : 6.8.0-111-generic
権限 : user
CVE-2026-43284 (xfrm-ESP) [POSSIBLY_SAFE]
esp4 loaded : no
esp6 loaded : no
緩和策 : NOT applied
アップストリームパッチ: NOT included (<6.15)
CVE-2026-43500 (RxRPC) [VULNERABLE]
rxrpc loaded : YES
緩和策 : NOT applied
注記: アップストリームパッチはまだ存在しません — 緩和策が唯一の修正です
[✓] 緩和策が正常に適用されました!
[権限チェック] OK (使用: sudo (自動パスワード))
[ターゲットパスのクリーンアップ] OK
[modprobe設定の書き込み] OK
[設定の書き込み検証] OK (3エントリ)
[ファイル権限の設定] OK
[esp4モジュールのアンロード] スキップ(ロードされていないか、すでに削除済み)
[esp6モジュールのアンロード] スキップ(ロードされていないか、すでに削除済み)
[rxrpcモジュールのアンロード] アンロード済み
[ページキャッシュのフラッシュ] OK
[最終検証] 設定ファイルは有効
[最終検証] すべての脆弱なモジュールがアンロード済み
[結果] 緩和策が正常に適用されました
════ サマリー ════
+----------------+-------------------+------+------------+------------+----------+
| ホスト | OS/カーネル | 権限 | CVE-43284 | CVE-43500 | パッチ済み? |
+----------------+-------------------+------+------------+------------+----------+
| 10.134.205.163 | Ubuntu 22.04.4 | user | POSSIBLY_S | VULNERABLE | YES ✓ |
| 10.134.205.164 | Ubuntu 22.04.4 | user | VULNERABLE| VULNERABLE | FAILED ✗ |
| 10.134.205.165 | Debian 12 | root | MITIGATED | MITIGATED | — |
+----------------+-------------------+------+------------+------------+----------+
════ 統計 ════
スキャンしたホスト : 3
エラー : 0
脆弱な43284: 1
脆弱な43500: 2
緩和成功 : 1
緩和失敗: 1
└─ 権限不足のため1件失敗
所要時間 : 12.4s
--output フラグを使用して、完全な監査結果を保存します:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --output report.json
{
"scan_time": "2026-05-12 14:23:45",
"tool": "DirtyFrag Scanner v1.0",
"cves": ["CVE-2026-43284", "CVE-2026-43500"],
"total_hosts": 3,
"results": [
{
"host": "10.134.205.163",
"hostname": "ubuntu-web-01",
"os": "Ubuntu 22.04.4 LTS",
"kernel": "6.8.0-111-generic",
"kernel_v": [6, 8, 0],
"is_root": false,
"cve_43284": {
"status": "POSSIBLY_SAFE",
"esp4_loaded": false,
"esp6_loaded": false,
"mitigation_applied": false,
"upstream_patched": false
},
"cve_43500": {
"status": "VULNERABLE",
"rxrpc_loaded": true,
"mitigation_applied": false
},
"patch_applied": true,
"patch_msg": "...",
"error": null
}
]
}
# 間違い
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa.pub
# 正しい(秘密鍵を使用、.pubではない)
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
指定したファイルは秘密鍵ではありません。以下を確認してください:
.pub ファイル(公開鍵)ではないことknown_hosts ではないこと-----BEGIN PRIVATE KEY----- または -----BEGIN RSA PRIVATE KEY----- が含まれていること# 間違い
python3 dirtyfrag_scanner.py --user ghostgtr666--password 'pass' --subnet 192.168.1.0/24
# 正しい
python3 dirtyfrag_scanner.py --user ghostgtr666 --password 'pass' --subnet 192.168.1.0/24
ユーザーにsudoアクセスがないか、必要なときにパスワードが提供されていません:
# オプション1: rootを直接使用
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --patch
# オプション2: sudo自動注入用のパスワードを提供
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --patch
# オプション3: /etc/sudoers にNOPASSWDを設定
echo 'admin ALL=(ALL) NOPASSWD: ALL' | sudo tee -a /etc/sudoers
--timeout を増やしてください:
python3 dirtyfrag_scanner.py --subnet 192.168.1.0/24 --user admin --password 'pass' --timeout 30
一部のディストリビューションはesp4/esp6/rxrpcモジュールなしでカーネルをプリコンパイルしています。手動で確認してください:
# ターゲットホストで
cat /proc/cmdline | grep -i module
lsmod | grep -E 'esp4|esp6|rxrpc'
python3 dirtyfrag_scanner.py \
--subnet 192.168.100.0/24 \
--user monitoring \
--password 'monitoring123' \
--workers 30 \
--output full-audit.json
python3 dirtyfrag_scanner.py \
--subnet 10.0.0.0/16 \
--user root \
--key ~/.ssh/prod_rsa \
--patch \
--workers 50 \
--output emergency-patch.json
python3 dirtyfrag_scanner.py \
--hosts 192.168.1.10,192.168.1.20,192.168.1.30 \
--user ubuntu \
--key ~/.ssh/dev_rsa \
--output critical-servers.json
python3 dirtyfrag_scanner.py \
--subnet 192.168.50.0/24 \
--user deploy \
--key ~/.ssh/deploy_ed25519 \
--password 'deploy@backup' \
--patch \
--output deploy-scan.json
開発者: Gagaltotal666 - GhostGTR666
GitHub: github.com/gagaltotal
免責事項: このツールは正当かつ承認されたセキュリティ監査専用です。ユーザーはこのツールの使用について責任を負います。