Deobfuscando malware Java: um visão sobre o Top 10 do Brasil

Deobfuscando malware Java: um visão sobre o Top 10 do Brasil

Há exatamente uma semana atrás, mencionamos que os scripts maliciosos estão se fortalecendo no Brasil. Vimos como o top 10 das ameaças está composto por diversas linguagens e plataformas, além disso, analisamos malware no Javascript. Hoje vamos continuar com outra das ameaças mais encontradas no Brasil, os downloaders de trojans bancários feitos no Java. Continuando

Há exatamente uma semana atrás, mencionamos que os scripts maliciosos estão se fortalecendo no Brasil. Vimos como o top 10 das ameaças está composto por diversas linguagens e plataformas, além disso, analisamos malware no Javascript. Hoje vamos continuar com outra das ameaças mais encontradas no Brasil, os downloaders de trojans bancários feitos no Java. Continuando

Há exatamente uma semana atrás, mencionamos que os scripts maliciosos estão se fortalecendo no Brasil. Vimos como o top 10 das ameaças está composto por diversas linguagens e plataformas, além disso, analisamos malware no Javascript. Hoje vamos continuar com outra das ameaças mais encontradas no Brasil, os downloaders de trojans bancários feitos no Java.

Continuando com a lista dos serviços em nuvem utilizados para hospedar o malware no Javascript, nos deparamos com outras ameaças (citadas no top 10 do Brasil) que também estão sendo armazenadas no mesmo lugar. Em particular, vimos uma alta atividade de arquivos maliciosos detectados pela ESET como Java/TrojanDownloader.Banload.AK.

Estes arquivos são executáveis .jar e possuem nomes como Boleto_Cobranca, Pedido_Atualizacao ou Imprimir_Debitos. Se os decompilamos, obtemos o código deobfuscado com nome de variáveis e métodos extremamente longos:

codigoofuscado

Muito além da deobfuscação, podemos observar alguns dos imports na imagem. Vemos que as últimas cinco classes importadas tem a ver com criptografia, utilizando o algoritmo simétrico DES. Em seguida, identificamos os métodos que realizam a descriptografia e realizamos a substituição de métodos e variáveis pelos nomes mais representativos, ficando assim:

descifradoDES

A chave utilizada para a descriptografia é igual ao nome da classe do Java. Portanto, adaptando um pouco o código de main, é possível que o malware descriptografe todas as strings. De fato, podemos analisar a principal classe na busca destas strings e, em seguida, passar esta lista a nosso código modificado, para que realize a descriptografia.

A seguir, vemos algumas das strings criptografadas e descriptografadas:

stringsDescifradasJava

Temos ressaltado o endereço IP do servidor contactado pelo malware, que varia entre as diferentes mostras que temos analisado. Vemos, além disso, que se constrói um arquivo do Visual Basic Script, que é em seguida executado com cscript.exe.

Vale a pena esclarecer que os arquivos analisados tem outras funcionalidades, que podem ser observadas no resto dos imports. Talvez o que mais vale a pena mencionar tem a ver com a detecção de ambientes virtualizados, frustrando sua execução. Também vemos funções de download de arquivos da Internet, como se comprova com o resto dos imposts:

importsjava

Nos chama a atenção a diversidade das linguagens e plataformas utilizadas no Brasil, mas também é possível observar como os objetivos dos cibercriminosos e seus métodos de propagação continuam sendo os mesmos.

 

Mostras analisadas

17-8-2016 12-19-44 p- m-

 Imagem: ©clement127/Flickr

Discussão