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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Dirty-Frag-CVE-2026-43284 — DirtyFrag (CVE-2026-43284) のラボ検出演習 - xfrm-ESP ページキャッシュ破損による Linux カーネル特権昇格。エクスプロイト実行、検出のギャップ、Elastic Stack を使用した修正済み EQL ルールを網羅した完全な解説。 | Kitploit
ツール/GitHubGitHub/atlasvector/dirty-frag-cve-2026-43284
特権昇格脆弱性分析フォレンジック学習と教育インシデントレスポンスバイナリエクスプロイトラボと実践
GitHubatlasvector/dirty-frag-cve-2026-43284

Dirty-Frag-CVE-2026-43284

人気

すべて見る →

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

すべてのツールを探索

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

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

DirtyFrag (CVE-2026-43284) のラボ検出演習 - xfrm-ESP ページキャッシュ破損による Linux カーネル特権昇格。エクスプロイト実行、検出のギャップ、Elastic Stack を使用した修正済み EQL ルールを網羅した完全な解説。

リポジトリを見る
114ヶ月前未レビュー

DirtyFrag(CVE-2026-43284)- ラボ検出演習レポート

分類: 内部ラボ - CyberLAB
日付: 2026年5月24日
プラットフォーム: Elastic Stack v9.4.1
ステータス: 検出確認済み


目次

  • A - エグゼクティブサマリー
  • B - 完全な調査報告書
    • 1. 目的と脅威モデル
    • 2. 脆弱性の背景
    • 3. ラボ環境
    • 4. フェーズ1 - 実行前設定
    • 5. フェーズ2 - エクスプロイト実行
    • 6. フェーズ3 - ポストエクスプロイト活動
    • 7. フェーズ4 - 検出エンジニアリング
    • 8. 検出リファレンス
    • 9. 主な発見のまとめ
    • 10. 参考文献

A - エグゼクティブサマリー

テスト内容

DirtyFrag(CVE-2026-43284) を利用した制御されたエクスプロイト演習。これは初期アクセス後の攻撃者がLinuxカーネルの特権昇格脆弱性を悪用するシナリオを模擬したものです。想定される攻撃者シナリオ:フィッシングで入手した資格情報で得た低権限ユーザー(saskia、uid=1001)が社内Linuxホスト上でrootへの昇格を試みる。ラボでは、本番ネットワークから隔離された意図的に脆弱なUbuntuマシン(ubuntu-vuln、カーネル6.0.0-22-generic)を使用しました。

結果:エクスプロイト成功 - 検出確認

攻撃者はラボ環境内で完全なrootアクセス(uid=0)を達成しました。Elastic Security検出スタックは3件のHIGH重大度アラート(リスクスコア73)を生成し、エクスプロイトチェーンを正しく識別しました。ただし、手動チューニングが必要でした。デフォルト設定では、アラートを見逃すギャップが存在していました。

結論: 未パッチのLinuxホスト(カーネル <= 6.x)は脆弱です。攻撃者がすでに低権限の足掛かりを得ている場合、このエクスプロイトは静かに迅速に完全なrootを提供し、ファイル整合性ツールでは検出できないディスク上の痕跡を残しません。

リスクステートメント

項目詳細
脆弱性DirtyFrag - CVE-2026-43284(xfrm-ESPパス)、CVE-2026-43500(RxRPCパス)
CVSSによる影響完全なローカル特権昇格によるroot取得
影響を受けるカーネルLinuxカーネル >= 2017年1月(9年間の寿命)
影響を受けるディストリUbuntu 24.04.4、RHEL 10.1、AlmaLinux 10、openSUSE、CentOS Stream 10、Fedora 44
ファイル整合性バイパスディスク上のファイルは変更なし - AIDE、Tripwire、ハッシュ監視はすべてクリーンと報告
公開PoC入手可能(GitHub上のV4bel/dirtyfrag)
rootまでの時間低権限足掛かりから10分未満

