← Todas las notas de campo

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

  1. 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.
  2. El script incrustado abre el navegador predeterminado y redirige a un sitio que imita un portal gubernamental.
  3. El sitio falso ofrece una descarga: DEMANDA POR DAÑOS Y PERJUICIOS_BBF259.zip.
  4. Dentro del archivo comprimido, 04 BOLETA JUDICIAL.exe actúa como cargador.
  5. 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.exe y 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, .js y 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.exe es 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.