Este skimmer de tarjetas de crédito se esconde a la vista, literalmente, ya que reside dentro de los metadatos de los archivos de imagen.

Dicen que una imagen vale más que mil palabras. Los actores de la amenaza deben haber recordado eso mientras idearon otra forma de ocultar su skimmer de tarjetas de crédito para evadir la detección.

Cuando investigamos por primera vez esta campaña, pensamos que podría ser otro de esos trucos de favicon, que habíamos descrito en un blog anterior. Sin embargo, resultó ser diferente e incluso más tortuoso.

Encontramos código de ocultación oculto dentro de los metadatos de un archivo de imagen (una forma de esteganografía) y cargado subrepticiamente por tiendas en línea comprometidas. Este esquema no estaría completo sin otra variación interesante para extraer datos de tarjetas de crédito robadas. Una vez más, los delincuentes usaron el disfraz de un archivo de imagen para recoger su botín.

Durante esta investigación, encontramos el código fuente de este skimmer que confirmó lo que estábamos viendo a través del JavaScript del lado del cliente. También identificamos conexiones a otros scripts basados ​​en varios puntos de datos.

Skimmer oculto dentro de los metadatos EXIF

El código malicioso que detectamos se cargó desde una tienda en línea que ejecuta el complemento WooCommerce para WordPress. WooCommerce está siendo cada vez más blanco de delincuentes, y por una buena razón, ya que tiene una gran cuota de mercado.

Figura 1: Malwarebytes que muestra un bloqueo web en un sitio comercial

Malwarebytes ya estaba bloqueando un dominio malicioso llamado cddn[.]sitio que se activó al visitar el sitio web de este comerciante. Tras una inspección más cercana, encontramos que se había agregado un código extraño a un script legítimo alojado por el comerciante.

El código ofensivo carga un archivo favicon de cddn[.]site / favicon.ico que resulta ser el mismo favicon utilizado por la tienda comprometida (un logotipo de su marca). Este es un artefacto del código de descremado que se ha observado públicamente y que denominamos Google loop.

Figura 2: Biblioteca legítima de JavaScript inyectada con código adicional

Sin embargo, nada más lejos de este código indica ningún tipo de actividad de descremado web. Todo lo que tenemos es JavaScript que carga un archivo favicon remoto y parece analizar algunos datos también.

Aquí es donde las cosas se ponen interesantes. Podemos ver un campo llamado “Copyright” desde el que se cargan los datos. Los atacantes están utilizando el campo de metadatos de Copyright de esta imagen para cargar su skimmer web. Usando un visor EXIF, ahora podemos ver que se ha inyectado el código JavaScript:

Figura 3: Visor de metadatos que revela el código JavaScript dentro de la etiqueta de Copyright

El abuso de los encabezados de imágenes para ocultar código malicioso no es nuevo, pero esta es la primera vez que lo presenciamos con un skimmer de tarjeta de crédito.

La presencia de una evaluación es una señal de que el código debe ejecutarse. También podemos ver que los autores del malware lo han ofuscado. Puede encontrar un archivo de este script aquí.

Figura 4: Una parte del JavaScript malicioso oculto dentro de los datos EXIF

Skimmer extrae datos como una imagen

El JavaScript malicioso inicial (Figura 2) carga la porción de descremado del código del favicon.ico (Figura 3) usando un etiqueta, y específicamente a través del evento onerror.

Al igual que con otros skimmers, este también toma el contenido de los campos de entrada donde los compradores en línea ingresan su nombre, dirección de facturación y detalles de la tarjeta de crédito. Codifica a los que usan Base64 y luego invierte esa cadena.

Figura 5: Mismo código cargado a través de una etiqueta img que revela cómo se extraen los datos robados

Sin embargo, viene con un giro, ya que envía los datos recopilados como un archivo de imagen, a través de una solicitud POST, como se ve a continuación:

Figura 6: Ejemplo de una transacción que fue tomada por el skimmer

Los actores de la amenaza probablemente decidieron seguir con el tema de la imagen para ocultar también los datos extraídos a través del archivo favicon.ico.

Skimmer toolkit encontrado al descubierto

Pudimos obtener una copia del código fuente del kit de herramientas de skimmer que estaba comprimido y expuesto en el directorio abierto de un sitio comprometido. El archivo gate.php (también incluido en el archivo zip) contiene toda la lógica del skimmer, mientras que otros archivos se usan como bibliotecas de soporte.