主な発見

  1. デフォルトのauditdルールでは証拠が生成されない。 socket、splice、unshareに対する明示的なシステムコールルールがなければ、エクスプロイトは静かに実行される。ログもアラートもなし。デフォルトのElastic Agentデプロイメントでは、これらのルールが自動的に追加されない。
  2. 検出にはルールのチューニングが必要だった。 公開されているElastic Security Labsの検出ロジックは、相関キーとしてprocess.parent.pidを使用していた。実際には、DirtyFragは中間プロセスをフォークするため、その相関が壊れる。修正策として、auditd.sessionで相関を取ることがこの演習中に特定され、実装された。
  3. ポストエクスプロイト活動は広範囲に及んだ。 root取得後、攻撃者は/etc/shadowを読み取り、SSH認証鍵にアクセスし、永続化マーカー(/root/pwned.txt)を書き込み、ncを介したネットワーク偵察を開始した。これらはすべて初期アクセスから30分以内に発生した。

推奨事項

優先度アクション
即時すべてのホストのLinuxカーネルを修正済みバージョンにパッチ適用。Ubuntu、RHEL、AlmaLinux、openSUSE、CentOS、Fedoraのベンダーセキュリティアドバイザリを適用。
短期Elastic Agentで監視されているすべてのLinuxホストに、socket、splice、unshareに対する明示的なauditdシステムコールルールを展開。
短期EQL検出ルールを更新し、名前空間操作シーケンスに対してprocess.parent.pidではなくauditd.sessionで相関を取るように変更。
継続的リスクスコア73以上の特権昇格アラートを優先度の高いトリアージとして扱う。現在のルールは昇格から数秒以内に発火する。

B - 完全な調査報告書

1. 目的と脅威モデル

目的: ホームラボSOCにおけるDirtyFragエクスプロイトに対する検出カバレッジを検証し、検出ギャップを特定し、観測された攻撃者の行動に基づいた修正済み検出ルールを作成する。

脅威モデル: フィッシングで入手した低権限ユーザーアカウント(saskia、uid=1001)の資格情報を持つシミュレートされた初期アクセス後の攻撃者。目標:xfrm-ESP受信パスを介したDirtyFragによるrootへの特権昇格。ラボの実行はProxmoxコンソールを介して行われた。機能的にはSSHによるポストアクセスと同等。

2つの攻撃者能力層が考慮された:

  • バニラ(ノイズ多): 回避なしでエクスプロイトを実行
  • 回避的(静か): ノイズを低減し、意図的なクリーンアップ

今回の演習ではバニラ層をカバーした。


2. 脆弱性の背景

DirtyFragは、関連するLinuxカーネルバグファミリーの3番目であり、すべて同じ根本原因を悪用する:

CVEニックネーム導入時期パス
CVE-2022-0847Dirty Pipe-pipe
CVE-2026-31431Copy Fail-splice
CVE-2026-43284DirtyFrag2017年1月(コミットcac2661c53f3)xfrm-ESP
CVE-2026-43500DirtyFrag2023年6月(コミット2dc334f1a63a)RxRPC

根本原因: IPv4/IPv6データグラム追加パスでは、skb_splice_from_iter()がページキャッシュページをソケットバッファ(sk_buff)に配置した後、SKBFL_SHARED_FRAGを設定しなかった。ESP入力パスは、攻撃者が制御するページキャッシュページに対してインプレース暗号化を実行し、それらを通常のクローンされていない非線形skbとして扱った。

エクスプロイトプリミティブ: ページキャッシュへの4または8バイトの制御書き込み。決定的。競合条件は不要。

エクスプロイトチェーン:

  1. 攻撃者はターゲットバイナリ(例:/usr/bin/su)をページキャッシュに読み込む
  2. splice()を介してパケットを構築し、ファイルのページがstruct sk_buffのfrag[0]に配置される
  3. カーネルはパケットをxfrm-ESP復号パスに配信
  4. ESPはインプレース暗号化を実行 - ソースとデスティネーションの両方が攻撃者のページを指す
  5. 暗号化により攻撃者が制御するバイトがページキャッシュに書き込まれる
  6. その後のファイルの読み取り(カーネルexecve()を含む)はすべて、破損したバイトを返す

重要な回避特性: ディスク上のファイルは決して変更されない。ファイル整合性監視ツール(AIDE、Tripwire、ハッシュチェック)はすべて、ターゲットファイルをクリーンと報告する。

脆弱性が確認されたディストリ: Ubuntu 24.04.4、RHEL 10.1、AlmaLinux 10、openSUSE Tumbleweed、CentOS Stream 10、Fedora 44。


3. ラボ環境

