REVISTA .SEGURIDAD | 1 251 478, 1 251 477 | REVISTA BIMESTRAL

Thug Honeyclient: Atrapando sitios web maliciosos

Muchas veces hemos escuchado la frase "el usuario es el eslabón más débil de la cadena", lo cual implica múltiples causas que son aprovechadas por los ciberdelincuentes por medio de diferentes técnicas para comprometer los equipos de los usuarios. ¿Imaginas que tu dispositivo podría ser comprometido con tan solo visitar una página web en Internet?, esto se debe a que los ciberdelincuentes comprometen sitios web con poca seguridad e ingresan código malicioso que explota vulnerabilidades en nuestros navegadores. Estos códigos maliciosos forman parte de un paquete de exploits.

En este artículo explicaré el panorama general de los paquetes de exploits y una prueba de concepto que consiste en el análisis de tres sitios maliciosos usando Thug. La implementación del cliente honeypot (honeyclient) Thug se puede consultar aquí. Conoce más sobre honeypots en el portal del Proyecto Honeynet UNAM.

En 2016 las aplicaciones más explotadas fueron, en primer lugar, los navegadores web, en segundo lugar, los sistemas operativos Windows, seguido en tercer lugar por los sistemas operativos Android y en cuarto lugar, el conjunto de aplicaciones de Microsoft Office. Además, más de 297 mil usuarios en el mundo fueron atacados por exploits desconocidos (de día cero o conocidos pero muy ofuscados), de acuerdo al reporte Ataques con exploits: de amenazas diarias a campañas dirigidas de Kaspersky Lab.

Figura 1. Distribución de usuarios atacados con exploits dirigidos a diferentes aplicaciones en 2016 (Kaspersky Lab)

Una de las principales técnicas utilizadas por los ciberdelincuentes son los ataques del lado del cliente (client side attacks), estos ataques aprovechan vulnerabilidades en las aplicaciones para ejecutar código malicioso (por ejemplo, descargar y ejecutar malware) sin la intervención del usuario. El navegador web es uno de los principales vectores de ataque contra los usuarios. De acuerdo a las estadísticas de los sitios NetMarketShare, W3Counter y StatCounter basado en el análisis del comportamiento de los usuarios en Internet, el navegador más utilizado es Google Chrome, seguido principalmente de Safari o Internet Explorer(IE)/Edge y Firefox. Continuamente son identificadas vulnerabilidades en los navegadores (Chrome, Internet Explorer/Edge, Safari y Firefox) y complementos (Adobe Reader, Adobe Flash Player, Adobe Shockwave Player, Java Runtime Environment, Microsoft Silverlight) que son aprovechadas por los atacantes con el fin de llevar acabo su actividad maliciosa.

 

Figura 2. Gráficas de navegadores usados de agosto 2016 a agosto 2017 de NetMarketShare (superior) y StatCounter (inferior)

Paquete de exploits

Un exploit es un programa o código que al ejecutarse se aprovecha de una vulnerabilidad en un sistema, programa o protocolo, para que el creador de dicho programa lo utilice en su beneficio, por ejemplo, para crear una puerta trasera, concebir un equipo zombie (bot), escalar privilegios, instalar un rootkit, robar información u otras actividades maliciosas. Existen dos tipos básicos de exploits que pueden identificarse como conocidos o no conocidos (este último también recibe el nombre de exploits de día cero o 0day). Para los exploits conocidos existe un registro de divulgación de vulnerabilidades (Vulnerability Disclosure) en las páginas oficiales de los programas, por ejemplo, Apache HTTP Server o Security TechCenter, en donde se encuentra una solución o forma de mitigar la amenaza. Para los exploits de día cero no existe un registro de la vulnerabilidad, esta es aprovechada por los ciberdelincuentes para obtener algún beneficio. Por esa razón es importante mantenerse informado sobre la divulgación de vulnerabilidades y buscar las Vulnerabilidades y Exposiciones Comunes (CVE, Common Vulnerabilities and Exposures) de los sistemas y aplicaciones para tomar las medidas necesarias con el fin de mitigar o reparar el problema de seguridad.

