
Ein Python-Skript zur Untersuchung von Ivanti Secure Connect (ICS)-Ereignisprotokollen, entwickelt zur Unterstützung von Untersuchungen zu den Schwachstellen CVE-2025-0282, CVE-2023-46805 und CVE-2024-21887.
Dieses Repository enthält ein Python-Skript, das Ivanti Secure Connect .vc0-Logdateien in das CSV-Format für digitale Forensik und Incident Response konvertiert. Im Einzelnen extrahiert der Parser:
.vc0-Dateien).
Das Tool wurde ursprünglich während der Untersuchung von CVE-2025-0282 (eine nicht authentifizierte RCE-Schwachstelle, die bestimmte Ivanti-Geräte betrifft) entwickelt. Berichte von Mandiant und anderen deuten darauf hin, dass Angreifer Logeinträge entfernen oder verändern können, um ihre Aktivitäten zu verschleiern. Durch das Parsen und Analysieren dieser .vc0-Dateien können Ermittler leichter Anzeichen einer Kompromittierung, ungewöhnliche Löschungen oder andere verdächtige Verhaltensweisen erkennen.

Im Rahmen mehrerer Incident-Response-Einsätze mit Ivanti Secure Connect wurde festgestellt, dass bestimmte Geräte unvollständige oder manipulierte Logs aufwiesen – einige zeigten überhaupt keine Einträge, bis die Ausnutzung von CVE-2025-0282 erkannt und das Gerät neu gestartet wurde. Darüber hinaus können die integrierten Integritätsprüfungen, die normalerweise alle zwei Stunden durchgeführt werden, von einem Angreifer deaktiviert oder verändert werden. Durch die Konvertierung von .vc0-Dateien in ein benutzerfreundlicheres CSV-Format hilft dieses Tool Ermittlern, Anomalien wie fehlende Logeinträge, unerwartete Authentifizierungsversuche und mögliche Anzeichen von Datenmanipulation zu identifizieren.

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: Verzeichnis mit den aus Ivanti Secure Connect extrahierten .vc0-Logdateien.--output: Verzeichnis, in das die CSVs geschrieben werden.--mapfile: CSV-Datei, die jeden Nachrichtencode einem Nachrichtentyp und einer Beschreibung zuordnet.
logmessages_map.csv enthält die bekannten Nachrichtencodes sowie deren entsprechende Nachrichtentypen und Beschreibungen. Obwohl diese Liste (aus öffentlich verfügbarer Ivanti-Dokumentation und Community-Forschung stammend) umfangreich ist, enthält sie möglicherweise nicht jeden vorhandenen Nachrichtencode. Wir empfehlen den Benutzern, die Zuordnung nach Bedarf für ihre Umgebung zu überprüfen oder anzupassen. Siehe den Abschnitt Ressourcen für die ursprünglichen Referenzen.
Standardmäßig werden Zeitstempel in UTC konvertiert. Wenn Sie sie lokalisieren oder anders formatieren müssen, können Sie den Aufruf datetime.fromtimestamp(...) in der Funktion process_subline() ändern.

Bei Fragen, Anregungen oder Hilfe können Sie uns gerne unter [email protected] kontaktieren.