VirusTotal no es un respondedor de incidentes

VirusTotal no es un respondedor de incidentes
VirusTotal no es un respondedor de incidentes

VirusTotal no es un respondedor de incidentes

Matt "Rudy" Benton

23 de enero, 2020 · 8 min leído

Solo quiero decirlo allí primero, amo a VirusTotal. Lo uso tanto en mi carrera profesional como en mi vida personal. Cuando haya estado ocupado y solicitado por la familia para investigar un correo electrónico "phishy" o algo posiblemente malicioso, me han sabido que respondo con lo simple "¿Le ha tirado en Virustotal y ha visto lo que dice?". Soy consciente de que algunas organizaciones han utilizado este mismo verificación que el punto de partida para su proceso de análisis. Por ejemplo, un defensor se envía un correo electrónico de Phishing con un enlace para investigar. El defensor crea el ticket de seguimiento y comienza el flujo de trabajo en su "Lista de verificación de análisis". Solo quieren pasar por esta investigación y cerrar el boleto. Es posible que el Defensor La decisión de continuar o cerrar la investigación se ha convertido en todo sobre el resultado de la exploración de más de 70 escáneres AV en VirusTotal. Los resultados (lo más probable es que) devuelvan que los 70 escáneres AV AV afirman que el enlace está limpio (no una bandera). El defensor marca rápidamente todo está claro y cierra el boleto. En muchos casos, esta podría ser una solución rápida y no es un punto de partida malo, pero puede proporcionar muchos negativos falsos. Esta publicación está diseñada para revelar cómo Virustotal es solo una herramienta que ayuda en el análisis y no debe ser una "tienda de una sola tope" para determinar si el contenido es malicioso. Los atacantes pueden manipular fácilmente estos resultados, y estaré pasando por encima de cómo uno podría hacerlo.

Esta publicación está diseñada para ambos defensores y compañeros de equipo rojo. Para los defensores, espero arrojar algo de luz sobre cómo los atacantes pueden manipular el escaneo de enlace de URL de Virustotal para proporcionar respuestas limpias. Para los equipos rojos, esta es solo información para agregar al kit de herramientas sobre cómo emular a un adversario y desafiar a los defensores a no tomar todas las decisiones basadas en una respuesta virusual.

Para hacer que este ejemplo sea más realista, vamos a caminar a través del análisis de un correo electrónico de Phishing (quiero que lo indique, no soy un analista% 2fincidente de respondedor y estoy seguro de que muchos tienen enfoques diferentes o mejores herramientas, pero solo lidian con ella). Para encontrar uno, cavo en esa antigua cuenta de Hotmail de Highmail que yo, por alguna razón, todavía tiene, pero nunca usarlo. Creo que la cuenta es ahora sólo buena para recolectar spam y mis recordatorios de fútbol de fantasía. En la carpeta de correo electrónico no deseado, encontré el siguiente correo electrónico que vamos a investigar.

Phishy Correo electrónico encontrado en la carpeta de correo no deseado

El correo electrónico ya se ve un poco phishy y quiere que el usuario haga clic en el botón "Check Activity" con un enlace subyacente a HXXP:% 2f% 2fwww.electrogroupintl.com% 2fsallyingif.html. Para iniciar la investigación, enviemos el enlace a VirusTotal y veamos la respuesta.

VirusTotal no mostrando detecciones en el correo electrónico de Phishy

De acuerdo con VirusTotal, el enlace en el botón "Check Activity" es seguro y limpio. Si sigue nuestro ejemplo hipotético antes, podríamos estar listos para cerrar la investigación porque Virustotal y los 70 escáneres muestran que el enlace es seguro y limpio. ¿Pero es eso realmente correcto? ¿Podría ser esto posiblemente ser un falso negativo? Debido a que no soy un analista y no tengo boletos, cavamos en un poco más y simplemente enfocemos puramente en el enlace y manténgase alejado de las otras funciones de correo electrónico (el contenido del correo electrónico o sus encabezados, etc.).

Usando WGTET, podemos descargar el código HTML para SallyingIF.HTML. El código HTML contiene principalmente JavaScript incrustado, ofuscado; Lo que ya comienza a dar ese signo de algo que Phishy está pasando aquí. A un vistazo rápido, el JavaScript está obtenido de mostrar su propósito previsto mediante el uso de palabras aleatorias como variables y funciones. A continuación se muestra algunas de las partes clave del JavaScript.

Código HTML de Sallyingif.HTML

El código JavaScript es muy interesante, hay una función BabyD () que parece estar llamando a SetmeMeOut () con algunos parámetros. El método de SEFTIMEOUT () llama una función o evalúa una expresión después de un número específico de milisegundos. Entonces, después de 1035 milisegundos, se llama la función Nighttimec (). Sin caminar a través del análisis del resto del JavaScript (diferentes técnicas para hacer esto y lo dejo hasta el lector si el código aún está por ahí), se determina que la llamada de la función Nighttimec () devuelve la cadena "Ventana. top.location.href = 'http:% 2f% 2fperfectdeal.su'; ". Cuando se combina con el método de SEFTIMEOUT (), un navegador espera 1035 milisegundos y luego se envía a la URL HXXP:% 2F% 2FPERFECTDEAL.SU.

Entonces, lo que vemos aquí es que este sitio que fue escaneado por VirusTotal no tiene nada malicioso en él, además de el código de Javascript que se ejecuta en el navegador del usuario y después de un tiempo muy corto, envía el navegador a un nuevo enlace. VirusTotal regresa correctamente que este sitio no es malicioso, ya que simplemente redirige al usuario en otro lugar.

