Desofuscando malware hecho en Java: una mirada al top 10 de Brasil

Hace unas semanas mencionábamos que los scripts maliciosos se afianzan en Brasil. Vimos cómo el top 10 de amenazas está compuesto por diversos lenguajes y plataformas, y analizamos malware en Javascript. Hoy vamos a continuar con otra de las amenazas más vistas en Brasil, downloaders de troyanos bancarios hechos en Java.

Siguiendo la pista de los servicios de cloud utilizados para alojar el malware en Javascript, nos encontramos con que también se están almacenando allí otras amenazas del top 10 de Brasil. En particular, vimos una alta actividad de archivos maliciosos detectados por ESET como Java/TrojanDownloader.Banload.AK.

Estos archivos son ejecutables .jar, con nombres como Boleto_Cobranca, Pedido_Atualizacao o Imprimir_Debitos. Si los decompilamos, obtenemos código ofuscado con nombres de variables y métodos extremadamente largos:

codigo ofuscado Java

Más allá de la ofuscación, podemos observar algunos de los imports en la imagen. Vemos que las últimas cinco clases importadas tienen que ver con cifrado, utilizando el algoritmo simétrico DES. Luego, si identificamos los métodos que realizan el descifrado, y realizamos el remplazo de métodos y variables por nombres más representativos, nos queda algo así:

descifrado DES en Java

La clave utilizada para el descifrado es igual al nombre de la clase de Java. Por lo tanto, adaptando un poco el código de main, puede hacerse que el malware descifre todas sus strings para nosotros. De hecho, podemos parsear la clase principal en búsqueda de estas strings y luego pasar este listado a nuestro código modificado, para que lleve a cabo el descifrado.

A continuación, vemos algunas de las strings cifradas y descifradas:

strings descifradas DES en Java

Hemos resaltado la dirección IP del servidor contactado por el malware, que varía entre las distintas muestras que hemos analizado. Vemos, además, que se construye un archivo de Visual Basic Script, que es luego ejecutado con cscript.exe.

Vale la pena aclarar que los archivos analizados tienen otras funcionalidades, lo cual se puede observar en el resto de los imports. Quizá lo que más vale la pena mencionar tiene que ver con la detección de entornos virtualizados, frustrando su ejecución. También vemos funciones de descarga de archivos de Internet, como se comprueba con el resto de los imports:

imports malware ofuscado Java

Llama la atención la diversidad en lenguajes y plataformas utilizadas en Brasil, pero se observa cómo los objetivos de los cibercriminales y sus métodos de propagación siguen siendo los mismos.

Muestras analizadas

SHA-1Nombre de archivoDetección
2c8385fbe7c4a57345bf72205a7c963f9f781900Imprimir_Debitos9874414541555.jar
Java/TrojanDownloader.Banload.AK
363f04edd57087f9916bdbf502a2e8f1874f292cAtualizacao_de_Boleto_Vencido_10155455096293504.jar
8b50c2b5bb4fad5a0049610efc980296af43ddcdLU 1.jar

Créditos imagen: ©clement127/Flickr

Autor , ESET

Síguenos