Contrabando por SVG: un infostealer disfrazado de citación judicial
Un archivo .svg con JavaScript incrustado dio inicio a una cadena de ingeniería social que terminó en un infostealer descargado. Sin macro, sin exploit, solo un tipo de archivo del que nadie espera que ejecute código.
En un caso que investigamos hace poco, un archivo .svg fue el vector de infección inicial de
una campaña de ingeniería social armada alrededor de una falsa amenaza legal. Mucha gente
considera que un .svg es seguro de abrir porque parece una imagen y no un archivo ejecutable.
Esa suposición es justamente lo que lo vuelve interesante para un atacante.
El señuelo
Un correo de phishing enviado desde una cuenta de Gmail entregaba un archivo llamado
Citacion obligatoria por amenazas, insultos y trato_0FA5B4.svg, presentado como un aviso legal
oficial.
Cadena de ejecución
- La víctima abre el adjunto
.svg. SVG es un formato basado en XML, y XML puede llevar etiquetas<script>incrustadas. La mayoría de las personas, y bastantes herramientas de seguridad, no esperan que un archivo de imagen ejecute JavaScript. - El script incrustado abre el navegador predeterminado y redirige a un sitio que imita un portal gubernamental.
- El sitio falso ofrece una descarga:
DEMANDA POR DAÑOS Y PERJUICIOS_BBF259.zip. - Dentro del archivo comprimido,
04 BOLETA JUDICIAL.exeactúa como cargador. - El cargador despliega componentes adicionales asociados a un infostealer.
El tipo de archivo es el truco
Sin exploits sofisticados y sin macros. La primera etapa se apoya en que la víctima crea que un archivo .svg es solo una imagen y, por lo tanto, seguro de abrir. En realidad, SVG es un formato de texto capaz de ejecutar scripts. A eso se le suma un nombre de archivo diseñado para generar urgencia, una amenaza legal escrita en el idioma de la víctima, y queda un señuelo dirigido al criterio de la víctima antes que a los controles técnicos que protegen el sistema.
Los componentes del infostealer
El cargador no es el objetivo. Junto a 04 BOLETA JUDICIAL.exe, el caso dejó dos DLL
(wblindp2.dll, SdAppServices.dll) y dos ejecutables más (Crisp.exe, AxisOr.exe): los
componentes que el cargador existe para desplegar, y la parte de la cadena asociada al
infostealer.
Remediación
- Tratar como comprometida toda credencial que estuviera al alcance del equipo: contraseñas guardadas en el navegador, cookies de sesión y tokens de aplicaciones. Restablecerlas e invalidar las sesiones activas, no solo cambiar la contraseña.
- Eliminar del equipo los artefactos entregados: el archivo comprimido descargado,
04 BOLETA JUDICIAL.exey los componentes listados en los indicadores. - Sacar de los registros de proxy y DNS el dominio del portal falso y la URL de descarga en la ventana afectada, bloquearlos a nivel de red y revisar si algún otro equipo los alcanzó.
- Volver a revisar los buzones en busca de más copias del adjunto.
MITRE ATT&CK
Técnicas observadas en este caso.
| Táctica | Técnica | ID |
|---|---|---|
| Acceso inicial | Phishing: Spearphishing Attachment | T1566.001 |
| Evasión de defensas | Obfuscated Files or Information: HTML Smuggling | T1027.006 |
| Ejecución | User Execution: Malicious File | T1204.002 |
| Ejecución | Command and Scripting Interpreter: JavaScript | T1059.007 |
| Ejecución | User Execution: Malicious Link | T1204.001 |
| Evasión de defensas | Masquerading: Match Legitimate Name or Location | T1036.005 |
| Comando y control | Ingress Tool Transfer | T1105 |
El comportamiento de recolección y exfiltración del propio infostealer no se confirmó en esta investigación, así que se deja sin mapear a propósito en vez de asumirlo por el nombre de la familia.
Indicadores de compromiso
Señuelo (SVG) Citacion obligatoria por amenazas, insultos y trato_0FA5B4.svg
Archivo comprimido DEMANDA POR DAÃ_OS Y PERJUCIOS_BBF259.zip (artefacto de codificación observado)
Cargador 04 BOLETA JUDICIAL.exe
wblindp2.dll 9852c70d507ffe187069aba3e4edf10eba384de8e4a8f962fb1ecd921184a3b4
SdAppServices.dll 8c335c5a4bb3a950432df16b90735d51c962451fb14ccdf486b5340edfe11b4b
04 BOLETA JUDICIAL.exe 19d78cd26cbfeb0800508063359f149f271fd7904d1ee0983ec24ba9efcb11e5
Crisp.exe c2e62475768c9546efe1da92a55f3bb2a55350eed83241139917aabd1ad25f8a
AxisOr.exe cb26f2f14b0c15180014a6262a8599bd0d8e4a0ef44445ee360725df3d18655e
Notas de detección
- Filtrar por lo que un formato puede hacer, no por lo que parece. SVG es XML, y XML admite
<script>. Un filtrado de adjuntos que marca.exe,.jsy documentos de Office con macros deja pasar un SVG sin tocarlo. - Un adjunto de imagen que abre un navegador es la señal. La primera acción observable de esta cadena es el lanzamiento del navegador predeterminado a partir de un adjunto abierto. En ese punto todavía no hay binario sospechoso: hay una relación entre procesos que no tiene sentido.
- Perseguir los componentes, no el cargador. Los cargadores son desechables y
04 BOLETA JUDICIAL.exees apenas el punto de entrada. Una cacería basada solo en el hash del cargador caduca rápido; los componentes desplegados y la infraestructura de entrega aguantan más.
El punto central
Aquí no se explotó nada. Cada paso de la cadena se apoyó en que algo fuera tomado por lo que aparentaba: un adjunto que parecía una imagen, un portal que parecía oficial, un comprimido que parecía el documento que prometió.
Ahí mismo es donde se rompe. Los controles que importan son los que juzgan un formato por lo que puede hacer y no por su extensión, y el análisis que sigue adelante después de ponerle nombre al cargador.
Y la parte que ningún control resuelve: urgencia más autoridad sigue funcionando. Una falsa citación, en el idioma de la víctima, de una autoridad que esa persona no tiene cómo verificar, cae igual sin importar por dónde haya llegado.