Un paquete de exploits (EK, por sus siglas en inglés) o algunas veces llamado exploit pack, son un conjunto de herramientas (páginas de redirección, páginas de aterrizaje, payloads, exploits, malware, gates, etcétera) que los ciberdelincuentes emplean para automatizar sus ataques. Sirven para aprovecharse de vulnerabilidades en diferentes navegadores web y complementos como Adobe Reader, Flash Player, Shockwave, Java, Microsoft Silverlight en diferentes sistemas operativos para obtener algún beneficio, como pedir una recompensa o realizar otras actividades maliciosas. Algunos EK cuentan con consolas de administración que ayudan al ciberdelincuente a conocer el estado de su operación o campaña.

De acuerdo al Reporte de Amenazas de Seguridad en Internet (ISTR, Internet Security Threat Report) número 22 de Symantec, el exploit kit Angler fue el más común en 2016. Además, existen otros como Magnitude, Neutrino, Rig, Nuclear, Sundown y Fiesta que han afectado considerablemente a usuarios en todo el mundo. Continúan surgiendo otros como Neptune, Disdain y Terror, este último se muestra en la prueba de concepto (PoC, Proof of Concept) de este artículo.

Funcionamiento de un EK

Existen diferentes formas de infección y funcionamiento de los paquetes de exploits, dependiendo de las características particulares que tiene cada EK, la infraestructura del EK empleada para los ataques, campaña y objetivo de los ciberdelincuentes. A continuación, se explican de forma general las etapas de una infección con un paquete de exploits y se pueden observar en la figura 3.

Los ciberdelincuentes colocan anuncios publicitarios con malware (malvertising) o introducen código malicioso en sitios web con poca seguridad. Existen diferentes técnicas utilizadas por los ciberdelincuentes para atraer a los usuarios a visitar un sitio, por ejemplo, a través de correos no solicitados o basura (SPAM), mensajes por medio de clientes de mensajería (Whatsapp, Telegram, Snapchat, Facebook Messenger), redes sociales, SMS, etcétera.

Posteriormente, los usuarios dan clic en el anuncio malicioso del sitio o en el vínculo del correo SPAM, o visitan el sitio comprometido y son redirigidos al sitio malicioso. Estos sitios maliciosos obtienen información del equipo de la víctima, una vez que detectan alguna versión vulnerable del navegador web o complementos, envían los exploits; algunos EK envían instrucciones (payload) que produce la descarga de programas sin el consentimiento de los usuarios (drive-by download) logrando infectar el equipo con algún tipo de malware como un ransomware y esto se logra simplemente al visitar el sitio.

Figura 3. Cadena de infección de un paquete de exploits (Trend Micro)

Si observamos un poco más a detalle los componentes de un ataque con paquetes de exploits podemos encontrar:

  • Landing page: son las páginas de aterrizaje o destino del EK. Es un componente principal de la infraestructura de los EK ya que esta página es enviada a los usuarios (no es visible en el navegador debido a que se ocultan con código HTML y CSS o utilizan código ofuscado). Estas páginas pueden identificar diferentes versiones de los sistemas operativos, navegadores web y complementos con el fin de identificar una vulnerabilidad específica y poder enviar el exploit adecuado. Una vez explotada la vulnerabilidad, se ejecutan las instrucciones contenidas en el payload permitiendo descargar e instalar algún programa o biblioteca de enlace dinámico para infectar al equipo con ransomware u otro tipo de malware.
  • Gate o gateway server: el propósito de estas páginas es evaluar a las víctimas, concediendo o negando el paso a cierto tipo de equipos. Evalúan las cabeceras de los protocolos para identificar si son sistemas reales y detectar si se está ejecutando en una sandbox o en un honeypot, en cuyo caso se puede detener su actuación para evitar ser analizado. También son utilizados entre el sitio comprometido y la página de aterrizaje (landing page) para controlar la campaña, por ejemplo, establecer los países, lenguajes, sistemas operativos, navegadores, entre otras características.
  • Panel de administración (Management Panel): estas páginas son utilizadas por los ciberdelincuentes para conocer el estado actual de la campaña, ver estadísticas (por navegador web, sistema operativo, complementos, país o versión), tasas de infección, administrar payloads y exploits, generación de nuevas páginas de redirección, realizar búsquedas, crear y seguir campañas, etcétera.

