Los peligros de andar por las nubes: DFIR en O365 (I)

Nota 1: Esta serie de posts es una narración de un análisis forense de un caso práctico de respuesta ante incidentes totalmente ficticio (pero contada, esperamos, de forma didáctica y con gracia y salero). Si queréis una versión con la misma dosis técnica pero con menos narrativa, podéis consultar el vídeo del taller que el autor dio en las XV Jornadas STIC del CCN-CERT, o echar un ojo las slides de la presentación.

Nota 2: Estos posts desgranan un taller de análisis forense englobado dentro de la respuesta ante un incidente. Habrá algunas cosas que se podrían hacer de manera más eficiente y elegante, pero la idea era hacerlas de forma sencilla para que sean fáciles de entender. Y como todo taller práctico, se puede aprovechar de varias maneras: podéis descargar las evidencias ya trabajadas para poder seguir el caso paso por paso, podéis descargaros las evidencias en bruto para hacer vuestra propia investigación … o podéis jugar al CTF DFIR que hemos preparado y que os irá desgranando el caso a medida que vayáis respondiendo a los diversos retos.


Entradas de la serie:
=> Primera parte
=> Segunda parte
=> Tercera parte
=> Cuarta parte
=> Quinta parte

El año no había sido bueno para Ángela de la Guarda, CISO del MINAF (Ministerio de la Alegría y la Felicidad). Después del susto con el ataque de ransomware del año pasado (del que se libraron por los pelos), el esfuerzo de mantener los niveles de seguridad con todos los requisitos del teletrabajo unido a la falta de personal (la propia Ángela estaba haciendo de CIO en funciones, supliendo la baja del Subdirector General) había hecho que le aparecieran las primeras canas (!maldita sea, recién cumplidos los 40 y ya con tinte!). 

Todo esto sumado a las ya conocidas modas tecnológicas: el furor de este año es la Transformación Digital (que si le preguntas a 100 técnicos tendrás 102 respuestas diferentes, porque cuando lo dices en voz alta en algunos casos te aparece un comercial listo para venderte algo). En el MINAF este reto se ha trasladado en la realización de un piloto para poder trabajar en la nube con todas sus ventajas:  disponibilidad, movilidad y accesibilidad (cierto), ahorro de costes y seguridad (eso lo podríamos discutir).

La Dirección General de Festejos, unas 25 personas,  se ha migrado a O365, usando un conjunto de licencias de E3 (la licencia corporativa más barata). Este equipo ha recibido una formación sobre cómo usar la nube, y están empleando Exchange Online para el correo, Teams para la mensajería instantánea y tanto Sharepoint como OneDrive para compartir ficheros.

Ángela está escribiendo uno de los 4 correos urgentes que le quedan antes de dar carpetazo a la semana, cuando el servicio de Vigilancia Digital la llama con una mala noticia:  el MINAF sale en portada del “Happy Gossipy!” (el equivalente al “Hola” dentro de la felicidad internacional), y no en buenos términos. Al parecer se ha filtrado el plan para avanzar hacia la felicidad mundial de Naciones Unidades… y el MINAF es el culpable, porque el análisis de los metadatos del documento apuntan a María José Feliz, Directora General de Festejos.

¿Por qué todos los incidentes serios tienen que pasar los viernes a última hora? piensa Ángela para sus adentros, mientras llama a Salvador Bendito para activar el comité de crisis como primera acción del procedimiento de respuesta ante el incidente.

En la reunión de emergencia los objetivos quedan claros: hay que determinar quién filtró la documentación, y si es un ataque externo identificar tanto la vía de entrada como las TTP empleadas por los atacantes, pasando luego a una contención y erradicación lo más eficiente posible.

El incidente se declara iniciado el 19 de noviembre a las 14:30h UTC (recordad que en este momento estamos en UTC+1, y que en respuesta ante incidentes se trabaja en UTC, por la cuenta que nos trae).  No es posible hablar con la Directora General ni con ninguno de sus adjuntos (Pepe Contento y Franchesco Fiestas), pero hablando con el secretario de la DG partimos de los siguientes  hechos iniciales:

  • María José Feliz está en un retiro espiritual en Soria, Franchesco Fiestas está de vuelo a Cuba para un seminario, y Pepe Contento no responde al teléfono.
  • La DG recibió un USB de Naciones Unidas el 17 de noviembre que supuestamente contenía el borrador del plan para la felicidad mundial en formato .docx
  • La normativa de trabajo con datos sensibles indica que estos  no pueden dejar el equipo del receptor de los datos, y que bajo ningún concepto deben colgarse en recursos accesibles desde Internet (como por ejemplo, O365).

Se consigue acceso al equipo de la DG, y aplicamos el procedimiento habitual para la adquisición de evidencias: volcado de memoria con Dumpit, datos de triage con CyLR y apagado del equipo (el clonado a continuación si nos hace falta).