コンポーネント詳細
Fleet Server / ELKホストubuntu-tm / elk-docker - 172.66.66.30(ラボ内部)
Elastic Stackv9.4.1(Elasticsearch、Kibana、Logstash - Docker)
ターゲット(被害者)ホストubuntu-vuln - 172.66.66.27
被害者カーネル6.0.0-22-generic(脆弱)
被害者ユーザーsaskia - uid=1001、groups=1001(saskia)、27(sudo)、100(users)
Elastic Agentv9.4.1(auditbeat付き)
ネットワークIDS専用センサー上のSuricata 8.0.5
Kibanahttp://172.66.66.30:5601(ラボ内部)

演習時点でのアクティブなテレメトリ:

データセットシェア
suricata.eve75.2%
elastic_agent.fleet_server10.8%
elastic_agent9.1%
elastic_agent.filebeat1.9%
elastic_agent.auditbeat1.4%
auditd_manager.auditd0.5%
system.auth0.2%
system.syslog0.1%

4. フェーズ1 - 実行前設定

4.1 ラボの隔離

演習前にラボネットワークを隔離。ファイアウォールエイリアスCyber_escape_doorが無効であることを確認 - 他のVLANやインターネットへの横方向の到達を防止。

ラボ隔離確認

4.2 被害者ホストの確認

ubuntu-vuln上で脆弱なカーネルと低権限アカウントを確認:``` saskia@ubuntu-vuln:$ uname -r 6.0.0-22-generic saskia@ubuntu-vuln:$ whoami saskia saskia@ubuntu-vuln:~$ id uid=1001(saskia) gid=1001(saskia) groups=1001(saskia),27(sudo),100(users)

![カーネルとユーザーの検証](https://assets.kitploit.com/production/public/readmes/15419/bd607abf9c63cc6bf7cfd3432bd406c5fcd51b6e29e4585543f80af99218fd92.png)

#### 4.3 スタックヘルスチェック

**Suricata: 実行中かつキャプチャ中 (systemctl status)**
![Suricataサービスがアクティブかつ有効](https://assets.kitploit.com/production/public/readmes/15419/3bd0f2a2eb3695861aa36f58545b85567d3a8bdeb4e847060e9dbb63391abf9b.png)

**Kibana/Elasticsearch: グリーン/正常 (APIチェック)**
![curlによるELKヘルスチェックが302を返す](https://assets.kitploit.com/production/public/readmes/15419/fcd860faf9fbe62adeb94e889ced2a8c4b649f7240b9f7a9eb572a132c56402d.png)

**変更前のVMスナップショット**

![ELK VMスナップショット - elk-VM-snapshot](https://assets.kitploit.com/production/public/readmes/15419/6d7c0af2ac6a6b526e21696f83ecea29e3b5d2a433b00eeaa104746ac87b155c.png)

![Suricata VMスナップショット - suricata_pre_dirty_frag (2026年5月24日 11:15:53)](https://assets.kitploit.com/production/public/readmes/15419/679983fc0d92d9b73c3e33439c4a167732eec5685e852ccfe91738e29930f5fa.png)

![Ubuntu-Vuln-Hostスナップショット](https://assets.kitploit.com/production/public/readmes/15419/0c66bce642d8508ac2dddfe5930a84ba3f936fc8507fb96717ced5bc2bd77f8d.png)

#### 4.4 ネットワークキャプチャ
tcpdumpがSuricataホスト(`emp6s19`、スナップショット長262144バイト)で開始され、`172.66.66.27`のトラフィックを完全パケットキャプチャしました。
![suricataトラフィックイベントコピー](https://assets.kitploit.com/production/public/readmes/15419/12c4e8bd2f5749a5ff3afda1613fecf69d635fbb87003808d83cc89815430e3c.png)


![Suricataセンサーで開始されたtcpdump](https://assets.kitploit.com/production/public/readmes/15419/09e4a4ab1a4f692ee24f168c2094bf159590b9c6bb4ea8a977f0c004687ae341.png)

---

### 5. フェーズ2 - エクスプロイトの実行

#### 5.1 ステージング

エクスプロイトのソースコード(`exp.c`)が、V4bel/dirtyfragのPoCから被害ホストにステージングされました。```bash
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ ls
exp  exp.c  README.md
ubuntu-vuln@ubuntu-vuln:~/dirtyfrag$ cp exp.c /tmp/exp/

右側のターミナルは、ユーザー saskia から見えるステージングされたコピーを示しています。

Exploit ソースが /tmp/exp/ にステージングされています

5.2 コンパイル

ツールをダウンロード