Cuaderno de análisis de Citrix
Un notebook de Jupyter para ayudar a automatizar parte del análisis forense relacionado con hosts de Citrix Netscaler comprometidos mediante CVE-2019-19781.
Para obtener ayuda sobre cómo recuperar los artefactos que examinar, consulta este script de triaje de Citrix.
Todas las notas/sugerencias son bienvenidas. No dudes en enviar pull requests o issues.
Aviso legal: No se pretende que sea una solución integral, solo está ahí para ayudarte a empezar.
Características
- Actualmente maneja los siguientes logs y XML de payloads si están disponibles:
- HTTPAccess
- HTTPError
- Cron
- Bash
- Notice
- Sh
- Descompresión de logs
- Parseo de logs en dataframes de pandas para análisis posterior si se desea
- Búsqueda en logs de IOCs comunes asociados con el compromiso
- Parseo y decodificación de archivos de payload XML si están disponibles
- Salida del análisis a una hoja de resultados de Excel para revisión
Recursos útiles
Historial de cambios
v 1.0
- Añadido el parseo del log httperror
- El análisis de Notice ahora busca los mismos términos que el análisis de sh (sh está incluido en notice y, por lo tanto, debemos buscar los mismos términos en ambos para obtener los mismos resultados)
- Los dataframes ya no se exportarán a la hoja de resultados si están vacíos. En su lugar, un mensaje de registro mostrará qué dataframes están vacíos en la celda de escritura de Excel del notebook.
v 0.9
- Añadida la recuperación de la fecha de inicio y fin cubierta por cada log listado anteriormente
- Refactorizado ligeramente el código de parseo de XML para incorporar la clave 'username', lo que permite analizar los XML recuperados de /xml/bookmarks
v 0.8
- Añadida la codificación 'latin1' a todo el parseo de logs para tener en cuenta los casos en que los logs no estaban en utf-8 y causaban errores de parseo
- Se dividió searchFor en searchFor y shSearchFor, ya que los logs sh tienen criterios de búsqueda diferentes que no aparecen en otros logs
v 0.7
- Añadida decodificación de payloads (chr() y base64) + agregación de todos los payloads en la columna 'decodedpayloads'
v 0.6
- Añadido el parseo del log sh
- Añadida la variable común 'searchFor' a la configuración para mantener términos de búsqueda de actividad sospechosa que se buscarán en cada log
v 0.5
- Añadido el parseo para la mayoría de los logs de notice (ver errores para excepciones)
- Las excepciones actuales son: sslvpn_aaad_login_handler y los logs de envío de datos de configuración de sesión, aunque se imprimen mediante errores para que puedas inspeccionarlos
v 0.4
- Añadido el parseo del log bash