ElevenPaths descobre a senha do ransomware Popcorn: se o infectado infectar a outros, sua liberação é gratis

quinta-feira, 15 de dezembro de 2016

MalwareHunterTeam descobriu uma nova variante do ransomware bastante curiosa. Na ElevenPaths conseguimos descarregar e analisar as novas versões melhoradas que cometem alguns erros interessantes, entre eles, o que permite conhecer sua senha de “desencriptação”. Esta amostra chama a atenção porque em teoria oferece duas formulas para “desencriptar” os arquivos: uma pagando e a outra se o próprio arquivo infectado consegue infectar o duas ou mais pessoas que paguem o resgate.


The "easy" way and… the "nasty" way

A parte do que se comentou já sobre esta nova versão, nos centraremos nos aspectos, mas interessantes da evolução que analisamos na ElevenPaths. A funcionalidade básica é a mesma de sempre: criptografa-se uma grande quantidade de arquivos segundo sua extinção e, pede-se um resgate de 1 bitcoin (acima da média que habitualmente se pede). O que faz deste ransomware diferente é, oferecer duas vias para a decriptografia do conteúdo: a via “normal” onde paga-se um regate e, a via “nasty” (assim denominada por eles mesmo) em que se envia um link com um executável a duas pessoas e se infectadas e estas pessoal pagam, te darão o código “grátis” para poder decifrar seu conteúdo. Uma forma de distribuição “de amigos para amigos” em que o atacante garante duas infecção pelo preço de uma, e um método de distribuição mais eficaz, posto que as vítimas escolhidas pelo usuário infectado estarão sempre mais predispostas a executar um link enviado por um conhecido. Outra coisa é que pague (suposta condição para que seja aplicado o “desconto”). Também se destaca que o ransomware apela para a sensibilidade da vítima, assegurando que o dinheiro irá para uma boa causa: diminuir os efeitos da guerra na Síria. Anteriormente se chamava “popcorn” porque a primeira versão utilizava o domínio popcorn-time-free.net, porém já não é assim nas ultimas versões.

Appealing to the sensitivity of the victim.
They also lie when they say that there is nothing to do and that only they can decrypt the data.

Os aspectos técnicos
Como funciona este ransomware tecnicamente? Foi criado por um grupo independente sem seguir as diretrizes das grandes famílias e portanto, ainda não está muito desenvolvido. A margem das versões analisadas por MalwareHunterTeam, na ElevenPaths tivemos acesso a novas amostras. Estes são alguns dos aspectos interessante que observamos.

O programa está escrito em C# e necessita de .NET4 para ser executado, O executável é criado “em voo” para cada usuário infectado, com um código ID único para cada uma das vítimas. Curiosamente, todas as variáveis estão “inseridas” no próprio código e, se cria do lado do servidor. Além de que, não segue o padrão habitual do ransomware profissional, em que o cifra cada arquivo com uma chave simétrica diferente e logo esta é criptografada com uma chave assimétrica. Ao contrário, todos os arquivos são criptografados com a mesma chave simétrica. A partir daqui, conhecer a senha é uma questão de analisar o código do executável.

A “password”
Se você “debugar” o código com ILSpy por exemplo, poderá observar a linha que contem a senha em base64. Uma rápida decodificação nos permite obter a senha e os dados de volta. Não criamos nenhuma ferramenta especifica porque provavelmente o atacante mude rapidamente de estratégia e além disso, não parece ser um malware muito avançado e difundido (se alguém estiver infectado, entre em contato conosco, por favor). O fato é que a senha de suas primeiras versões era sempre “123456”.

Como mencionamos, assume-se que a senha (junto com o restante de variáveis) é inserida pelo servidor no momento da criação do executável. Após a análise que realizamos, demonstrou ser um hash MD5 do qual ainda não sabemos a que corresponde. Este hash MD5 esta triplamente codificado com base64 no código.

Partof the code where the password appears and how to decode it in base64. Click to enlarge

O resultado do debug é a senha que introduzida no dialogo correspondente para decifrar os dados sem a necessidade de pagar.



O restante do código as vezes sao um pouco absurdos, embora aparentemente estão trabalhando no dia a dia para melhorá-lo. Por exemplo, o salt na função criptográfica não é aleatório. Isto que em qualquer outra circunstância permitiria um ataque por dicionário, realmente aqui não tem muito efeito (a senha não está em dicionário e sim é um hash), porém a ideia do pouco valor criptográfico que tem este ransomware.

A not very useful salt (12345678), although it is not very important here.

O código HTML
O código HTML que é mostrado a vítima, forma de uma parte muito importante deste malware. Está igualmente inserido e codificado em base64 no código. Nele se observa que se realiza uma comprovação usando as APIs do Blockchain.info (mal utilizada, pois finaliza com aspas no wallet) para saber se foi realizado o pagãmente se ele está validado no blockchain. Utiliza satoshis, que são frações de um bitcoin.

They misuse the API of Blockchain.info, although later they correct it


Sim é assim, apresentam umas URLs ocultas em JavaScript que supostamente dão acesso ao código de “descriptografia” alojadas na rede Tor. Esta proteção (usando uma classe “hide”) é absurda. Ao acessar a elas não identificamos nenhum código de descriptografia. Consideramos que ainda está em fase de provas.


They are supposed to provide you with the decryption code when you pay and visit those URLs, but it does not look like it.

Distribuição “de amigos para amigos”
O que mais chamou a atenção foi o modelo “nasty way” de decifrado dos arquivos. Supõe-se que se envia a dois conhecidos o link executável e estes pagam, te darão o código de desbloqueio. Muito inteligente para obter uma rápida expansão, porém, acreditamos que é falso. O código não possui nenhuma instrução para comprovar que isto ocorre automaticamente. A não ser que toda a inteligência esteja do lado do servidor (coisa que não acreditamos) não se pode garantir (nem evidenciamos tecnicamente) que isto seja assim e por tanto existem muito mais possibilidades de tratar-se de uma simples farsa para distribuir o malware. O fato é que os executáveis gerados não contem informação sobre quem recomendou ou enviou em seu interior, somente o fato de serem criados a partir de uma URL que contém um ID da vítima inicial... porém observando toda a “tramoia” do sistema, sua mal programação, as promessas não cumpridas (conta regressiva ameaçando e que ao final não apagam nada), sua infraestrutura pouco estável e artesanal nos faz pensar que tudo é falso ou que não exista nenhum mecanismo para controlar isto.

Recordem-se que temos uma ferramenta com uma aproximação de proteção proativa contra o ransomware que em breve você poderá descarregar a partir de nosso laboratório.


Sergio de los Santos
ssantos@11paths.com
@ssantosv

Nenhum comentário:

Postar um comentário