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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/grish-pradhan/cve-2017-7184
特権昇格脆弱性分析エクスプロイト学習と教育バイナリエクスプロイト
GitHubgrish-pradhan/cve-2017-7184

CVE-2017-7184

CVE-2017-7184 は Linux カーネルの XFRM netlink スタックオーバーフローに対する概念実証のローカル特権昇格エクスプロイトです。名前空間の悪用とカーネル ROP を用いて、sudo なしで root 権限を取得する方法を示しています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2017-7184 – Linux Kernel XFRM 権限昇格(sudo不要)

概要

このリポジトリには、CVE-2017-7184(XFRM(IPsec)netlinkサブシステムにおけるLinuxカーネル脆弱性)に対する概念実証(PoC)ローカル権限昇格エクスプロイトが含まれています。

このエクスプロイトは、特権のないユーザーが以下の手順で**真のroot(UID 0)**を取得する方法を示しています。

  1. 特権のないユーザー+ネットワーク名前空間を作成

  2. 名前空間内でCAP_NET_ADMINを取得

  3. XFRM netlink処理におけるカーネルスタックオーバーフローを引き起こす

  4. カーネルROPチェーンを実行して以下を呼び出す:

    • prepare_kernel_cred(NULL)
    • commit_creds()
  5. 完全なroot権限で安全にユーザーランドに戻る

sudoは不要です。


脆弱性の詳細

フィールド値
CVECVE-2017-7184
コンポーネントLinux Kernel – XFRM Netlink
バグの種類カーネルスタックオーバーフロー
影響ローカル権限昇格
攻撃ベクトルローカル(特権のないユーザー)
エクスプロイト分類名前空間の悪用 + ROP
最初に影響を受けるLinuxカーネル ≤ 4.8
修正版2017年にリリースされたカーネルパッチ

エクスプロイト戦略(概要)

  1. 特権のないユーザー名前空間

    • unshare(CLONE_NEWUSER | CLONE_NEWNET) を使用
    • 現在のユーザーを名前空間内のUID 0にマッピング
    • sudoなしで CAP_NET_ADMIN を付与
  2. XFRM Netlinkの悪用

    • NETLINK_XFRM ソケットを作成
    • 不正な XFRM_MSG_NEWSA メッセージを送信
    • 過大な属性によりカーネルスタックオーバーフローを誘発
  3. カーネルROPの実行

    • カーネルスタックを上書き
    • 制御されたROPチェーンを実行
    • カーネルコンテキストで資格情報を昇格
  4. ユーザーランドに戻る

    • swapgs; iretq を使用
    • 対話型のrootシェルを起動

必要条件

  • 脆弱なLinuxカーネル(4.8.0-36-generic でテスト済み)
  • unprivileged_userns_clone = 1
  • カーネルシンボルが利用可能 または 既知のオフセット
  • pthread対応の gcc

名前空間のサポート確認:

root@kitploit:~
cat /proc/sys/kernel/unprivileged_userns_clone

期待される出力:

root@kitploit:~
1

コンパイル

root@kitploit:~
gcc exploit.c -o exploit -pthread

実行

root@kitploit:~
./exploit

sudoを使用しないでください。

成功した場合、真のrootシェルを取得します:

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root)

カーネルアドレス解決

エクスプロイトは以下を試みます:

  1. /proc/kallsyms からシンボルをリーク

  2. 制限されている場合、以下のためのハードコードされたオフセットにフォールバック:

    • commit_creds
    • prepare_kernel_cred
    • カーネルベース

⚠️ ROPガジェットとオフセットはカーネルバージョン固有です。 他のビルドでは調整する必要があります。


期待される結果

完全に成功したエクスプロイト

  • UID = 0
  • GID = 0
  • 対話型rootシェル

部分的な成功(依然として脆弱)

  • 名前空間の作成が機能する
  • XFRMソケットの作成が成功する
  • オーバーフローペイロードが送信される
  • カーネルクラッシュまたは権限昇格なし

これでもシステムが脆弱であることが確認されます。


制限事項

  • ハードコードされたROPガジェット(カーネル固有)
  • kallsyms以外のKASLRバイパスはなし
  • 強化されたカーネルに対するSMEP/SMAPバイパスはなし
  • 最新のカーネルでは信頼性が低い

緩和策

  • カーネルをパッチ適用済みバージョンに更新
  • 特権のないユーザー名前空間を無効化:
root@kitploit:~
sysctl -w kernel.unprivileged_userns_clone=0
  • KASLR、SMEP、SMAPを有効化
  • netlinkの機能を制限

免責事項

このコードは教育およびセキュリティ研究目的のみで提供されます。

  • 所有していない、またはテスト許可がないシステムでは使用しないでください
  • 作者は誤用または損害に対して一切の責任を負いません
  • カーネルエクスプロイト技術の学習を目的としています

参考文献

  • CVE-2017-7184
  • Linux Kernel XFRMサブシステム
  • ユーザー名前空間の権限昇格
  • カーネルROPと commit_creds エクスプロイト
ツールをダウンロード