Los investigadores de ESET han descubierto un conjunto de familias de malware, que no habían sido documentadas previamente, que se implementan como extensiones maliciosas para el software del servidor web Internet Information Services (IIS). Apuntando tanto a servidores de correo electrónico de gobiernos como a sitios que realizan transacciones de comercio electrónico, además de ayudar en la distribución de malware, esta amenaza opera mediante la escucha a escondidas y la manipulación de las comunicaciones del servidor.

Además de proporcionar un completo desglose de las familias recientemente descubiertas, nuestro nuevo whitepaper, titulado “Anatomy of native IIS malware”, funciona como guía para ayudar a detectar, analizar y mitigar esta clase de amenazas que se ubican del lado del servidor. En esta publicación, resumimos los principales hallazgos que describimos con mayor profundidad en este documento.

También estamos lanzando una serie de publicaciones en las que presentamos las familias de malware para IIS más notables de las que fueron recientemente descubiertas, así como casos de estudio acerca de cómo se usa este tipo de malware para el ciberdelito, el ciberespionaje y el fraude de SEO. Además de este artículo en el cual hacemos una descripción general de la investigación, puede leer el primer artículo de esta serie titulado: “IIStealer: una amenaza para las transacciones de comercio electrónico que se encuentra del lado del servidor”.

Los resultados de nuestra investigación de malware para IIS se presentaron por primera vez en Black Hat EE.UU. 2021 y también serán presentados en la edición 2021 de la conferencia Virus Bulletin que se realizará el 8 de octubre.

Internet Information Service, conocido también por sus siglas IIS, es el software para el servidor web de Microsoft Windows que presenta una arquitectura modular extensible y que, desde la versión 7.0, admite dos tipos de extensiones: módulos nativos (DLL en C ++) y administrados (ensamblaje .NET). Centrándonos en módulos nativos para IIS que son maliciosos, hemos encontrado más de 80 muestras únicas que fueron utilizadas de manera activa en el contexto de una campaña y las clasificamos en 14 familias de malware, 10 de las cuales no habían sido documentadas anteriormente. Las soluciones de seguridad de ESET detectan estas familias como Win{32,64}/BadIIS y Win{32,64}/Spy.IISniff.

Como funciona el malware para IIS

El malware para IIS es un tipo de amenaza que se utiliza para el ciberdelito, el ciberespionaje y el fraude SEO, pero en todos los casos, su objetivo principal es interceptar las solicitudes HTTP que ingresan al servidor IIS comprometido y afectar la forma en que el servidor responde a (algunas de) estas solicitudes.

Con la instalación predeterminada IIS ya es persistente, por lo que no es necesario que el malware para IIS basado en extensiones implemente mecanismos de persistencia adicionales. Una vez configurada como una extensión de IIS, el módulo malicioso para IIS es cargado por el proceso de trabajo de IIS (w3wp.exe), el cual maneja las solicitudes enviadas al servidor. Aquí es donde el malware que apunta a IIS puede interferir con el procesamiento de la solicitud.

Identificamos cinco modos principales en los que opera el malware para IIS, como se ilustra en la Figura 1:

  • Los backdoor para IIS permiten a sus operadores controlar de forma remota la computadora comprometida que tiene IIS instalado
  • Los infostealers (ladrones de información) para IIS permiten a sus operadores interceptar el tráfico regular entre el servidor comprometido y sus visitantes legítimos, para robar información como credenciales de inicio de sesión e información de pago. El uso de HTTPS no evita este ataque, ya que el malware para IIS puede acceder a todos los datos manejados por el servidor, que es donde se procesan los datos en su estado no cifrado.
  • Los injectors para IIS modifican las respuestas HTTP enviadas a visitantes legítimos para ofrecer contenido malicioso
  • Los proxies para IIS convierten el servidor comprometido en una parte de la infraestructura de C&C para otra familia de malware y hacen un mal uso del servidor IIS para transmitir la comunicación entre las víctimas de ese malware y el servidor de C&C real
  • El malware para IIS mediante fraude de SEO modifica el contenido que se envía a los motores de búsqueda para manipular los algoritmos SERP y mejorar el posicionamiento de otros sitios web de interés para los atacantes

