
Escáner de indicadores de compromiso para CVE-2019-19781
Este repositorio contiene una utilidad para detectar compromisos de los dispositivos Citrix ADC relacionados con CVE-2019-19781. La utilidad, y sus recursos, codifican indicadores de compromiso recopilados durante las investigaciones de FireEye Mandiant. Para obtener más información, lea el blog que anuncia el lanzamiento de esta herramienta.
En resumen, la utilidad:
No hará:
Con la retroalimentación de la comunidad, la herramienta puede volverse más exhaustiva en su detección. Por favor, abra un issue, envíe un PR, o contacte a los autores si tiene problemas, ideas o comentarios.
Este escáner puede identificar:
El Escáner de Indicadores de Compromiso (IoC) para CVE-2019-19781 fue desarrollado conjuntamente por FireEye Mandiant y Citrix basándose en el conocimiento obtenido de compromisos de respuesta a incidentes relacionados con la explotación de CVE-2019-19781. El objetivo del escáner es analizar las fuentes de registros disponibles y los artefactos forenses del sistema para identificar evidencia de explotación exitosa de CVE-2019-19781. Existen limitaciones en lo que la herramienta podrá lograr, y por lo tanto, ejecutar la herramienta no debe considerarse una garantía de que un sistema esté libre de compromiso. Por ejemplo, los archivos de registro del sistema con evidencia de compromiso pueden haber sido truncados/rotados, el sistema puede haber sido reiniciado, un atacante puede haber manipulado el sistema para eliminar evidencia de compromiso, y/o instalado un rootkit que oculte la evidencia de compromiso, etc.
La salida de esta herramienta caerá en una de tres categorías:
Evidencia de compromiso. Este es el valor predeterminado.
Cualquier evidencia que caiga en esta categoría indica que un dispositivo fue comprometido exitosamente.
Esto podría ser cualquier cosa, desde ejecutar comandos que revelen información (por ejemplo, ver los archivos de configuración ns.conf o smb.conf),
hasta instalar una puerta trasera (por ejemplo, NOTROBIN, un minero de criptomonedas, etc.),
o colocar un shell web basado en Perl.
Evidencia de escaneo de vulnerabilidad exitoso (esto podría ser un administrador del sistema autorizado o un atacante no autorizado). Cualquier evidencia que caiga en esta categoría indica que el sistema estaba en un estado vulnerable (por ejemplo, la mitigación no se había aplicado) y que al menos el primer paso para explotar CVE-2019-19781 fue exitoso.
Evidencia de escaneo de vulnerabilidad fallido. Cualquier evidencia que caiga en esta categoría indica que los intentos de escanear o explotar el sistema fallaron.
No se garantiza que esta herramienta encuentre toda la evidencia de compromiso, ni toda la evidencia de compromiso relacionada con CVE-2019-19781. Si se identifican indicios de compromiso en los sistemas, las organizaciones deben realizar un examen forense del sistema comprometido para determinar el alcance y la magnitud del incidente. Esta herramienta se ofrece TAL COMO ESTÁ y sin garantía.
Debe descargar el script Bash independiente desde la pestaña de Lanzamientos de este repositorio. Copiar el directorio fuente a un dispositivo Citrix ADC es posible pero no recomendado.
El Escáner de IoC se puede ejecutar directamente en un dispositivo Citrix ADC.
En este modo, la herramienta escaneará archivos, procesos y puertos en busca de indicadores conocidos.
La herramienta escribe mensajes de diagnóstico en el flujo STDERR y los resultados en el flujo STDOUT.
En el uso típico, debe redirigir STDOUT a un archivo para su revisión.
La herramienta debe ejecutarse como root en modo en vivo en un dispositivo Citrix ADC.
Por ejemplo:
$ sudo bash ./ioc-scanner-CVE-2019-19781-v1.1.sh > "/tmp/results-$(date).txt"
La herramienta está diseñada para usarse con los siguientes productos:
El Escáner de IoC también puede inspeccionar una imagen forense montada. En este escenario, pase un argumento de línea de comandos especificando la ruta al directorio raíz de la imagen. No es necesario ser root para ejecutarlo en modo fuera de línea.
Por ejemplo:
$ bash ./ioc-scanner-CVE-2019-19781-v1.1.sh /mnt/path/to/evidence/root/
En ambos modos, la herramienta extraerá el código de soporte en un directorio temporal; este directorio se eliminará al finalizar el script. La herramienta no realiza más cambios en el sistema, aunque puede generar entradas de registro.
Como en todo análisis forense, prefiera el análisis fuera de línea contra una imagen dd a la respuesta en vivo.
Esto eliminará la probabilidad de que la herramienta sobrescriba evidencia relevante.
Revise las Preguntas Frecuentes para obtener más detalles.
A medida que invente más formas de identificar compromisos, considere contribuir a este Escáner de IoC. Nos gustaría proporcionar el escáner más exhaustivo y correcto posible.
El objetivo principal es informar indicadores de compromiso de alta confianza. Debido a que los usuarios pueden confiar en la salida de esta herramienta para iniciar una investigación adicional, es importante que no los enviemos a una búsqueda inútil. Por lo tanto, actividades como el escaneo simple no deben informarse en el modo predeterminado. Cualquier evidencia de que un actor obtenga acceso al sistema, obtenga información o cree contenido siempre debe informarse.
Proporcionamos esta herramienta como un script Bash porque es un denominador común en todos los dispositivos Citrix ADC. Aquí está la matriz de características para las versiones de Citrix ADC:
Aunque hemos visto malware que usa Go para atacar FreeBSD/NetScaler, Go no es compatible con FreeBSD 6.x.
Mantenemos imágenes de sistema de archivos dispersas que contienen evidencia de compromiso en el directorio ./tests/.
A medida que agregue IoCs a esta herramienta, como rutas conocidas o contenido en lista negra, proporcione ejemplos de la evidencia para realizar pruebas.
Puede ejecutar las pruebas unitarias en un sistema Linux o macOS de la siguiente manera:
$ bash ./tests/test.sh
runnning test: access-logs
runnning test: xml-template
runnning test: crontab
runnning test: var-cron-tabs-nobody
runnning test: error-logs
runnning test: file-system
runnning test: netscalerd
runnning test: notrobin-tmp-init
runnning test: notrobin-var-nstmp-nscache
runnning test: ns-content
runnning test: chr-encoded-template
runnning test: copied-ns-conf
runnning test: curl-in-template
runnning test: perms
runnning test: var-tmp-netscaler-portal-templates
runnning test: var-vpn-bookmark
runnning test: webshell-in-scripts
runnning test: shell-history
runnning test: bash_log
runnning test: notice_log
Una vez que haya clonado el repositorio fuente, puede compilar un script independiente usando la herramienta ./build.sh.
Esto empaqueta el script principal y los recursos de soporte en un solo paquete.
Al ejecutarse, se extraerá en un directorio temporal, se ejecutará desde allí y luego se limpiará.
Para compilar:
$ bash ./build.sh > ioc-scanner-CVE-2019-19781-rev$(git rev-parse HEAD | cut -c 1-8).sh
Para obtener información adicional de FireEye sobre CVE-2019-19781 y la explotación en el mundo real, consulte:
La respuesta a CVE-2019-19781 ha sido un esfuerzo significativo en toda la industria de la seguridad y estos blogs citan fuertemente contribuciones adicionales que serán de valor para los usuarios de esta herramienta. Recomendamos leer el material vinculado de estas publicaciones para comprender mejor la actividad en su entorno. Como siempre, el equipo de FireEye Mandiant está disponible para responder preguntas de seguimiento o ayudar adicionalmente en una investigación contactándonos aquí.
| Versión de NetScaler | SO | Idiomas disponibles |
|---|
| 13.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.1 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 11.1 | FreeBSD 8.4 | Bash, Perl |
| 10.5 | FreeBSD 8.4 | Bash, Perl |
| 10.1 | FreeBSD 6.3 | Bash, Perl |
| 9.3 | FreeBSD 6.3 | Bash, Perl |