
Un script Python pour examiner les journaux d'événements Ivanti Secure Connect (ICS), conçu pour soutenir les enquêtes sur les vulnérabilités CVE-2025-0282, CVE-2023-46805 et CVE-2024-21887.
Ce dépôt fournit un script Python conçu pour convertir les fichiers journaux .vc0 d'Ivanti Secure Connect au format CSV pour le forensic numérique et la réponse aux incidents. En particulier, l'analyseur :
.vc0).
L'outil a été initialement développé lors de l'enquête sur CVE-2025-0282 (une vulnérabilité RCE non authentifiée affectant certains appliances Ivanti). Les rapports de Mandiant et d'autres indiquent que des acteurs malveillants peuvent supprimer ou modifier des entrées de journal pour masquer leurs activités. En analysant ces fichiers .vc0, les enquêteurs peuvent plus facilement repérer des preuves de compromission, des suppressions inhabituelles ou d'autres comportements suspects.

Lors de plusieurs interventions de réponse aux incidents impliquant Ivanti Secure Connect, certains appliances se sont avérés présenter des journaux incomplets ou falsifiés — certains n'affichaient aucune entrée jusqu'à ce que l'exploitation de CVE-2025-0282 soit détectée et que l'appliance soit redémarrée. De plus, les vérifications d'intégrité intégrées, qui s'exécutent généralement toutes les deux heures, peuvent être désactivées ou modifiées par un attaquant. En convertissant les fichiers en un format CSV plus convivial, cet outil aide les enquêteurs à identifier les anomalies, telles que les entrées de journal manquantes, les tentatives d'authentification inattendues et les signes potentiels de manipulation des données.
.vc0
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 : Répertoire contenant les fichiers journaux .vc0 extraits d'Ivanti Secure Connect.--output : Répertoire où les CSV seront écrits.--mapfile : Fichier CSV mappant chaque code de message à un type de message et une description.
logmessages_map.csv stocke les codes de message connus et leurs types et descriptions correspondants. Bien que cette liste (provenant de la documentation Ivanti disponible publiquement et de recherches communautaires) soit exhaustive, elle peut ne pas inclure tous les codes de message existants. Nous encourageons les utilisateurs à examiner ou personnaliser le mappage selon les besoins de leur environnement. Voir la section Ressources pour les références originales.
Par défaut, les horodatages sont convertis en UTC. Si vous devez les localiser ou les formater différemment, vous pouvez modifier l'appel datetime.fromtimestamp(...) dans la fonction process_subline().

Si vous avez des questions, des suggestions ou besoin d'assistance, n'hésitez pas à nous contacter à [email protected].