Figure 1. Overview of IIS malware mechanisms

Imagen 1. Descripción general de los mecanismos que utiliza el malware para IIS

Todos estos tipos de malware se analizan en profundidad en el documento.

Cómo (y dónde) se distribuye

Los módulos nativos para IIS tienen acceso sin restricciones a cualquier recurso disponible para el proceso de trabajo del servidor; por lo tanto, se necesitan permisos de nivel administrador para instalar malware nativo para IIS. Esto reduce considerablemente las opciones para el vector de ataque inicial. Hemos visto evidencia de los siguientes dos escenarios:

  • El malware para IIS se propaga como una versión troyanizada de un módulo IIS legítimo
  • El malware para IIS se propaga a través de la explotación del servidor

Por ejemplo, entre marzo y junio de 2021, detectamos una ola de backdoors para IIS siendo propagados a través de la explotación de la cadena de vulnerabilidades de RCE en Microsoft Exchange (CVE-2021-26855, CVE-2021-26857, CVE-2021-26858, y CVE-2021-27065), también conocida como ProxyLogon. El objetivo específico fueron los servidores de Exchange que tienen Outlook en la web (también conocido como OWA) habilitado. Dado que IIS se usa para implementar OWA, estos fueron un objetivo particularmente interesante para el espionaje.

Después de que informáramos en marzo de 2021 el primer caso de este tipo, hemos detectado cuatro campañas más de varios backdoors para IIS buscando aprovechar la misma vulnerabilidad en Microsoft Exchange. Para complementar nuestra telemetría, hemos realizado un escaneo de Internet para detectar la presencia de estos backdoors, lo que nos permitió identificar y notificar a otras víctimas del malware.

La Imagen 2 muestra las ubicaciones geográficas de los servidores afectados por estas cinco campañas, utilizando datos de nuestra telemetría y escaneos de Internet.

Figure 2. Victims of native IIS backdoors spread via the ProxyLogon vulnerability chain

Imagen 2. Víctimas de los backdoors nativos para IIS que se propagaron a través de la cadena de vulnerabilidades de ProxyLogon

Las siguientes entidades estaban entre las víctimas:

  • Instituciones gubernamentales en tres países del sudeste asiático
  • Una importante empresa de telecomunicaciones en Camboya
  • Una institución dedicada a la investigación en Vietnam
  • Docenas de empresas privadas pertenecientes a diferentes industrias, ubicadas principalmente en Canadá, Vietnam e India, y otras en los EE. UU., Nueva Zelanda, Corea del Sur y otros países

Tenga en cuenta que, si bien los backdoors para IIS pueden ser adecuados para espiar cuentas de correo de alto perfil, las víctimas del malware para IIS no se limitan a los servidores comprometidos; todos los visitantes legítimos de los sitios web alojados en estos servidores son potenciales víctimas, ya que el malware puede usarse para robar datos confidenciales de los visitantes (infostealers para IIS) o entregar contenido malicioso (injectors para IIS). Por favor, consulte el whitepaper para más información sobre las víctimas de las otras familias de malware para IIS analizadas.

Análisis del malware nativo para IIS

Desde el punto de vista técnico, todos los tipos de malware nativo para IIS se implementan como bibliotecas de vínculos dinámicos (DLL) escritas utilizando el API para IIS en C++. Cualquier DLL de este tipo debe:

  • Implementar una clase heredada de la clase CHttpModule o CGlobalModule (o ambos) y anular varios de los métodos de esa clase (controladores de eventos)
  • Exportar la función RegisterModule, que es el punto de entrada de la biblioteca, responsable de crear las instancias de estas clases y registrar los controladores implementados para los eventos del servidor, como se ilustra en la Imagen 3.