Ahora, cuando el HXXPS:% 2f% 2FPERFECTDEAL.SU se envía a VirusTotal, obtenemos un resultado totalmente diferente al primer enlace enviado. En el momento de nuestra exploración, el resultado informa a 11 motores AV diferentes que afirman que el sitio es un sitio de phishing o es malicioso.

Escaneo VirusTotal de la URL redirigida.

Los atacantes han utilizado el enlace suministrado en el correo electrónico para servir a HTML y el código de JavaScript ofuscado para ocultar el sitio real real. Un defensor que ha detenido su investigación después de que los resultados de la primera exploración VirusTotal se haya caído en una trampa y se perdió la verdadera naturaleza del enlace de phishing. Esta no es una nueva técnica increíble, pero algo común que he visto antes. En algunos casos, he visto múltiples redirecciones de JavaScript antes de alcanzar el enlace malicioso final.

Había otra técnica que los atacantes estaban usando en el segundo enlace que no resaltaba anteriormente. El segundo enlace (HXXP:% 2F% 2FPERFECTDEAL.SU) determinó lo que sirvió al solicitante basado en el agente de usuario suministrado en la solicitud HTTP. Por ejemplo, si se realizó una solicitud con el rizo de la herramienta con su agente de usuario predeterminado (Curl% 2F7.58.0), el servidor respondió con una respuesta vacía.

Solicitud de URL de rizo

Sin embargo, si se usa el agente de usuario de un navegador común, se devuelve el código HTML para un sitio web. El atacante está intentando filtrar cuándo servir a la página real maliciosa a los usuarios y detener los bots, los servicios de escaneo y otros motores golpean el sitio malicioso.

Esta es una técnica de atacantes comunes para servir a diferentes contenidos basados en agentes de usuarios, campos de referencia o incluso rangos IP. Esto me provocó para pensar, ¿podría hacer algo similar a Virustotal y sus motores de escaneo?

Engañando VirusTotal con Apache Mod_rewrite

Creé un sitio rápido, lo envié a VirusTotal y lo envié para ser escaneado. Observando el tráfico que siguió, reuní que había una virusualidad usada después de la primera presentación. Obtendré que cuando se envíe a Virustotal hubo algunos otros éxitos de tráfico en mi sitio web improvisado de algunos otros servicios similares y lo dejaron hasta el lector para determinar esas huellas dactilares y, si esas pueden estar relacionadas o no al proceso del motor de exploración VirusTotal% 2Fwork flujo.

Así que descubrimos que los atacantes estaban utilizando una técnica para engañar a los motores de escaneo al proporcionar un sitio web con un código HTML benigno con un código de JavaScript ofuscado, que cuando se prestaba un navegador, redirigiría a un usuario a otro sitio malicioso real. ¿Qué otras técnicas hay que podría ser similar que pueda manipular los resultados de las exploraciones virusotales en comparación con lo que un usuario podría acceder en su navegador? Otra opción, similar al filtrado del agente de usuario anterior es usar algo como la mod_rewrite de Apache para servir a diferentes páginas a VirusTotal en función del Agente de usuario descubierto. De esta manera, hay algo escaneado en los resultados y no solo una página de error. Para un ejemplo de un archivo de reescritura MOD Reescribe .HTACCESS que se usa para enviar diferentes archivos a VirusTotal ver más abajo.

Otra opción podría ser simplemente bloquear completamente la dirección IP percibida de Virustotal. En pruebas limitadas, sorprendentemente, VirusTotal informó que el enlace limpio cuando los IP Virustotal se bloquearon de golpear un sitio web de fabricación improvisado. Como dije anteriormente, puede haber otros motores y compañías que hagan su propio escaneo adicional algún tiempo después de que se envíe un enlace a VirusTotal y puede proporcionar actualizaciones fuera de la banda al informe VirusTotal. En estos casos, con el tiempo, un sitio malicioso con algunas de estas diferentes técnicas para manipular Virustotal puede no funcionar sin alguna huella dactilar previa diligente. Lo dejo hasta el lector para determinar la mejor manera de hacerlo.

Para el defensor que lee este blog, tenga en cuenta que se producen estas técnicas. Los defensores deben pensar, aunque Virustotal me dice que está limpio ", ¿se ve bien?" "¿Hay otras cosas que se pueden hacer para determinar si VirusTotal está proporcionando un falso negativo?" VirusTotal es una gran herramienta en el kit de herramientas que puede proporcionar información rápida y valiosa. Los defensores deben considerar tomar unos minutos más para analizar los contenidos de las URL que escanean, especialmente si las cosas se ven un poco, uhm ... En el correo electrónico, después de extraer el código HTML del primer enlace, fue suficiente para mí saber que el sitio probablemente no fue de buena reputación. No se atrapen en el falso negativo VirusTotal, solo porque podría estar en una lista de verificación.

Para los equipos rojos, ¿estás usando alguna de las técnicas anteriores para desafiar a los defensores? Si está realizando una campaña de Phishing, ¿utiliza JavaScript officated Javascript o una regla mod_rewrite de Apache para servir diferentes archivos? Personalmente, al implementar un enlace que es un javascript ofuscado que espera y luego se redirige a otro sitio, también al menos agregaría un código HTML de aspecto válido adicional en la página o un banner de "Cargando sitio web ..." que carga la página secundaria después de unos segundos . Claro, aún puede ser phishy, pero no tan phishy como una línea de código HTML con JavaScript incrustado realmente ofuscado extraño en él.

Subir