本代码仓库提供了一个 Python 脚本,用于将 Ivanti Secure Connect 的 .vc0 日志文件转换为 CSV 格式,以支持数字取证与应急响应。具体来说,该解析器:
.vc0 文件)中提取时间戳。
该工具最初是在调查 CVE-2025-0282(一个影响某些 Ivanti 设备的未认证远程代码执行漏洞)时开发的。来自 Mandiant 等机构的报告表明,威胁行为者可能会删除或篡改日志条目以隐藏其活动。通过解析和分析这些 .vc0 文件,调查人员可以更容易地发现失陷证据、异常删除或其他可疑行为。

在多个涉及 Ivanti Secure Connect 的应急响应项目中,发现某些设备存在不完整或被篡改的日志——有些设备在检测到 CVE-2025-0282 被利用并重启设备之前,完全没有日志条目。此外,通常每两小时运行一次的内置完整性检查可能会被攻击者禁用或篡改。通过将 .vc0 文件转换为更易用的 CSV 格式,该工具可帮助调查人员识别异常情况,例如日志条目缺失、意外的认证尝试以及潜在的数据篡改迹象。

PS F:\Case20250109001> python .\ics_logs_parser.py -h
usage: ics_logs_parser.py [-h] --input INPUT --output OUTPUT --mapfile MAPFILE
Process .vc0 files and convert them to .csv files.
options:
-h, --help show this help message and exit
--input INPUT Directory containing .vc0 files
--output OUTPUT Directory to save .csv files
--mapfile MAPFILE CSV file mapping [MessageCode, MessageType, Description]
python .\ics_logs_parser.py --input "F:\Case20250109001\root_runtime.img\[root]\runtime\logs" --output .\logs\ --map .\logmessages_map.csv
--input:包含从 Ivanti Secure Connect 提取的 .vc0 日志文件的目录。--output:CSV 文件将要写入的目录。--mapfile:将各消息代码映射到消息类型和描述的 CSV 文件。
logmessages_map.csv 存储了已知的消息代码及其对应的消息类型和描述。虽然这份列表(来源于公开的 Ivanti 文档和社区研究)已经相当全面,但可能并未涵盖所有现存的消息代码。我们鼓励用户根据自身环境的需要审查或自定义此映射。原始参考资料请参见资源(Resources)部分。
默认情况下,时间戳会转换为 UTC。如果您需要将其本地化或以其他方式格式化,可以修改 process_subline() 函数中的 datetime.fromtimestamp(...) 调用。

如果您有任何问题、建议或需要帮助,请随时通过 [email protected] 联系我们。