Sim, exatamente JavaScript. Acabei de conhecer um verme e tentei decodificá-lo.
Qual é o problema real:
O worm recente do Facebook funciona fazendo com que os usuários visitem uma página, o que os faz inserir uma string JavaScript em sua barra de endereços e, portanto, executá-la.
Portanto, NUNCA copie algum código JavaScript na sua barra de endereço. Esse é o principal problema. E não clique em nenhum link em que não confie. Ou pelo menos abra esses links em uma nova janela usando o Modo de privacidade (Firefox) ou o modo de navegação anônima (Chrome) para que ele não possa acessar sua sessão do Facebook.
O que nossos hackers fizeram para que as pessoas não percebessem o que estavam fazendo?
Escapando o script
A string que você copia na barra de URL é vinculada principalmente a outro JavaScript que é executado. Este script é realmente decodificado em entidades. Portanto, em vez de usar caracteres de seqüência de caracteres, o script inteiro foi colocado em uma sequência de caracteres e escapou para que nenhum ser humano pudesse lê-lo em primeiro lugar.
Por exemplo, se eu tivesse uma função muito maliciosa, escaparia dela e o usuário veria apenas:
function%20test%28%29%20%7B%20alert%20%28%22LOL%22%29%3B%20%7D
e sem escape seria
função test () {alert ("LOL"); }
O script, portanto, tira o "próprio" antes de ser executado.
Ofuscando-o
Agora está ficando feio: antes de escapar, o código JavaScript maligno é ofuscado, com nomes de funções como _____x
e variáveis como aLDIWEJ
. Isso ainda faz sentido para o JavaScript, mas é totalmente ilegível para os seres humanos. Isso é feito, novamente, para mascarar as intenções de nossos hackers do Facebook.
Nesse ponto, o código poderia ter algo parecido com isto:
O que o script faz
Bem, o que esse script faz é levar sua sessão atual do Facebook. Como você está conectado ao site, ele pode fazer qualquer coisa em seu nome. Por exemplo, o que pode ser feito através da API do Facebook é:
- criando um evento como "OMG, posso ver quem me perseguiu!"
- conversando com pessoas
- postando atualizações de status
- etc.
Tudo isso acontece chamando algumas das páginas da API do Facebook (algumas páginas do PHP, esqueci qual).