Secuestro del Navegador: Análisis de Tres Técnicas
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo explora tres técnicas diferentes utilizadas por secuestradores de navegadores para manipular navegadores de usuario en Windows. Cubre la manipulación directa de archivos de preferencias del navegador, la emulación de pulsaciones de teclas scriptadas que conducen remotamente la interfaz del navegador y el uso indebido de interruptores de línea de comando de Chromium para cargar extensiones maliciosas. Cada método va acompañado de artefactos representativos y ejemplos de código. El objetivo principal de estos secuestros es la inyección de anuncios y la redirección no autorizada, en lugar del robo de credenciales o la exfiltración directa de datos.
Investigación
El investigador revisó malware asociado con las campañas TamperedChef/BaoLoader e identificó un módulo nativo, UtilityAddon.node, utilizado para recoger identificadores del sistema y alterar archivos de preferencias de Firefox y Chrome. Una segunda muestra mostró una herramienta de acceso remoto al navegador (BRAT) que simula atajos de teclado para cambiar la barra de direcciones, abrir nuevas pestañas y generar clics en anuncios fraudulentos. El tercer escenario involucraba a un secuestrador basado en VBS/PowerShell que configura tareas programadas, monitorea la creación de procesos a través de WMI, desactiva actualizaciones de Chrome y fuerza la carga de una extensión maliciosa mediante un interruptor de línea de comandos de Chromium ahora obsoleto.
Mitigación
Los defensores deben eliminar o poner en cuarentena componentes del secuestrador como UtilityAddon.node, entradas .reg maliciosas y scripts de PowerShell sospechosos. Deshabilitar o eliminar tareas programadas que invoquen scripts desconocidos o no confiables. Restaurar archivos de preferencias del navegador desde copias de seguridad conocidas y aplicar permisos de archivos estrictos. Monitorizar o bloquear intentos de usar el interruptor de carga de extensiones legado de Chromium y verificar que los mecanismos de actualización automática de Chrome permanezcan habilitados.
Respuesta
Al detectar, busque los artefactos descritos y rastree cambios en archivos de preferencias del navegador, valores del registro que interfieran con actualizaciones y parámetros de línea de comandos del navegador atípicos. Aísle las máquinas afectadas, capture evidencia volátil y realice una revisión exhaustiva de extensiones instaladas y cargadas activamente. Use scripts de remediación automatizados para restablecer configuraciones del navegador a valores predeterminados seguros y reactivar los servicios de actualización. Finalmente, monitorice cualquier indicador de red relacionado que pueda señalar actividad de mando y control.
«graph TB %% Definiciones de clases classDef action fill:#99ccff %% Definiciones de nodos action_create_scheduled_task[«<b>Acción</b> – <b>T1037 Scripts de inicialización de arranque o inicio de sesión</b><br/>Crear una tarea programada utilizando configuration.ps1 para la persistencia»] class action_create_scheduled_task action action_wmi_subscription[«<b>Acción</b> – <b>T1546.003 Suscripción a eventos WMI</b><br/>Configurar una suscripción a eventos WMI que supervise los procesos chrome.exe y edge.exe»] class action_wmi_subscription action action_terminate_relaunch[«<b>Acción</b> – <b>T1547.014 Modificación de accesos directos / T1176 Extensiones del navegador</b><br/>Finalizar el navegador y volver a iniciarlo con una extensión maliciosa cargada»] class action_terminate_relaunch action action_load_extension[«<b>Acción</b> – <b>T1176 Extensiones del navegador</b><br/>Cargar una extensión maliciosa mediante el interruptor u002du002dloadu2011extension (política DisableLoadExtensionCommandLineSwitch)»] class action_load_extension action action_disable_updates[«<b>Acción</b> – <b>T1176 Extensiones del navegador</b><br/>Deshabilitar las actualizaciones automáticas de Chrome aplicando un archivo .reg manipulado»] class action_disable_updates action action_gather_hmac[«<b>Acción</b> – <b>T1548.006 Secuestro del Modelo de Objetos de Componentes (COM)</b><br/>UtilityAddon.node recopila el SID y el número de serie del volumen, y calcula el HMAC para Secure Preferences»] class action_gather_hmac action action_keypress_sim[«<b>Acción</b> – <b>T1185 Hombre en el navegador (Man in the Browser)</b><br/>El componente BRAT simula pulsaciones de teclas para controlar el navegador»] class action_keypress_sim action action_ad_injection[«<b>Acción</b> – <b>Resultado</b><br/>Manipular la barra de direcciones, inyectar anuncios y robar datos»] class action_ad_injection action %% Conexiones action_create_scheduled_task u002du002d>|habilita| action_wmi_subscription action_wmi_subscription u002du002d>|desencadena| action_terminate_relaunch action_terminate_relaunch u002du002d>|utiliza| action_load_extension action_terminate_relaunch u002du002d>|utiliza| action_disable_updates action_create_scheduled_task u002du002d>|proporciona datos para| action_gather_hmac action_gather_hmac u002du002d>|apoya| action_keypress_sim action_keypress_sim u002du002d>|conduce a| action_ad_injection »
Flujo de Ataque
Detecciones
Actividad de Carga de Extensión de Navegador Sospechosa (vía cmdline)
Ver
IOCs (HashSha256) para detectar: Secuestro de Navegador: Tres Estudios de Técnica
Ver
Secuestro de Navegador mediante Modificación de Archivo de Preferencias [Evento de Archivo de Windows]
Ver
Monitorización de Scripts de PowerShell y Terminación de Procesos del Navegador [Windows PowerShell]
Ver
Ejecución de Simulación
Requisito previo: El Chequeo Previo Telemetría y Línea Base debe haber sido aprobado.
-
Narrativa del Ataque y Comandos:
El adversario ha dejado previamente caer un script malicioso de PowerShell llamado configuration.ps1 en%LOCALAPPDATA%DiagnosticNET. El script monitorea continuamente procesos de navegadores (Chrome, Edge, Firefox) y los termina, forzando al navegador del usuario a reiniciarse y cargar una extensión maliciosa que el atacante previamente colocó en el perfil del usuario. Para activar la detección, el atacante lanza el script a través de una llamada directa de PowerShell:- Cree la carpeta oculta y deje caer el script malicioso.
- Ejecute el script con
powershell.exeusando una línea de comando en texto claro que coincida con la condición de la regla. - El script registra su actividad en la consola (para fines de demostración) y mata los navegadores objetivo.
-
Script de Prueba de Regresión:
# --------------------------------------------------------- # Script de regresión – reproduce la actividad que dispara la detección # --------------------------------------------------------- # 1. Prepare el directorio oculto $targetDir = "$env:LOCALAPPDATADiagnosticNET" if (-not (Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force | Out-Null # Ocultar el directorio (Get-Item $targetDir).Attributes = 'Hidden','Directory' } # 2. Deje caer el configuration.ps1 malicioso $scriptPath = Join-Path $targetDir "configuration.ps1" @' # Script de configuración malicioso – termina navegadores $browsers = @("chrome", "msedge", "firefox") foreach ($proc in $browsers) { Get-Process -Name $proc -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue } Write-Output "Procesos del navegador terminados." '@ | Set-Content -Path $scriptPath -Encoding UTF8 # 3. Ejecute el script a través de PowerShell – esto debería activar la regla Sigma $cmd = "$env:WINDIRSystem32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File `"$scriptPath`"" Write-Host "Ejecutando script malicioso:" $cmd & $env:WINDIRSystem32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File $scriptPath -
Comandos de Limpieza:
# --------------------------------------------------------- # Limpieza – elimina artefactos creados por la prueba de regresión # --------------------------------------------------------- # Detenga cualquier proceso de navegador sobrante que pueda haber terminado # (No se necesita acción – los navegadores pueden reiniciarse manualmente) # Eliminar el script malicioso y la carpeta oculta $targetDir = "$env:LOCALAPPDATADiagnosticNET" if (Test-Path $targetDir) { Remove-Item -Path $targetDir -Recurse -Force } # Opcionalmente, limpie el historial de línea de comandos de PowerShell Clear-History