Connect Around 攻击链涉及 CVE-2023-46805 和 CVE-2024-21887,对 Ivanti Connect Secure 和 Policy Secure 设备构成了重大威胁。该攻击链可在受影响系统上实现未授权访问和命令执行。CVE-2023-46805 允许攻击者绕过身份验证控制,而 CVE-2024-21887 是一个命令注入漏洞,在与前者结合时无需身份验证即可被利用。这对漏洞组合使得使用 Ivanti 产品的组织必须紧急关注,敦促他们按照 Ivanti 社区论坛中详述的说明应用可用的缓解措施。
为了满足组织验证缓解状态的需求,Ivanti Connect Around 漏洞检查器应运而生。该脚本旨在评估 Ivanti Connect Secure 和 Policy Secure 设备是否存在与 Connect Around 攻击链相关的漏洞。它会执行检查以验证这些漏洞是否存在,并以 CSV 格式输出结果。采用了多种缓解验证方法,以提供全面且可靠的评估。
注意:此脚本不验证 CVE-2024-21888 或 CVE-2024-21893。
该脚本执行多种检查以评估 Ivanti Connect Secure 系统的安全状态。每项检查均基于信息安全社区研究中改编的特定方法。
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark 端点。/api/v1/system/system-information URI。/admin/options/ URI。每项检查都可深入了解潜在漏洞。"Vulnerable" 表示已确认存在漏洞,而 "Mitigated" 或 "Not Vulnerable" 则表示系统在针对所测试的特定漏洞时似乎是安全的。
该脚本将每项检查归类为特定的状态类型,以提供有关被扫描主机安全态势的洞察。以下是每种状态类型的描述:
Mitigated:表示系统已针对所检查的漏洞采取了缓解措施。当检测到安全且已修补系统的典型响应时,将返回此状态。
Vulnerable:此状态表示系统容易受到脚本所执行特定检查的影响。当系统表现出已知模式或指示存在漏洞的响应时,将返回此状态。
HTTP Error:当脚本从目标系统收到标准 HTTP 错误响应(403 Forbidden 除外)时返回。这通常表示 Web 服务器或请求存在问题。
Network Issue:当脚本遇到网络相关问题(例如无法访问主机)时使用此状态。它合并了先前的状态,如 "Host Unreachable" 和 "Network Error"。
Timeout Error:表示对目标的请求超时,表明可能存在网络或配置问题,导致脚本无法完成检查。
Connection Error:与 "Timeout Error" 类似,此状态用于与主机建立连接时出现问题的情况,可能是由于网络问题、主机名错误等造成的。
Ivanti Presence Inconclusive:以前称为 "Attestation Needed",当脚本的检查未产生漏洞或缓解的明确证据时返回此状态。这表明需要进一步的人工调查以确定系统的安全状态。
Vulnerable (Bypass Detected):特定于绕过漏洞检查,此状态表示系统容易受到脚本方法中描述的身份验证绕过技术的影响。
每种状态都提供了有关系统在所检查漏洞方面的安全态势的快照。用户应将这些状态视为初步指示器,并在必要时进行进一步的人工调查以确认系统的实际安全状态。
requests 模块urllib3 模块colorama 模块,用于彩色输出要运行脚本,请使用以下命令:
python ivanti_scan.py -i [input_file]
可选择使用附加参数运行:
python ivanti_scan.py -i [input_file] -o [output_file] -t [number_of_threads] -p [port1 port2 ...] --color
使用以下选项之一来指定要测试的目标。
-i 或 --input:包含目标列表的输入文件路径。-u 或 --url:要测试的单个 URL 字符串。-o 或 --output:可选。输出 CSV 文件的名称。默认为 [current_date_time]_results.csv。-t 或 --threads:可选。用于并发执行的线程数。默认为 20。-p 或 --ports:可选。指定要检查的端口(例如 80 443)。默认检查端口 80 和 443。-a 或 --user-agent:可选。指定用户代理字符串。默认为:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3-c 或 --color:可选。如果安装了 colorama,则启用彩色输出。欢迎贡献!如果您想参与贡献,可以通过以下几种方式提供帮助:
main 创建您的分支。感谢您考虑为这个项目贡献。
此工具专为希望验证其自身环境中漏洞缓解情况的个人和组织设计。它特别适用于已明确授予安全测试权限的 Ivanti Connect Secure 设备。
使用此工具即表示您承认并同意这些条款。
本项目根据带有道德使用条款的 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
本项目利用了网络安全领域多个知名团体和个人开发的研究和方法。我们谨向他们表示感谢:
WatchTowr Labs:感谢他们对 Ivanti Connect Secure 漏洞的深入研究成果。他们的工作对开发 WEB ACCESS 检查方法起到了重要作用。
Rapid7 的 Stephen Fewer:他在 Metasploit 模块方面的工作提供了宝贵的见解。
AttackerKB 上的 Rapid7:他们对身份验证绕过技术的研究对本脚本有很大的启发。
Assetnote:认识到 /admin/options/ 是一种可靠的测试方法,有助于确定缓解措施是否已应用。
特别感谢这些团体和个人对网络安全领域的贡献,他们的工作极大地帮助了此工具的开发。
Chris Farrell 是一名漏洞研究员,致力于通过深入分析和全面的解决方案来增强网络安全。
经验包括漏洞管理、vCISO、高级渗透测试员、事件响应负责人、ISSO。