Investigadores de ESET han descubierto y analizado un troyano del lado del servidor previamente indocumentado que manipula los resultados de los motores de búsqueda mediante el secuestro de la reputación de los sitios web que compromete. Nombramos al troyano IISerpent para destacar sus dos principales características: implementarse como una extensión maliciosa para el servidor web Internet Information Services (IIS) y utilizar técnicas para manipular los resultados de las páginas en los motores de búsqueda (SERP). Los operadores de IISerpent utilizan una variedad de técnicas de optimización para motores de búsqueda (SEO), en un intento por mejorar el posicionamiento de páginas de sitios web de terceros (probablemente sean los clientes que pagan a estos delincuentes).

Este artículo es la última entrega de una serie que se desprende de la investigación realizada por el equipo de ESET Research en la que ponen bajo el microscopio distintas amenazas dirigidas al servidor web IIS. En los artículos previos se analizó un malware para IIS utilizado para el ciberdelito y otro para el ciberespionaje. Para obtener una guía completa sobre cómo detectar, analizar y eliminar el malware para IIS, consulte nuestro whitepaper Anatomy of native IIS malware, en el cual IISerpent aparece como una de las familias analizadas (Grupo 13).

Resumen del ataque

IISerpent se implementa y configura como una extensión maliciosa para IIS, el software del servidor web de Microsoft. Eso permite al malware interceptar todas las solicitudes HTTP realizadas a los sitios web alojados por el servidor comprometido, pero también cambiar activamente las respuestas HTTP del servidor. En los artículos previos de esta misma serie analizamos cómo otras familias de malware para IIS aprovechan estos poderes para, por ejemplo, robar información de las tarjetas de crédito utilizadas por clientes de sitios web de comercio electrónico (IIStealer) o para ejecutar comandos de backdoor en el servidor IIS comprometido (IISpy).

A diferencia de esas familias, IISerpent no afecta directamente ni al servidor comprometido ni a los usuarios del servidor; de hecho, este malware ignora por completo todas las solicitudes provenientes de los visitantes legítimos de los sitios web comprometidos. El malware escucha y analiza todas las solicitudes HTTP enviadas al servidor comprometido solo para buscar aquellas que se originan en crawlers de motores de búsqueda específicos. Como se muestra en la Imagen 1, IISerpent transmite estas solicitudes a su servidor C&C (o usa su configuración local) para modificar el contenido que se brinda a estos crawlers.

Figure 1. IISerpent operating mechanism

Imagen 1. Mecanismo operativo de IISerpent

Fraude de SEO

¿Cuál es el propósito de este esquema? Los motores de búsqueda rastrean Internet de forma regular y luego indexan (registran) todo el contenido que encontraron en línea, creando asociaciones entre los términos de búsqueda y el contenido, y utilizando varios algoritmos para determinar el posicionamiento de los resultados para términos de búsqueda específicos.

Se pueden utilizar varias técnicas legítimas para mejorar el posicionamiento de una página en los resultados de los motores de búsqueda (comprar anuncios o emplear estrategias de optimización para motores de búsqueda (SEO)), pero no todos los especialistas en marketing digital siguen las reglas. El término SEO no ético (conocido históricamente como black hat SEO) se refiere a las técnicas para mejorar el SEO (aunque viole las pautas de los webmasters), como cargar páginas con palabras clave irrelevantes o comprar backlinks para aumentar la reputación de un sitio web.

IISerpent utiliza algunas de estas técnicas de SEO no ético y podría describirse mejor como una amenaza que ofrece "fraude de SEO como servicio", ya que emplea técnicas de SEO fraudulentas en servidores IIS comprometidos en beneficio de un tercero sin el consentimiento del webmaster. Los operadores de IISerpent utilizan este malware para mejorar el posicionamiento en los motores de búsqueda de las páginas de sitios web de terceros al hacer uso de la reputación del sitio web comprometido y emplear las siguientes técnicas:

  • Redirigir a los motores de búsqueda al sitio web en particular elegido por el atacante, convirtiendo de manera efectiva al sitio web comprometido en una página de entrada.
  • Inyectar una lista de backlinks (preconfigurados u obtenidos del servidor de C&C sobre la marcha) en la respuesta HTTP para los crawlers de motores de búsqueda, haciendo que los servidores comprometidos por IISerpent se conviertan en una especie de granja de enlaces

