Trazando una Cadena de Eliminación de Akira Ransomware a Través de Registros Perimetrales y de Puntos Finales
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
El artículo describe una intrusión reciente vinculada a la operación de ransomware Akira. Los atacantes obtuvieron acceso inicial mediante fuerza bruta a una cuenta SSL VPN local deshabilitada, para luego pasar al descubrimiento de credenciales, Kerberoasting y movimiento lateral a través de RDP. Antes de lanzar la encriptación, limpiaron los registros y eliminaron copias de sombra. Notablemente, toda la secuencia fue visible a través de datos syslog del cortafuegos y registros de Windows EVTX, sin depender de herramientas de detección en el endpoint. El informe destaca cómo combinando telemetría de perímetro y de endpoint se puede exponer la actividad de ransomware en sus etapas iniciales.
Investigación
La investigación se basó exclusivamente en registros de la cortafuegos SSL VPN y exportaciones de registros de eventos de Windows recopilados de controladores de dominio y servidores miembros. Los ID de eventos, incluyendo 4624, 4688, 4769, 1102, y 7036 fueron correlacionados para reconstruir toda la cadena de ataque desde el acceso inicial hasta el impacto final. Las técnicas observadas incluyeron relleno de credenciales, descubrimiento de dominio, Kerberoasting, autenticación RDP, limpieza de registros y eliminación de copias de sombra. No se necesitaron imágenes de memoria ni telemetría EDR para mapear la intrusión.
Mitigación
El informe recomienda endurecer la seguridad de acceso remoto, imponer MFA, eliminar cuentas deshabilitadas de las listas de acceso del cortafuegos y fortalecer las políticas de bloqueo de autenticación. También aconseja habilitar auditorías de procesos detalladas con el ID de Evento 4688 en todos los sistemas, aumentar la retención del registro de seguridad y enviar registros críticos a almacenamiento externo. El contenido de detección debería cubrir específicamente tickets Kerberos basados en RC4, vssadmin eliminación de copias de sombra y comandos inesperados de PowerShell usando -EncodedCommand. La sincronización de tiempo consistente a través de la infraestructura también es esencial para una correlación confiable.
Respuesta
Cuando aparezcan cualquiera de los indicadores identificados, los respondedores deberían aislar inmediatamente la cuenta VPN comprometida y poner en cuarentena los sistemas afectados. Los registros relevantes del cortafuegos y EVTX deberían ser preservados, las credenciales restablecidas, las cuentas comprometidas deshabilitadas, y las copias de sombra restauradas de respaldos limpios donde estén disponibles. Se debe realizar una revisión forense completa para identificar cualquier persistencia adicional o actividad de seguimiento, mientras se activan los procedimientos de respuesta ante ransomware. Los interesados deben ser informados de inmediato, y debería considerarse la divulgación pública cuando sea necesario.
"graph TB %% Class definitions classDef phase fill:#ffcc99 classDef tool fill:#c2f0c2 %% Node definitions phase_initial_access["<b>Fase</b> – Acceso Inicial<br/><b>Técnica</b> – T1133 Servicios Remotos Externos<br/><b>Descripción</b>: Uso de credenciales robadas contra SSL VPN con una cuenta local comprometida."] class phase_initial_access phase tech_valid_accounts["<b>Técnica</b> – T1078 Cuentas Válidas<br/><b>Descripción</b>: Uso de credenciales robadas para iniciar sesión en la VPN."] class tech_valid_accounts phase phase_discovery["<b>Fase</b> – Descubrimiento<br/><b>Técnica</b> – T1482 Descubrimiento de Confianza de Dominio<br/><b>Descripción</b>: Enumerar confianzas de dominio usando nltest."] class phase_discovery phase tech_account_discovery["<b>Técnica</b> – T1087 Descubrimiento de Cuentas<br/><b>Descripción</b>: Enumerar grupos y usuarios vía net.exe y whoami."] class tech_account_discovery phase phase_credential_access["<b>Fase</b> – Acceso a Credenciales<br/><b>Técnica</b> – T1558.003 Kerberoasting<br/><b>Descripción</b>: Solicitar tickets de servicio RC4 para descifrar contraseñas de cuentas de servicio."] class phase_credential_access phase phase_lateral_movement["<b>Fase</b> – Movimiento Lateral<br/><b>Técnica</b> – T1021.001 Protocolo de Escritorio Remoto de Servicios Remotos<br/><b>Descripción</b>: Usar RDP para moverse lateralmente a servidores y controladores de dominio."] class phase_lateral_movement phase phase_persistence["<b>Fase</b> – Persistencia y Escalada de Privilegios<br/><b>Técnica</b> – T1136 Crear Cuenta<br/><b>Descripción</b>: Crear una nueva cuenta de servicio en una OU no predeterminada y añadirla a grupos privilegiados."] class phase_persistence phase phase_execution["<b>Fase</b> – Ejecución<br/><b>Técnica</b> – T1059.001 PowerShell<br/><b>Descripción</b>: Ejecutar scripts de PowerShell con -EncodedCommand.<br/><b>Técnica</b> – T1059.003 Shell de Comando de Windows<br/><b>Descripción</b>: Usar cmd.exe para varios comandos."] class phase_execution phase phase_defense_evasion["<b>Fase</b> – Evasión de Defensa<br/><b>Técnica</b> – T1070.001 Limpiar Registros de Eventos de Windows<br/><b>Descripción</b>: Limpiar registros de eventos de Windows.<br/><b>Técnica</b> – T1562 Impedir Defensas<br/><b>Descripción</b>: Detener servicios de seguridad usando sc.exe o net stop."] class phase_defense_evasion phase phase_impact["<b>Fase</b> – Impacto<br/><b>Técnica</b> – T1490 Inhibir Recuperación del Sistema<br/><b>Descripción</b>: Eliminar copias de sombra con vssadmin.<br/><b>Técnica</b> – T1565.001 Manipulación de Datos Almacenados<br/><b>Descripción</b>: Encriptar archivos en disco."] class phase_impact phase tool_ssl_vpn["<b>Herramienta</b> – Cliente SSL VPN"] class tool_ssl_vpn tool tool_nltest["<b>Herramienta</b> – Utilidad nltest"] class tool_nltest tool tool_net["<b>Herramienta</b> – Utilidad net.exe"] class tool_net tool tool_whoami["<b>Herramienta</b> – Comando whoami"] class tool_whoami tool tool_powershell["<b>Herramienta</b> – PowerShell"] class tool_powershell tool tool_cmd["<b>Herramienta</b> – cmd.exe"] class tool_cmd tool tool_sc["<b>Herramienta</b> – Comando sc.exe"] class tool_sc tool tool_vssadmin["<b>Herramienta</b> – Utilidad vssadmin"] class tool_vssadmin tool %% Connections showing flow phase_initial_access –>|conduce a| tech_valid_accounts tech_valid_accounts –>|conduce a| phase_discovery phase_discovery –>|conduce a| tech_account_discovery tech_account_discovery –>|conduce a| phase_credential_access phase_credential_access –>|conduce a| phase_lateral_movement phase_lateral_movement –>|conduce a| phase_persistence phase_persistence –>|conduce a| phase_execution phase_execution –>|conduce a| phase_defense_evasion phase_defense_evasion –>|conduce a| phase_impact %% Tool usage edges phase_initial_access –>|usa| tool_ssl_vpn phase_discovery –>|usa| tool_nltest phase_discovery –>|usa| tool_net phase_discovery –>|usa| tool_whoami phase_execution –>|usa| tool_powershell phase_execution –>|usa| tool_cmd phase_defense_evasion –>|usa| tool_sc phase_impact –>|usa| tool_vssadmin "
Flujo de Ataque
Detecciones
Posible Enumeración de Cuenta o Grupo de Administrador (vía línea de comando)
Ver
Posible Enumeración / Manipulación de Cuenta o Grupo (vía línea de comando)
Ver
Descubrimiento Sospechoso de Confianzas de Dominio (vía línea de comando)
Ver
Actividad Sospechosa de VSSADMIN (vía línea de comando)
Ver
Detección de Movimiento Lateral Basado en RDP y Escalada de Privilegios a Nivel de Dominio [Registro de Eventos de Seguridad de Microsoft Windows]
Ver
Detección de Fuerza Bruta SSLVPN y Relleno de Credenciales [Cortafuegos]
Ver
Ejecución de Simulación
Prerequisito: La Verificación Previa de Telemetría y Línea de Base debe haber sido aprobada.
Razonamiento: 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 y Comandos de Ataque:
- Reconocimiento (T1087): El atacante enumera nombres de usuario de un sistema interno comprometido y construye una lista de relleno de credenciales (por ejemplo,
users.txt). - Bucle de Fuerza Bruta (T1021.001 / T1078.001): Usando un rango IP externo comprometido perteneciente a un proveedor de alojamiento conocido (por ejemplo,
203.0.113.45), el atacante lanza una serie rápida de intentos fallidos de autenticación SSLVPN (≥ 50) dentro de una hora. Cada intento usa una contraseña diferente de la lista, apuntando a una única cuenta de víctima. - Relleno de Credenciales Exitoso: Después de agotar la lista, se encuentra una contraseña correcta; el atacante inicia sesión con éxito desde la misma IP, cumpliendo la cláusula “successful_auth”.
- Evasión (Opcional – T1070.001): El atacante limpia el registro de Seguridad en el equipo VPN después del inicio de sesión exitoso para ocultar rastros (no cubierto por esta regla).
- Reconocimiento (T1087): El atacante enumera nombres de usuario de un sistema interno comprometido y construye una lista de relleno de credenciales (por ejemplo,
-
Script de Prueba de Regresión: Script de Bash utilizando
curl(funciona en caja atacante Linux). Ajustar variables para un entorno real.#!/usr/bin/env bash # ------------------------------------------------------------------ # Simular fuerza bruta / relleno de credenciales en SSLVPN para activar la regla Sigma # ------------------------------------------------------------------ VPN_ENDPOINT="https://vpn.ejemplo.com/remote/auth" USERNAME="usuario_victima" PASSWORD_LIST="passwords.txt" # una contraseña por línea SOURCE_IP="203.0.113.45" # debe ser enrutable al VPN # Función para realizar un intento de inicio de sesión attempt_login() { local pwd="$1" # Usando --silent para evitar desorden; --write-out para capturar el código HTTP curl --silent --output /dev/null --write-out "%{http_code}" --user "$USERNAME:$pwd" "$VPN_ENDPOINT" } # 1. Generar 55 intentos fallidos (tasa ~1/seg) echo "Iniciando intentos fallidos..." count=0 while IFS= read -r pwd && [ $count -lt 55 ]; do http_code=$(attempt_login "$pwd") echo "Intento $((count+1)): HTTP $http_code (esperado 401)" ((count++)) sleep 1 # mantener dentro de la ventana de 1 hora done < "$PASSWORD_LIST" # 2. Inicio de sesión exitoso con la contraseña correcta (suponer la última línea del archivo) echo "Realizando inicio de sesión exitoso..." correct_pwd=$(tail -n1 "$PASSWORD_LIST") http_code=$(attempt_login "$correct_pwd") echo "Intento exitoso: HTTP $http_code (esperado 200)" echo "Simulación completa." -
Comandos de Limpieza: Retirar cualquier archivo temporal y restablecer la limitación de tasa de cortafuegos (si se alteró).
#!/usr/bin/env bash # Limpieza después de la simulación de fuerza bruta en SSLVPN # Eliminar la lista de contraseñas temporales si se creó sobre la marcha if [ -f passwords.txt ]; then shred -u passwords.txt echo "Eliminado passwords.txt" fi # Opcionalmente, restablecer cualquier regla temporal de iptables utilizada para pruebas sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true echo "Limpieza terminada."