Introducción al uso de COM por amenazas en Windows
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Esta investigación examina cómo el malware abusa del Modelo de Objeto Componente de Windows (COM) para apoyar acciones maliciosas como el movimiento lateral, la persistencia, y la evasión de defensas. Explica cómo COM permite que diferentes lenguajes de programación interactúen con servicios de Windows y muestra cómo los actores de amenazas ocultan funcionalidades detrás de llamadas indirectas a tablas vtables a través de interfaces COM. El artículo incluye estudios de casos técnicos sobre familias de malware como Qakbot, Gh0stRAT, Attor, y WarmCookie para demostrar estos métodos en práctica.
Investigación
La investigación se centra en revertir binarios pesados en COM para traducir GUIDs opacos y desplazamientos de vtables en clases de Windows significativas y llamadas a métodos. Los investigadores usaron herramientas como OleView.NET y ComView para inspeccionar registros de registro y definiciones de interfaces. Los estudios de casos mostraron que analizar las APIs de activación de COM puede exponer el verdadero propósito y comportamiento de una muestra de malware.
Mitigación
El artículo se centra más en análisis y detección que en medidas específicas de endurecimiento. Sin embargo, sugiere que monitorear comportamientos inusuales de activación de COM y auditar entradas de registro ligados a CLSIDs e IIDs puede mejorar la visibilidad. Un fuerte entendimiento de los servicios expuestos a COM como BITS y el Programador de Tareas también es importante para una monitorización efectiva y caza de amenazas.
Respuesta
Cuando se identifica actividad sospechosa de COM, los respondedores deben analizar el proceso que inicia la activación de COM y determinar qué CLSID e IID están siendo llamados. También es importante rastrear el proceso padre y buscar tareas programadas relacionadas o trabajos de BITS. Herramientas de instrumentación dinámica y de registro enfocado en COM pueden ayudar a reconstruir la cadena completa de actividad maliciosa de API.
"flowchart TD step_initial_access["Acceso Inicial: Qakbot distribuido a través de correos electrónicos de phishing para servir como cargador."] step_c2_ingress["C2 y Transferencia de Herramientas de Ingreso: Attor utiliza BITS (IBackgroundCopyJob) para entrega confiable de cargas útiles."] step_persistence["Persistencia: Gh0stRAT y WarmCookie utilizan interfaces COM del Programador de Tareas (ITaskService) para crear tareas programadas."] rules_for_persistence("<b>Nombre de la Regla</b>: Posible Tarea Programada vía Objeto COM (vía cmdline)<br/><b>ID de la Regla</b>: 75015b1f-6813-4288-aa82-b92bb31d8473") step_lateral_movement["Movimiento Lateral y Ejecución Remota: Uso de DCOM para activación remota de objetos a través de la red."] step_initial_access –>|conduce_a| step_c2_ingress step_c2_ingress –>|conduce_a| step_persistence step_persistence –>|conduce_a| step_lateral_movement step_persistence -.->|detectado_por| rules_for_persistence "
Flujo de Ataque
Detecciones
Posible Elusión de UAC mediante Objetos COM (vía cmdline)
Posible Ejecución de Script VB en Línea (vía creación de proceso)
Posible Movimiento Lateral vía DCOM [Excel/Visio/Word/Access/PowerPoint.Application] (vía cmdline)
Posible Tarea Programada vía Objeto COM (vía cmdline)
Detectar Creación de Objetos COM con PowerShell y WMI para Automatización y Programación de Tareas [Windows Powershell]
Detección de Inicialización de Seguridad de COM y DCOM [Creación de Proceso de Windows]
Ejecución de Simulación
Prerrequisito: El Control Prevuelo de Telemetría y Línea Base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica de 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. Ejemplos abstractos o no relacionados conducirán a un diagnóstico erróneo.
-
Narrativa del Ataque y Comandos: El adversario intenta realizar un movimiento lateral o manipulación de servicios remotos. Para evadir la detección simple basada en firmas que busca patrones comunes de herramientas, utilizan una utilidad especializada (simulada aquí como
example.exe) y pasan argumentos específicos que activan la inicialización de seguridad de COM/DCOM. Al pasarCoCreateInstanceExandCoInitializeSecuritycomo argumentos de la línea de comando, el atacante está intentando configurar el contexto de seguridad para una interfaz COM fuera del proceso para facilitar la interacción remota. -
Script de Prueba de Regresión:
# NOTA: Este script asume que 'example.exe' existe en System32 conforme a la lógica de la regla. # Dado que es un marcador de posición, crearemos un archivo falso para simular el ejecutable para la prueba. $targetPath = "C:WindowsSystem32example.exe" # Crear un ejecutable falso si no existe para propósitos de simulación if (-not (Test-Path $targetPath)) { Write-Host "Creando ejecutable falso para simulación..." New-Item -Path $targetPath -ItemType File -Force } # Simular la ejecución de la línea de comando sospechosa # Este comando está diseñado para activar la selección de CommandLine de la regla de detección Start-Process -FilePath $targetPath -ArgumentList "--action CoCreateInstanceEx --setup CoInitializeSecurity" -Wait -
Comandos de Limpieza:
# Eliminar el ejecutable falso creado para la simulación Remove-Item -Path "C:WindowsSystem32example.exe" -Force