En la Imagen 2 observamos un ejemplo de un escenario en el cual un adversario compromete varios servidores IIS con IISerpent y usa sus capacidades para inyectar backlinks a todos los sitios web alojados en estos servidores. Los sitios web 1 - N son legítimos y con buena reputación. Desde la perspectiva de un crawler de motores de búsqueda, todos enlazan a un sitio web de terceros elegido por el atacante (en este caso, un sitio web fraudulento). Como consecuencia, el sitio web fraudulento puede aparecer mejor posicionado en los resultados que ofrecen los motores de búsqueda ya que es referenciado por sitios web de buena reputación, y esto repercute en la calificación del sitio.

Figure 2. Example of an SEO fraud mechanism

Imagen 2. Mecanismo del fraude de SEO

Tenga en cuenta que los visitantes legítimos del servidor comprometido seguirán recibiendo el contenido esperado, por lo que los usuarios y el webmaster pueden no darse cuenta de que algo anda mal con el servidor. Esto distingue a IISerpent de otras familias de malware que inyectan backlinks artificiales en sitios comprometidos. Al operar como una extensión para el servidor, IISerpent puede reservar estas modificaciones para los rastreadores de los motores de búsqueda, sin interferir con el contenido que se ofrece a los visitantes estándar (en lugar de modificar permanentemente el contenido del sitio web comprometido agregando backlinks no deseados para que los vean todos sus visitantes).

Por supuesto, los sitios web manipulados y que están alojados en los servidores IIS comprometidos no se benefician en absoluto de este esquema; por el contrario, va en contra de las pautas de los webmasters engañar a los crawlers de los motores de búsqueda mostrándoles una versión del sitio web diferente que la que se muestra a los visitantes habituales, por lo que estos sitios web podrían incluso ser penalizados por los motores de búsqueda y que su reputación se vea afectada, lo que se traduce en una disminución de las visitas orgánicas.

Análisis técnico

IISerpent es un módulo nativo para IIS. Está implementado como una DLL en C++ y configurado en el archivo %windir%\system32\inetsrv\config\ApplicationHost.config. De esa manera, IISerpent asegura tanto la persistencia como la ejecución, ya que todos los módulos para IIS son cargados por los procesos de trabajo de IIS (w3wp.exe) y se utilizan para manejar las solicitudes HTTP entrantes.

No tenemos ninguna información sobre cómo los operadores detrás de IISerpent logran el acceso inicial a los servidores IIS, pero sabemos que se requieren privilegios de administrador para configurarlo como un módulo nativo para IIS, lo que reduce los posibles escenarios. Una configuración indebida o una vulnerabilidad en una aplicación web o en el servidor son probablemente los culpables de que los atacantes logren el acceso inicial.

Al igual que con todos los módulos nativos para IIS, IISerpent exporta una función llamada RegisterModule (ver Imagen 3), que implementa la inicialización del módulo. La funcionalidad maliciosa principal está oculta en sus controladores (handlers) de eventos —métodos del módulo clase (heredados de CHttpModule) que se llaman en ciertos eventos del servidor. Más específicamente, el código clase de IISerpent sobrescribe sus métodos OnBeginRequest y OnSendResponse, lo que significa que los handlers del malware serán llamados cada vez que el servidor IIS comience a procesar una nueva solicitud HTTP entrante y cada vez que envíe el búfer de respuesta.

Figure 3. IISerpent’s DLL exports

Imagen 3. Exportaciones de la DLL de IISerpent

IISerpent analiza las solicitudes entrantes y utiliza sus datos de configuración para manipular el contenido que brinda a los crawlers de los motores de búsqueda. Como se observa en la Tabla 1, la configuración incluye campos como una URL de redireccionamiento o una lista de backlinks para ser añadidos. Los atacantes pueden mostrar o actualizar la configuración del malware mediante el envío de cualquier solicitud HTTP al servidor IIS comprometido con el parámetro de consulta ?DisplayModuleConfig=1 o ?ReloadModuleConfig=1, respectivamente, en el URI de la solicitud.