Con las evidencias en la mano, lo primero que hace Ángela es confirmar el marco temporal del documento (para saber en qué días es necesario centrar la atención). Para ello convierte la MFT de binario a .csv con mftdump y hace un grep para buscar el documento de marras:

La herramienta mftdump vuelca los tiempos MAC en modo CAM (Creación, Acceso y Modificación), por lo que podemos confirmar que el fichero “World_Happiness_Plan.docx” apareció por primera vez en el equipo de la usuaria mariajose.feliz (la DG) el 17 de noviembre a las 19:20:34h UTC. Lo que es más extraño es que también aparece en la carpeta del usuario pepe.contento el 19 de noviembre a las 11:54:44h UTC ¿Por qué aparece ese usuario con una sesión abierta en el equipo de la DG? ¿Y cómo tiene el fichero si supuestamente no tendría que haber salido de este equipo?

Ángela toma notas furiosamente anotando las posibles líneas de investigación (notes or didn’t happened), pero decide ir a por las victorias fáciles: si el equipo de la DG ha sido comprometido, preguntemos al antivirus a ver si ha tenido algo que decir al respecto. Revisando los logs de Windows Defender, encontramos que algo sí que ha pasado:

El 18 de noviembre, sobre las 19:26h UTC (recuerda que el visor de eventos está en hora local), Windows Defender ha parado la ejecución de Defender Control, una “herramienta” cuyo objetivo es deshabilitar el Windows Defender. Ángela decide realizar una búsqueda de más ejecutables en el equipo de la DG, y encuentra un ítem interesante:

El fichero Updater.exe.zip tiene varias características interesantes: se creó el 18 de noviembre a las 20:51h UTC (cerca de la alerta generada por el AV), y la MFT señala que tiene un “Zone.Identifier”, lo que implica que con casi total seguridad ha sido descargado de Internet. Es el momento de arrancar el equipo de la DG con un LiveUSB de CAINE y, montando el disco como solo lectura, acceder a la carpeta de Downloads. La usuaria desde luego no ha perdido el tiempo:

Bastionado0 (2).bat parece intentar desactivar Windows Defender de forma rudimentaria pero efectiva (si se dispone de privilegios de administrador), pero viendo que se descargó antes que Defender Control suponemos que no funcionó correctamente:

Los .zip están protegidos por contraseña, pero viendo otros ficheros del mismo directorio parece que hay material con el que trabajar. El fichero Updater.ps1, como se podía imaginar, es un Powershell ofuscado:

A esa distancia tiene toda la pinta de ser un lanzador de una herramienta de post-explotación: buscando la cadena:

 “sv o (New-Object IO.MemoryStream);sv d (New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String”

en Google obtenemos un posible candidato: un Grunt de Covenant, herramienta muy similar a Cobalt Strike o Empire, cuya misión es permitir tomar el control del equipo por parte de un atacante.  Lo bueno de este tipo de agentes es que con un poco de apaleamiento suelen soltar cosas muy interesantes como su C2, haciendo falta en este caso únicamente una sencilla receta de CyberChef:

!Bingo! La dirección IP 20.101.106.109 es nuestro primer IOC (Indicator Of Compromise), y Ángela la traslada a Salvador para que la busque en todos los logs de los equipos de perimetral. Como ya lleva años en este mundo, no siente la tentación de bloquear la IP directamente en el cortafuegos: no sabemos si hay más equipos afectados en el MINAF, y la regla básica en respuesta ante incidentes es “que los malos no sepan que tú sabes que están dentro”. La fase de erradicación tiene que hacerse basándonos en 3 claves:  información, planificación y (como diría el Inspector Pelayo), contundencia. Hasta que no sepamos exactamente qué es lo que está pasando, si no hay un impacto evidente sobre el MINAF lo mejor es recopilar información y no hacer ruido…

Salvador Bendito indica que no hay contactos contra el C2, lo que implica que posiblemente no se haya ejecutado correctamente (!bien!). Ahora la pregunta es ¿de dónde han salido esos ficheros? El que estén en la carpeta Downloads de la usuaria apunta a que han sido descargados por un navegador, así que Ángela hace uso de la herramienta BrowsingHistoryView para ver las descargas:

¿¿WTF?? !La URL https://minaf2-my.sharepoint.com corresponde al Sharepoint del piloto de O365 del MINAF!  Y para más inri, la cuenta de “emergencia” es una cuenta de “rompe el cristal en caso de emergencia”, creada según las buenas prácticas de Microsoft para uso como último recurso (es un Administrador Global), y cuya contraseña debería de estar únicamente apuntada en papel. A priori la contraseña únicamente la saben ella, Salvador Bendito e Inocencio Crédulo (el nuevo funcionario TIC del MINAF, encargado del piloto de O365). Está claro que algo está pasando en la nube del MINAF, y lo veremos en el siguiente artículo…