La figura 4 muestra el esquema de la infraestructura utilizada por Magnitude, en donde se aprecian los componentes de este paquete de exploits.

 

Figura 4. Arquitectura de Magnitud (Trustwave)

Cabe mencionar que existen infraestructuras más complejas detrás de los paquetes de exploits que pueden llegar a tener servidores maestros, de panel de administración, gateway y de distribución de malware.

THUG

Un honeypot es un equipo señuelo configurado e instalado en una red de investigación o producción para poder obtener información de ataques, atacantes o intrusos. A diferencia de los honeypots, los clientes honeypot o honeyclients permiten analizar los ataques del lado del cliente, e igual que los honeypot, estos también pueden ser de alta o baja interacción. Los honeyclient de baja interacción están diseñados para imitar el comportamiento de una aplicación del lado del cliente. PhoneyC es un cliente honeypot virtual (de baja interacción) debido a que solo emula la función principal de un cliente web sin ninguna característica del sistema operativo y cuenta con soporte de lenguajes dinámicos como JavaScript y Visual Basic Script. Fue creado por José Nazario en 2009.

 

 

Figura 5. Diferencias entre un Honeypot (superior) y un Honeyclient (inferior)

Angelo Dell'Aera comenzó a contribuir en el desarrollo de PhoneyC a finales del 2009. Mientras Angelo trabajaba en PhoneyC encontró limitaciones en el diseño original. Durante los primeros meses de 2011, pensó en un nuevo diseño y desarrolló Thug, liberó la versión 0.1.0 en julio de ese año. Actualmente Thug se encuentra en la versión 0.9.5, las últimas actualizaciones se pueden encontrar en el proyecto de Github, así como su documentación.

Thug es un honeyclient de baja interacción hecho en Python, está basado en un enfoque híbrido de análisis (estático y dinámico) con el propósito de imitar el comportamiento de un navegador web, así como detectar y emular contenidos maliciosos cuando intentan explotar alguna vulnerabilidad.

Thug proporciona una implementación del Modelo de Objetos del Documento (DOM, Document Object Model) que es (casi) compatible con las especificaciones DOM, HTML, eventos, vistas y estilo de W3C (nivel 1, 2 y parcialmente 3). También usa el motor de Javascript V8 de Google embebido en PyV8 para analizar el código Javascript malicioso y de la biblioteca Libemu embebido en Pylibemu para detectar y emular los shellcodes.

A demás, el honeyclient Thug cuenta con múltiples “personalidades”, aparenta ser diferentes dispositivos como una computadora, celular o tableta. Cada dispositivo puede utilizar diversas versiones de sistemas operativos con diferentes navegadores web, cada navegador con una versión particular. También es posible especificar la versión de los complementos que utilizará el navegador web e incluso puede enviar información emulando movimientos del ratón. Los navegadores web que personaliza son Internet Explorer, Firefox, Safari y Chrome. También cuenta con múltiples módulos de vulnerabilidades (controles ActiveX, principales funcionalidades del navegador, complementos de navegador). Estas características permiten mejorar la emulación y extender la interacción del honeyclient, haciéndole pensar a los ciberdelincuentes que son un navegador y usuario reales; esto posibilita la ejecución de código malicioso como scripts y exploits de los atacantes logrando obtener mayor información y mejores resultados al procesar y analizar los sitios maliciosos.

Thug envía una solicitud a la página web con versiones específicas de un navegador web y complementos (personalidad), la página web procesa la solicitud y genera una respuesta. Thug procesa la respuesta del servidor con los módulos de análisis (estático y dinámico) y de vulnerabilidades, durante este proceso se identifican lenguajes de programación y se detecta código malicioso (payloads y shellcodes). Estos son ejecutados en el honeyclient y si el código malicioso requiere algo más, se genera una nueva solicitud para descargar algún otro recurso, como podría ser un malware. El honeyclient registra el análisis en las bitácoras dependiendo de la configuración (estos datos se toman de los archivos de configuración y de los argumentos pasados a través de la línea de comandos). Este proceso se repite por cada elemento de la página web durante la visita. La figura 6 muestra el panorama general del funcionamiento de Thug.

 