Figura 7: El kit de herramientas del skimmer, dejado en un sitio pirateado y que contiene los archivos fuente PHP

Esto nos muestra cómo el archivo favicon.ico está diseñado con el JavaScript inyectado dentro del campo Copyright. También hay otros artefactos interesantes, como el encabezado HTTP de caché y la fecha de creación de la imagen.

Figura 8: fuente PHP que muestra cómo se inyectan los datos EXIF

El código JavaScript para el skimmer se ofusca usando la biblioteca WiseLoop PHP JS Obfuscator, en línea con lo que vimos en el lado del cliente.

Figura 9: WiseLoop PHP y JS ofuscador

Conexiones a otros skimmers, Magecart grupo 9

Basado en la inteligencia de código abierto, podemos encontrar más detalles sobre cómo este skimmer puede haber evolucionado. Se encontró una versión anterior de este skimmer alojada en jqueryanalise[.]xyz (archivo aquí). Carece de alguna ofuscación encontrada en el caso más reciente que encontramos, pero existen las mismas características principales, como cargar JavaScript a través del campo Copyright (metadatos de un archivo de imagen).

Figura 10: Conexión de dominios de skimmer y correos electrónicos de registrante

También podemos conectar este actor de amenazas a otro script de descremado basado en el correo electrónico del registrante (rotrnberg.s4715@gmail[.]com) para cddn[.]sitio. Dos dominios (cxizi[.]net y yzxi[.]net) comparte el mismo código de skimmer que parece mucho más elaborado y no parece tener mucho en común con las otras dos piezas de JavaScript (archivo aquí).

Figura 11: Un artefacto del nuevo skimmer

Mientras lo depuramos, podemos detectar la cadena “ars” dentro de una ruta URL. Se vio que esa misma cadena se usaba en el primer skimmer (ver Figura), aunque podría muy bien ser una coincidencia.

La exfiltración de datos también es bastante diferente. Si bien el tipo de contenido es una imagen nuevamente, esta vez vemos una solicitud GET donde los datos robados solo están codificados en Base64, y en su lugar se pasan como un parámetro de URL.

Figura 12: Exfiltración de datos para este skimmer más avanzado

Finalmente, este skimmer puede tener vínculos con Magecart Group 9. El investigador de seguridad @AffableKraut señaló que un dominio (magentorate)[.]com) el uso de esta técnica de descremado de metadatos EXIF ​​tiene el mismo host búlgaro, el mismo registrador, y se registró dentro de una semana de magerados[.]com.

Figura 13: Una posible conexión al grupo 9 de Magecart

Magerates[.]com está registrado en newserf@mail.ru, que también tiene otros dominios de skimmer, y en particular varios utilizados a través de otra técnica de evasión inteligente en forma de WebSockets. Este tipo de skimmer estaba vinculado al Grupo 9 de Magecart, originalmente revelado por Yonathan Klijnsma.

El seguimiento de skimmers digitales no es una tarea fácil en estos días, ya que hay muchos actores de amenazas e innumerables variaciones de scripts de skimming basados ​​en kits de herramientas o que son completamente personalizados.

Continuamos rastreando e informando a los skimmers en un esfuerzo por proteger a los compradores en línea de esta campaña y decenas de otros.

Indicadores de compromiso

Skimmers EXIF

cddn[.]sitio
magentoratos[.]com
pixasbay[.]com
lebs[.]sitio
bestcdnforbusiness[.]com
apilivechat[.]com
undecoveria[.]com
wosus[.]sitio

Skimmer EXIF ​​mayor

jqueryanalise[.]xyz
jquery-analitycs[.]com

Skimmer # 3

xciy[.]red
yxxi[.]red
cxizi[.]red
yzxi[.]red

Otros skimmers

sonol[.]sitio
webtrans[.]sitio
koinweb[.]sitio
xoet[.]sitio
ads-fbstatistic[.]com
bizrateservices[.]com
remolque[.]com
equipos de sistemas[.]informacion
j-consultas[.]com

Correos electrónicos registrados

anya.barber56@gmail[.]com
smithlatrice100 @ yahoo[.]com
rotrnberg.s4715@gmail[.]com
newserf @ mail[.]ru