Figure 3. A typical RegisterModule function of native IIS malware

Imagen 3. Una función típica de RegisterModule del malware nativo para IIS

Los eventos del servidor (server events) se refieren a los pasos que realiza el servidor IIS durante el procesamiento de la solicitud (consulte la Imagen 4), pero también a otras acciones realizadas por el servidor (por ejemplo, enviar una respuesta HTTP). Estos eventos generan notificaciones de eventos, que son manipuladas por controlares de eventos implementados en los módulos del servidor (ver Imagen 5).

Figure 4. HTTP request-processing pipeline in IIS

Imagen 4. Procesamiento de solicitudes HTTP en IIS

En resumen, es en los controladores de eventos (o los métodos de las clases principales del módulo IIS) donde se implementa la funcionalidad maliciosa del malware para IIS y donde cualquier ingeniero inverso debe enfocar su análisis. Para profundizar en los aspectos básicos del malware para IIS y cómo analizar dichos binarios, consulte la sección "Anatomy of native IIS malware" de nuestro whitepaper.

Imagen 5. Controladores de eventos: métodos de las clases del módulo, CHttpModule y CGlobalModule

Comunicación de red

Una característica notable del malware para IIS es cómo se comunica con sus operadores. Los módulos maliciosos para IIS, especialmente los backdoors para IIS, no suelen crear nuevas conexiones a sus servidores C&C. Funcionan como implantes pasivos, lo que permite a los atacantes controlarlos proporcionando algún "secreto" en una solicitud HTTP enviada al servidor web IIS comprometido. Es por eso que los backdoors para IIS generalmente tienen un mecanismo para reconocer las solicitudes realizadas por los atacantes que son utilizadas para controlar el servidor y tienen una estructura predefinida, como:

  • URL o cuerpo de solicitud que coincida con una expresión regular específica
  • La presencia de un encabezado HTTP personalizado específico
  • Un token incrustado (en la URL, el cuerpo de la solicitud o en uno de los encabezados) que coincida con una contraseña hardcodeada
  • Un valor de hash de un token embebido que coincide con un valor hardcodeado
  • Una condición más compleja, por ejemplo, una relación entre todo lo anterior

Figure 6. Passive C&C communication channel (IIS backdoors)

Imagen 6. Canal de comunicación C&C pasivo (backdoors para IIS)

Por otro lado, algunas categorías de malware para IIS implementan una canal de C&C alternativo —usando protocolos como HTTP o DNS— para obtener la configuración actual sobre la marcha. Por ejemplo, un injector para IIS se pone en contacto con su servidor de C&C cada vez que hay una nueva solicitud de un visitante legítimo del sitio web comprometido, y utiliza la respuesta del servidor para modificar el contenido entregado a ese visitante (como código malicioso o adware).

Figure 7. Alternative C&C communication mechanism (IIS injectors)

Imagen 7. Mecanismo de comunicación alternativo con el C&C (injectors para IIS)

La Tabla 1 resume cómo son implementados por las 14 familias de malware para IIS analizadas los canales de comunicación con el C&C, así como otras técnicas notables.

Group #
Functionality
#colspan# #colspan# #colspan# #colspan#
C&C channel
#colspan# #colspan# Detection evasion and obfuscation techniques
Backdoor Infostealer Proxy SEO fraud Injector Attacker request verification (e.g. specific header present, specific URI, query string parameter) Encryption/
encoding
Alternative channel protocol #rowspan#
Group 1 HTTP header with hardcoded password base64
Group 2 HTTP header with hardcoded password RSA + AES-CBC
Group 3 HTTP header present base64
Group 4 HTTP header with hardcoded password XOR + base64 Anti-logging
Group 5 URI and HTTP header with hardcoded password String stacking
Group 6 Query string parameter
Group 7 Relationship between HTTP headers, HTTP body format AES-CBC Anti-logging
Group 8 HTTP header with hardcoded password
Group 9 No support for attacker requests HTTP Encrypted strings (XOR 0x56)
Group 10 No support for attacker requests HTTP to obtain JavaScript config
Group 11 HTTP header with hardcoded password DNS TXT to obtain config, HTTP for C&C String encryption (ADD 0x02)
Group 12, variant A HTTP header with password whose MD5 hash is hardcoded HTTP String encryption (ADD 0x01)
Group 12, variant B #rowspan# HTTP UPX packing
Group 12, variant C No support for attacker requests HTTP String encryption (XOR 0x0C)
Group 13 Query string parameter HTTP
Group 14 No support for attacker requests HTTP

