Les presentamos la solución al Desafío 23 de ESET Latinoamérica publicado la semana pasada. Antes que nada, queremos felicitar a todos los que participaron y esperamos lo hayan disfrutado tanto al resolverlo como nosotros cuando lo armamos. El ganador es Daniel García, quien resolvió correctamente el desafío y fue el primero en dar la respuesta. Con esto se ha hecho acreedor de una licencia para la última versión de nuestro ESET Smart Security válida por un año.
Este desafío consistía en analizar el comportamiento de un archivo ejecutable, para lo cual vamos a emplear algunos de los pasos que se podrían seguir al momento de hacer un análisis dinámico. Teniendo en cuenta que lo más recomendable es hacer este tipo de análisis en entornos virtualizados, lo primero que deberíamos analizar es si el archivo está generando algún tipo de tráfico de red. En este caso, utilizaremos Wireshark como herramienta, ya que es una de las más conocidas. A continuación, vemos la captura del tráfico de red que genera el archivo al momento de ejecutarse:
Como puede verse de la captura, el ejecutable trata de establecer una conexión con una página web, puntualmente con http://www.servidormalicioso.com, pero como no hay servidor DNS disponible no sabe cómo resolverla. Esta característica es la razón por la cual los analistas de seguridad de la empresa no pudieron determinar lo que hacía el ejecutable, una de las interrogantes planteadas en el Desafío 23.
Si utilizamos una herramienta como ApateDNS para redireccionar todo el tráfico generado por la máquina para establecer una conexión con algún servidor, vemos que la siguiente acción que realiza es un GET a un archivo llamado Key.txt.
Como el ejecutable no puede encontrar este archivo en el servidor, vamos a utilizar dos herramientas para tratar de determinar que otra acción se ejecutaría si logra encontrar el archivo. Utilizamos nuevamente ApateDNS para rediccionar todo el tráfico al localhost y además podemos utilizar XAMPP como herramienta para tener un servidor instalado en nuestra computadora. Después creamos un archivo Key.txt vacío en la carpeta raíz de nuestro servidor creado con XAMPP y ejecutamos nuevamente el archivo.
Se puede ver que en la carpeta donde se encuentra el ejecutable, se ha creado un nuevo archivo llamado Key.txt. Al abrirlo se puede identificar una cadena de caracteres codificada en los valores hexadecimales utilizados por HTML. Una opción para ver lo que contiene este archivo, es cambiar la extensión del archivo a .html y visualizarlo en un navegador web.
Aún no se puede entender la información pues nos encontramos con una nueva cadena, que por su estructura nos lleva a pensar que está codificada utilizando base64. Si utilizamos un decodificador, nos encontraremos con el verdadero mensaje. En este caso corresponde al primer párrafo de la novela Cien años de soledad del famoso escritor colombiano Gabriel García Márquez:
Si bien en este caso no hay ninguna acción maliciosa detrás de la ejecución del archivo, si se pueden observar comportamientos propios de algunos códigos maliciosos. Además en esta solución presentamos una forma de analizar este archivo utilizando algunas herramientas, pero es claro que se pueden utilizar otros procedimientos para lograrlo como lo presentaron algunos de los participantes que también pudieron resolver el desafío.
A todos los que participaron del desafío esperamos que lo disfrutaran y ¡estén atentos que próximamente volveremos a publicar nuevos desafíos!
H. Camilo Gutiérrez Amaya
Especialista de Awareness & Research