
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 hará:
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 a partir del conocimiento obtenido en intervenciones de respuesta a incidentes relacionadas con la explotación de CVE-2019-19781. El objetivo del escáner es analizar las fuentes de registro disponibles y los artefactos forenses del sistema para identificar evidencia de explotación exitosa de CVE-2019-19781. Existen limitaciones en cuanto a 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 compromisos. Por ejemplo, los archivos de registro del sistema con evidencia de compromiso pueden haberse truncado/rotado, el sistema puede haberse reiniciado, un atacante puede haber manipulado el sistema para eliminar evidencia de compromiso, y/o instalado un rootkit que enmascare la evidencia de compromiso, etc.
La salida de esta herramienta se dividirá en una de tres categorías:
Evidencia de compromiso. Esta es la categoría predeterminada.
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 divulguen 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 web shell basado en Perl.
Evidencia de escaneo de vulnerabilidades exitoso (esto podría ser un administrador de sistemas 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 vulnerabilidades fallido. Cualquier evidencia que caiga en esta categoría indica que los intentos de escanear o explotar el sistema fallaron.
Esta herramienta no está garantizada para encontrar 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 extensión del incidente. Esta herramienta se ofrece TAL CUAL y sin garantía.
Debe descargar el script Bash independiente desde la pestaña Releases 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 que especifique la ruta al directorio raíz de la imagen. No es necesario ser root para ejecutarlo en modo sin conexión.
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 a un directorio temporal; este directorio se eliminará al finalizar el script. La herramienta no realiza más cambios en el sistema, aunque puede provocar que se generen entradas de registro.
Como en todo análisis forense, prefiera el análisis sin conexión de una imagen dd a la respuesta en vivo.
Esto eliminará la probabilidad de que la herramienta provoque la sobrescritura de evidencia relevante.
Consulte las Preguntas Frecuentes para obtener más detalles.
A medida que invente formas adicionales de identificar compromisos, considere contribuir a este Escáner de IoC. Nos gustaría ofrecer el escáner más exhaustivo y correcto posible.
El objetivo principal es reportar 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 un simple escaneo no deben reportarse en el modo predeterminado. Cualquier evidencia de que un actor obtuvo acceso al sistema, obtuvo información o creó contenido siempre debe reportarse.
Proporcionamos esta herramienta como un script Bash porque es un denominador común en 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 apuntar a FreeBSD/NetScaler, Go no soporta FreeBSD 6.x.
Mantenemos imágenes de sistemas de archivos dispersos 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 las 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 utilizando la herramienta ./build.sh.
Esto empaqueta el script principal y los recursos de soporte en un único paquete.
Al ejecutarse, se extraerá a 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 la naturaleza, consulte:
La respuesta a CVE-2019-19781 ha sido un esfuerzo significativo en toda la industria de la seguridad, y estos blogs citan muchas contribuciones adicionales que serán de valor para los usuarios de esta herramienta. Recomendamos leer el material enlazado de estas publicaciones para comprender mejor la actividad en su entorno. Como siempre, el equipo de FireEye Mandiant está disponible para responder preguntas adicionales o para brindar más asistencia 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 |