Al recibir la solicitud de actualización, IISerpent obtiene la configuración del servidor de C&C mediante el envío de una solicitud HTTP GET a esta URL:

http://sb.qrfy[.]net/mconfig/<host>.xml

El valor <host> se toma de la solicitud original del atacante y probablemente se usa como ID de la víctima. La biblioteca libcurl se utiliza para la comunicación de red.

Tabla 1. Campos de configuración utilizados por IISerpent

Configuration field Comment
banip List of IP addresses. The malware ignores HTTP requests from these IP addresses.
redirectreferer Binary flag – set if the malware should handle requests with the strings spider, bot or baidu.com/ in the Referer header.
onlymobilespider Binary flag – set if the malware should only handle crawler requests with the strings Android or AppleWebKit in the Referer header.
redirect If these values are set, the malware will redirect all crawler requests to the configured URL via an HTTP 301 response.
redirecturl #rowspan#
proxy If these values are set, the malware will forward the search engine crawler requests to its C&C server, and replace the HTTP response with the obtained data, instead of redirecting the crawlers to a malicious URL directly.
proxyurl #rowspan#
proxymode #rowspan#
folderlink If these values are set, the malware will add all of them as backlinks to the response for any HTTP request with the strings spider or bot in the User-Agent header.
folderlinkcount #rowspan#
folderlinkpath #rowspan#
proxyfolder #rowspan#
locallink #rowspan#
locallinkext #rowspan#
locallinkfolder #rowspan#
locallinkcount #rowspan#

IISerpent reconoce las solicitudes del crawler del motor de búsqueda al analizar el encabezado User-Agent y buscar substrings específicas, como se observa en la Imagen 4. Si el campo redirecturl está configurado, el malware redirige todas las solicitudes con las strings spider o bot en el encabezado de User-Agent a esta URL, configurando el encabezado Location en la respuesta HTTP. El estado HTTP se establece en 301 ("Movido permanentemente").

Figure 4. IISerpent recognizes search engine crawler requests by parsing the User-Agent header

Imagen 4. IISerpent reconoce los crawlers del motor de búsqueda analizando el encabezado User-Agent

If proxymode is set, instead of redirecting the crawlers to a malicious URL, IISerpent forwards the crawler request to its C&C server proxyurl, and replaces the HTTP response body with the acquired data. This is applied to all the HTTP requests with spider, bot or baidu.com/ in the Referer header, or optionally to requests with the strings Android or AppleWebKit in the Referer header. Additionally, the malware can be configured to:

Si se establece proxymode, en lugar de redirigir los crawlers a una URL maliciosa, IISerpent reenvía la solicitud del crawler a su servidor de C&C proxyurl y reemplaza el cuerpo de la respuesta HTTP con los datos adquiridos. Esto se aplica a todas las solicitudes HTTP con spider, botbaidu.com/ en el encabezado Referer, u opcionalmente a las solicitudes con las strings AndroidAppleWebKit en el encabezado Referer. Además, el malware se puede configurar para:

  • Solo manipular aquellas solicitudes HTTP en las que el servidor IIS haya establecido el estado de respuesta en 404
  • Ignorar las solicitudes provenientes de una lista configurable de direcciones IP prohibidas

Finalmente, IISerpent puede tener una lista de enlaces configurada y agregar estos enlaces al cuerpo de respuesta HTTP para cualquier solicitud del crawler del motor de búsqueda. Estos enlaces se agregan como entidades HTML al cuerpo de respuesta HTTP existente:

<a href='/<link><timestamp1>_<timestamp2>_<randomId>.html'></a>

Otras amenazas

IISerpent no es el único módulo malicioso para IIS conocido con capacidades de fraude SEO: de las 14 familias de malware que analizamos para nuestro whitepaper Anatomy of native IIS malware, seis familias soportan técnicas para realizar fraude de SEO. En estas familias, la funcionalidad para realizar este tipo de fraude a menudo se combina con otras capacidades maliciosas (como el soporte de backdoor o el envío de contenido malicioso a los visitantes legítimos del sitio web).