Figura 6. Panorama general de funcionalidad (de Sergio Anduin Tovar Balderas)

Prueba de concepto

En esta PoC (Proof of Concept) se muestra el análisis de tres sitios maliciosos usando Thug. Las diferentes opciones que tiene el honeyclient permite realizar el análisis de sitios con diferentes personalidades que incluyen diferentes versiones de navegadores web, complementos y sistemas operativos e inclusive emular ser un dispositivo móvil. Las opciones nos ayudan a precisar versiones específicas para lograr una emulación lo más cercana a un navegador web para que el paquete de exploits se ejecute de forma exitosa. Las personalidades de Thug se pueden ver en la siguiente figura.

 

Figura 7. Personalidades de Thug

Un escenario posible es el siguiente: el usuario recibe y lee un correo electrónico no solicitado (SPAM) y da clic en el enlace. Se inicia el navegador web prestablecido y muestra el sitio http://dominioMalicioso1.com; este sitio a simple vista no realiza ninguna acción o simplemente presenta una página en blanco, pero cuando la página es cargada en el navegador web del usuario se ejecutan instrucciones no entendibles (ofuscadas) que explotan una vulnerabilidad, esta es aprovechada para descargar y ejecutar un archivo binario.

El primer sitio analizado con Thug es http://dominioMalicioso1.com, donde se utilizan las siguientes opciones (figura 8):

  • -u win7ie100: especifica el agente de usuario (personalidad), sistema operativo Windows 7 con Internet Explorer 10.0
  • -n poc1: indica la ruta de salida de los archivos y bitácoras del análisis
  • -v: habilita el modo verbose, muestra mayor detalle de la ejecución
  • -F: habilita el modo de registro de bitácoras en archivo de texto
  • -Z: habilita el modo de registro de bitácoras en formato JSON

Si no se especifican los complementos a través de la línea de comandos, Thug emplea los prestablecidos (Java versión 1.6.0.32, Adobe Acrobat Reader versión 9.1.0 y Shockwave Flash versión 10.0.64.0).

Figura 8. Ejecución y código ofuscado en el primer sitio

En la siguiente figura se puede apreciar parte del código de Visual Basic Script (VBS) utilizado en este sitio malicioso.

Figura 9. Ejecución, análisis y gráfica del primer sitio

