
Um script Python para examinar logs de eventos do Ivanti Secure Connect (ICS), projetado para apoiar investigações sobre as vulnerabilidades CVE-2025-0282, CVE-2023-46805 e CVE-2024-21887.
Este repositório fornece um script Python desenvolvido para converter arquivos de log .vc0 do Ivanti Secure Connect para o formato CSV, voltado para perícia digital e resposta a incidentes. Em particular, o analisador:
.vc0).
A ferramenta foi originalmente desenvolvida durante a investigação da CVE-2025-0282 (uma vulnerabilidade de execução remota de código não autenticada que afeta determinados appliances Ivanti). Relatórios da Mandiant e de outros indicam que atores de ameaças podem remover ou alterar entradas de log para ocultar suas atividades. Ao analisar e converter esses arquivos .vc0, os investigadores podem identificar mais facilmente evidências de comprometimento, exclusões incomuns ou outros comportamentos suspeitos.

Durante vários engajamentos de resposta a incidentes envolvendo o Ivanti Secure Connect, determinados appliances apresentaram logs incompletos ou adulterados — alguns não exibiam nenhuma entrada até que a exploração da CVE-2025-0282 fosse detectada e o appliance reiniciado. Além disso, as verificações de integridade integradas, que normalmente são executadas a cada duas horas, podem ser desativadas ou alteradas por um atacante. Ao converter arquivos .vc0 para um formato CSV mais amigável, esta ferramenta auxilia os investigadores a identificar anomalias, como entradas de log ausentes, tentativas de autenticação inesperadas e possíveis sinais de manipulação de dados.

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: Diretório contendo os arquivos de log .vc0 extraídos do Ivanti Secure Connect.--output: Diretório onde os CSVs serão gravados.--mapfile: Arquivo CSV que mapeia cada código de mensagem para um tipo de mensagem e descrição.
logmessages_map.csv armazena os códigos de mensagem conhecidos e seus respectivos tipos e descrições. Embora esta lista (obtida de documentações públicas do Ivanti e pesquisas da comunidade) seja extensa, pode não incluir todos os códigos de mensagem existentes. Incentivamos os usuários a revisar ou personalizar o mapeamento conforme necessário para seu ambiente. Consulte a seção Recursos para as referências originais.
Por padrão, os carimbos de data/hora são convertidos para UTC. Se precisar localizá-los ou formatá-los de maneira diferente, você pode modificar a chamada datetime.fromtimestamp(...) na função process_subline().

Se você tiver dúvidas, sugestões ou precisar de assistência, entre em contato pelo e-mail [email protected].