Si bien detectamos IISerpent por primera vez en mayo de 2021, pudimos rastrear el fenómeno del fraude de SEO hasta el primer caso conocido públicamente en 2019, cuando Secpulse publicó un informe en chino sobre un malware sin nombre que afectaba a los servidores IIS. El análisis de ese malware y sus capacidades para realizar fraude de SEO se detallan en nuestro whitepaper en la categoría del Grupo 9.

Las diferentes familias para realizar fraudes de SEO que analizamos difieren en las técnicas de SEO no éticas admitidas y apuntan a una amplia gama de crawlers de motores de búsqueda, especificados en claro (Grupo 12 en el documento, como se muestra en la Figura 5), ​​como una lista cifrada (Grupo 9), o se obtienen sobre la marcha consultando los registros TXT de DNS del nombre de host del servidor C&C (Grupo 11). Todas estas familias son detectadas por las soluciones de seguridad de ESET como Win32/BadIIS.

Figure 5. Example of strings used to recognize search engine crawler requests by IIS malware

Imagen 5. Ejemplo de strings utilizadas para reconocer las solicitudes del crawler de motores de búsqueda por parte del malware.

Para obtener una descripción más completa de las otras familias de malware para IIS, consulte nuestro whitepaper.

Conclusión

IISerpent es un módulo malicioso para IIS con propósitos y objetivos inusuales, ya que está diseñado para mejorar el posicionamiento en los motores de búsqueda de páginas de sitios web de terceros mediante prácticas no éticas. Si bien no afecta a los visitantes legítimos del servidor comprometido, merece atención por que distorsiona los resultados de las búsquedas y por su potencial de monetización.

Además de secuestrar la reputación de los sitios web comprometidos, IISerpent puede resultar un dolor de cabeza para los especialistas en marketing digital, ya que cualquier sitio web que lleve adelante prácticas de SEO no éticas puede sufrir penalizaciones de parte de los algoritmos de los motores de búsqueda. La mejor opción para evitar un compromiso por parte de IISerpent (y de otro malware para IIS) es mantener sus servidores IIS actualizados y tener cuidado de no descargar extensiones para IIS de fuentes no confiables. Además, tenga especial cuidado con los módulos que prometen funcionalidades demasiado buenas para ser verdad, como mejorar el SEO de manera mágica. Para obtener protección adicional, considere usar un firewall de aplicaciones web y/o una solución de seguridad en su servidor IIS.

Recomendaciones adicionales e indicadores de compromiso pueden encontrarse en nuestro whitepaper y en GitHub. Por cualquier consulta o para enviar muestras relacionadas con este tema escríbanos a: threatintel@eset.com.

Lee también:
Anatomía del malware nativo para servidores web IIS
IIStealer: malware en servidores IIS que afecta a sitios web de comercio electrónico
IISpy: un backdoor del lado del servidor con funciones anti forenses

Indicadores de Compromiso (IoCs)

Nombres de detección de ESET 

Win32/BadIIS.H

SHA-1

D0F274EBD2A0636FEF9D9C48A7AC2FAD7B661653

Nombre de archivo

stati.dll

Indicadores de red

Parámetros de consulta de URL 

?DisplayModuleConfig=1
?ReloadModuleConfig=1

Servidor C&C 

http://sb.qrfy[.]net

Técnicas de MITRE ATT&CK

Nota: Esta tabla fue creada utilizando la versión 9 del framework MITRE ATT&CK.

Tactic ID Name Description
Resource Development T1587.001 Develop Capabilities: Malware IISerpent is a custom-made malware family.
Execution T1569.002 System Services: Service Execution IIS server (and by extension, IISerpent) persists as a Windows service.
Persistence T1546 Event Triggered Execution IISerpent is loaded by the IIS Worker Process (w3wp.exe) when the IIS server receives an inbound HTTP request.
Command and Control T1071.001 Application Layer Protocol: Web Protocols Adversaries send HTTP requests with specific query parameters to the compromised IIS server to control IISerpent.
Impact T1565.002 Data Manipulation: Transmitted Data Manipulation IISerpent modifies content served by the compromised server to search engine crawlers.