Durante la revisión del sitio, Thug emplea los módulos de vulnerabilidades y realiza un análisis híbrido (estático y dinámico) del código de la página principal. Durante el análisis Thug detecta un código ofuscado, interpreta e identifica una URL (http://4-ever.co.kr/4ever/data/m/win.exe) en el código ofuscado, que resulta en una redirección para descargar el un archivo ejecutable (win.exe).

Figura 10. Detección de código ofuscado y redirección a un archivo ejecutable

Cuando Thug está analizando el sitio, obtiene los archivos y los guarda en la carpeta especificada (poc1, se puede apreciar en última línea de la figura anterior), cada archivo es nombrado con su firma MD5. La estructura que crea el honeyclient para este análisis es el siguiente.

Figura 11. Estructura de archivos y bitácoras generadas por Thug

Se puede consultar las firmas MD5 generadas por Thug en VirusTotal o subir el archivo para tener otra opinión de múltiples antivirus. Thug obtuvo un archivo principal del sitio (index.html) con la firma MD5 51a3a6ef8147c763ea0da17183dde632 y también la URL sospechosa (http://4-ever.co.kr/4ever/data/m/win.exe). Para determinar si el archivo sospechoso es algún tipo de malware es necesario realizar un análisis de malware.

El honeyclient Thug genera una imagen de la interacción con la página maliciosa facilitando en análisis de forma gráfica, esta imagen puede contener redirecciones a otras páginas u otros archivos, iframe (sirven para insertar un documento o mostrar contenidos externos al sitio web), scripts, etcétera.

Figura 12. Gráfica de análisis del primer sitio

El segundo sitio analizado es http://dominioMalicioso2.com, se utiliza la personalidad de un sistema operativo Windows 10 con Internet Explorer 11.0 empleando los complementos preestablecidos y opciones antes mencionadas. Durante el análisis se identificaron dos iframe que redirigen a las URL http://159.203.15.85/3c5284133c62313b6b28a34f8cdfa328/a39401275d1b300aa789fb22aea4148a y http://159.203.15.85/3c5284133c62313b6b28a34f8cdfa328/9526e055c9757becf45c5190facfd9f2. En la figura 13 se pueden apreciar estos detalles.  

Figura 13. Ejecución y URL detectadas en el segundo sitio

Thug analiza un shellcode y detecta una URL que redirecciona a  http://159.203.15.85/d/3c5284133c62313b6b28a34f8cdfa328/?q=r4&r=62ba5e67f14ed186d58fc171909e09ba&e=cve20132551 que intenta explotar la vulnerabilidad CVE-2013-2551  (esta vulnerabilidad también la explota Terror, se revisará en el siguiente ejemplo), esta URL y las anteriores también fueron consultadas en VirusTotal.

Figura 14. Detección y redirección a URL maliciosa

En esta imagen se pueden ver los 2 iframe que tiene la página y la redirección a una URL que intenta explorar una vulnerabilidad particular.

Figura 15. Gráfica de análisis del segundo sitio

El paquete de exploits Terror (Terror EK) evalúa a sus potenciales víctimas determinando el sistema operativo, navegador web y complementos con el fin de enviar los exploits más adecuados para comprometer el equipo.

El último sitio que se analizará con Thug utiliza el paquete de exploits Terror, y se utiliza la personalidad de un sistema operativo Linux con Chrome versión 54.0.2840.100 (figura 26). Durante el análisis el paquete de exploits utiliza un applet.

Figura 16. Análisis del tercer sitio

Terror EK utiliza iframe para insertar un documento o mostrar contenidos externos al sitio web, en la figura se puede observar que hace redirección a la página http://dominiomalicioso3.com/exploits/adobe1.html.

Figura 17. Redirección a través de iframe

Esta página contiene código JavaScript que sirve para obtener información de las potenciales víctimas. La información que obtiene es la plataforma (win, linux y unix) y sistema operativo (Windows 2000, XP, Vista, 7, 8, 8.1, Mac/iOS, UNIX, Linux).

Figura 18. Identificación de plataforma y sistema operativo

Posteriormente se identifica una línea que valida el navegador web, esta verificación sirve para ejecutar el código y mostrar un archivo shockwave o flash si no es Internet Explorer (if !IE).

Figura 19. Validación de navegador

Nuevamente el EK utiliza una redirección para cargar y ejecutar código JavaScript en el equipo (exploit) enfocado al navegador web Firefox.

Figura 20. Redirección a JavaScript malicioso

En la primera línea se puede apreciar que se hace una validación para ejecutar el código en Windows. El código malicioso carga instrucciones para realizar una consulta a http://kitempowernetwork.com/test/q.php y ejecutarlas en el equipo víctima utilizando wscript.exe o cmd.exe.

Figura 21. Código malicioso usando JavaScript

El EK utiliza otros iframe y redirecciones para ejecutar código malicioso en Internet Explorer. Se puede observar que Thug identifica un programa vbscript (Visual Basic Script) que utiliza powershell.exe para realizar la consulta a la página de la figura anterior, esto muestra una forma diferente de ejecutar código malicioso.

Figura 22. Código malicioso usando Visual Basic Script

La figura 23 muestra la estructura de archivos creada por Thug durante el análisis, en ella se encuentran los archivos obtenidos del sitio malicioso y bitácoras.

Figura 23. Estructura de archivos del análisis

Se ha identificado que los exploits utilizados en el sitio http://dominioMalicioso3.com forman parte del EK Terror y explotan diferentes vulnerabilidades; en la tabla 1 se especifican los CVE y muestra el reporte de VirusTotal de algunos de los archivos que obtuvo Thug durante el análisis del sitio.

 

Tipo de archivo

MD5

CVE

JavaScript

0d86c46183e46b6bc250e9b39817de03

-

JavaScript

196c4109b17635ffe7018cb0468a6e7b

2014-1510

HTML

31f2e003f7ed19280cd2629f2c142ef2

2016-0189

HTML

4d428f8e763bf148b6ebb103a409cd60

2012-3993

HTML

ad715edc6e5f1539436bae11588f2a19

2014-6332

HTML

b3e4bbb901a88088f15038ad6980e193

2014-6332

 

Tabla 1. Archivos analizados y CVE identificados en el reporte de VirusTotal (de Sergio Anduin Tovar Balderas)

En esta imagen generada por Thug se pueden apreciar de forma gráfica el comportamiento cuando la víctima visita el sitio y todas las acciones que emplea el EK para identificar el sistema operativo, navegador y complementos. Puedes ver la imagen en su tamaño original aquí (URL, imagen original).

 

Figura 24. Imagen de análisis del tercer sitio

Ve el video de la prueba de concepto aquí.

También puedes ver la implementación del honeyclient a continuación.

 

Conclusiones

Thug ayuda a los analistas de malware a examinar detalladamente un sitio sospechoso pretendiendo ser un navegador real ya que realiza un análisis estático y dinámico en conjunto de los módulos de vulnerabilidades. Además, es capaz de detectar shellcode e identificar URL, recolectar archivos del sitio como scripts, ejecutables, PDF, applets, archivos flash (swf), exploits o payloads que utiliza el sitio, así como generar una imagen con el flujo de comportamiento e interacción. Este honeyclient ayuda a los investigadores de seguridad a obtener evidencia para reportar y dar de baja los sitios maliciosos. También es posible realizar un análisis de malware ya que se cuenta con los archivos del sitio, esto permitirá determinar a detalle las vulnerabilidades que explota, obtener indicadores de compromiso, firmas para la detección y prevención en sistemas antivirus, sistemas de detección (IDS) y prevención intrusos (IPS), antispam y otras soluciones.

Es muy importante como usuarios mantener actualizados los sistemas operativos, antivirus y aplicaciones de nuestros dispositivos (computadora, celular y tableta), así como aplicar los parches de seguridad críticos. No dar clic en vínculos, no abrir mensajes ni adjuntos de correos electrónicos o mensajes instantáneos sospechosos (asegurarse de que la persona que nos envía la información es un conocido). Los navegadores cuentan con tecnologías para detectar y evitar phishing, programas o sitios maliciosos, pero hay que estar atentos en las advertencias de seguridad que muestra el navegador, así como realizar configuraciones de seguridad y establecer preferencias de privacidad para limpiar nuestros datos de navegación como cookies y datos de formularios.

En nuestra organización es importante realizar campañas de concientización para que los usuarios conozcan los métodos y técnicas que utilizan los ciberdelincuentes para evitar que sean víctimas de algún ataque.

También se recomienda:

  • Utilizar soluciones de administración de parches de seguridad y actualizaciones (por ejemplo, WSUS)
  • Crear una política para descargar e instalar las actualizaciones del sistema operativo
  • Prohibir la instalación de programas no autorizados en la organización
  • Utilizar soluciones endpoint, NAC, firewall e IPS
  • Programar la descarga de base de firmas y escaneo de los equipos cliente desde consolas antivirus

Es muy importante siempre estar atento a las vulnerabilidades de los servicios y sistemas para aplicar las actualizaciones, parches de seguridad o aplicar un mecanismo de protección para mitigar el impacto.

Para conocer otras herramientas visita nuestra página del Proyecto Honeynet UNAM.

Si identificaste algún sitio sospechoso, malware o phishing puedes reportarlo a UNAM-CERT aquí. A través de Google también es posible denunciar páginas de phishing: (https://safebrowsing.google.com/safebrowsing/report_phish/); o sitios maliciosos (https://safebrowsing.google.com/safebrowsing/report_badware/).

Conoce OUCH!, el boletín de seguridad preventiva del Instituto SANS, consejos del UNAM-CERT, mantente al día en noticias de seguridad e inscríbete al boletín de noticias. Conoce nuestro portal y revisa la sección de divulgación.

Referencias:

SI QUIERES SABER MÁS, CONSULTA:

UNAM

[ CONTACTO ]

Se prohíbe la reproducción total o parcial
de los artículos sin la autorización por escrito de los autores

 

Hecho en México, Universidad Nacional Autónoma de México (UNAM) © Todos los derechos reservados 2018.