Tabla 1. Resumen de las ofuscaciones implementadas y las funcionalidades admitidas por las familias de malware para IIS analizadas.

Mitigación

Dado que los módulos nativos para IIS solo se pueden instalar con privilegios de administrador, los atacantes primero deben obtener acceso elevado al servidor IIS. Las siguientes recomendaciones podrían ayudar a que su trabajo sea más difícil:

  • Utilice cuentas dedicadas con contraseñas únicas y seguras para la administración del servidor IIS. Solicite autenticación multifactor (MFA) para estas cuentas. Supervise el uso de estas cuentas.
  • Instale periódicamente las actualizaciones de seguridad para su sistema operativo y revise cuidadosamente qué servicios están expuestos a Internet para reducir el riesgo de explotación del servidor.
  • Considere usar un firewall de aplicaciones web y/o una solución de seguridad para endpoints en su servidor IIS.
  • Los módulos nativos para IIS tienen acceso sin restricciones a cualquier recurso disponible para el proceso de trabajo del servidor; solo debe instalar módulos IIS nativos de fuentes confiables para evitar la descarga de versiones troyanizadas. Sea especialmente consciente de los módulos que prometen características demasiado buenas para ser verdad, como mejorar mágicamente el SEO.
  • Verifique regularmente la configuración del servidor IIS para corroborar que todos los módulos nativos instalados sean legítimos (firmados por un proveedor confiable o instalados a propósito).

Para más detalles sobre cómo detectar y eliminar el malware para IIS, consulte la sección Mitigación de nuestro whitepaper. También publicamos un conjunto de reglas YARA que puede aprovechar para detectar las 14 familias de malware para IIS analizadas.

Conclusión

Los servidores web Internet Information Services (IIS) han sido atacados por varios actores malintencionados, tanto para el ciberdelito como para el ciberespionaje. La arquitectura modular del software, diseñada para proporcionar extensibilidad a los desarrolladores web, puede ser una herramienta útil para que los atacantes logren ser parte del servidor IIS e intercepten o modifiquen su tráfico.

Todavía es bastante raro que se utilice un software de seguridad para endpoints (y otros) en servidores IIS, lo que facilita que los atacantes puedan operar sin ser detectados durante largos períodos de tiempo. Esto debería llamar la atención de todos los portales web serios que desean proteger los datos de sus visitantes, incluida las credenciales de autenticación y la información de pago. Las organizaciones que usan OWA también deben prestar atención, ya que depende de IIS y podrían ser un blanco de ataque interesante para el espionaje.

Si bien las amenazas dirigidas a los servidores IIS no se limitan al malware nativo para IIS, creemos que este documento será un punto de partida útil para que quienes trabajan en seguridad comprendan, identifiquen y eliminen las amenazas que apuntan a IIS, y una guía para que nuestros colegas investigadores realicen ingeniería inversa en esta clase de amenazas y comprendan sus tácticas, técnicas y procedimientos más comunes.

Detalles técnicos adicionales sobre el malware y los Indicadores de Compromiso pueden encontrarse en nuestro whitepaper y en GitHub. Por cualquier consulta o para enviar muestra relacionadas con este tema, contáctenos a través de threatintel@eset.com.

Un especial agradecimiento a los investigadores de malware de ESET Marc-Étienne Léveillé y Mathieu Tartare por su trabajo en esta investigación.