Caríssimos leitores, este artigo tem como objectivo a análise de um caso de Phishing. Hoje em dia é muito comum este tipo de casos, normalmente estes ataques induz em erro os utilizadores para que introduzam os seus dados pessoais, como passwords ou números do cartão de crédito em páginas clone (bastante semelhantes).
Para os mais ignorantes, o phishing pode ocorrer de diversas formas. Algumas são bastante simples, como conversas falsas em Instant messaging (IM) e emails, que pedem para clicar em links suspeitos. Fora isso, existem páginas inteiras construídas para imitar sites de bancos e outras instituições. Todas essas maneiras, no entanto, convergem para o mesmo ponto: roubar informações confidenciais de pessoas ou empresas.
Uma das empresas/entidade que mais sofre com estes ataques numa escala mundial é o Paypal, empresa (site) de pagamentos online.
O phishing que vamos analisar contém alguns métodos avançados e detalhes que visam enganar os mais ignorantes. É importante olharmos com atenção e perceber ao certo o que é que os piratas informáticos (atacantes) pretendem com estes clones e como os constroem.

Pote de mel – Link malicioso

Como já referido, a maior parte destes ataques é oriundo de IM’s ou emails. Por norma, os piratas usam robots (crawlers ou spiders) para obter endereços de e-mail.

Consultar os seguintes links no blog para obter e filtrar mais informação sobre o tema robots:

1# http://infptavares.blogspot.pt/2013/11/como-melhorar-indexacao-do-seu-siteblog.html
2# http://infptavares.blogspot.pt/2013/11/como-construir-um-web-crawler-agente.html

A prática desta actividade é muito usada na internet, visto que não necessitam de perder tempo a “angariar” endereços de e-mail, e para o devido efeito e-mails empresariais e pessoais são os pretendidos.
Uma questão que se coloca em causa é: “-Mas neste caso os indivíduos alvo podem ter diferentes nacionalidades certo?” Na verdade sim, e este caso de phishing é tão especial que trata todos esses detalhes.

Um exemplo desses e-mails é o seguinte:

Podemos observar que o domínio é fake: [email protected].

No caso que vamos analisar de seguida, o pirata até teve o real cuidado de mascarar todo o domínio e deixá-lo bastante idêntico ao do paypal. Vamos a isso.

Análise de Phishing

Na maioria dos casos de phishing, o pirata tenta sempre causar a impressão às vitimas que as URL’s da página clone são da página original, neste caso o Paypal. Como foi visto no caso de Phishing acima, o url http://www.paypal26.co.uk é de certa maneira semelhante ao original (https://www.paypal.com/uk), no entanto aquele 26 levanta algumas dúvidas. 
Tudo isto carece uma observação detalhada do utilizador. 
O URL do caso de estudo é o seguinte: 

http://paypal.com-us.cgi-bin-webscr-cmd.login-submit-dispatch.812jasd812312dm12d91282173#1asdasd12dafas512sgag35f.alkiavc.info/Open-information.php

Este URL já se parece mais com o original, apesar de extenso é bastante convidativo. Se a vítima olhar para ela como normalmente interpreta um vulgar URL, lê-o da esquerda para a direita e realmente http://paypal.com-us.cgi-bin-webscr-cmd.login-submit é bastante encantador.

Esta era a página inicial que a vítima visualizava. Actualmente a página inicial do Paypal sofreu modificações, quando fiz esta análise (à cerca de 1 ano) a página era exactamente como a apresentada..
Passava despercebida a qualquer utilizador comum, até o URL passava despercebido para qualquer ignorante. 

http://paypal.com-us.cgi-bin-webscr-cmd.login-submit-dispatch.812jasd812312dm12d91282173#1asdasd12dafas512sgag35f.alkiavc.info/Open-information.php 

Se olharmos com atenção o verdadeiro domínio onde a página estava alojada era o seguinte: 

alkiavc.info 

Tudo o resto era um sub-domínio criado a pente fino para induzir em erro as vítimas.
Outro pormenor que salta à vista é sempre o protocolo de comunicação usado na comunicação cliente-servidor para o request entre o cliente (vítima) e o servidor (página clone).
A página clone usa uma ligação desprotegida (http), enquanto que o site original da Paypal usa uma ligação segura em https.



É sempre necessário verificar se existe um certificado partilhado entre o browser que usamos para aceder a uma página e o servidor. De uma forma genérica, basta verifica se atrás do URL do site existe a seguinte descrição:

Desta forma garantimos na maioria das vezes, que a comunicação que estabelecemos é com uma entidade certificada e segura. Isto não acontece com a página clone criada pelo pirata, é notório logo a partir daqui que é uma página fake com o intuito de roubar os dados pessoais aos utilizadores.

Bem retornando ao URL da página pirata, temos a 1.º página a ser apresentada ao utilizador, uma página bem construída em inglês.

alkiavc.info/Open-information.php

1. Primeira página a ser apresentada À vítima.

Esta é a 1.º página apresentada ao utilizador (vítima). Como obtive acesso a todo o código, vamos dar uma olhadela.

Bem, segundo a análise que se pode extrair perante o código, ele apenas irá fazer um redireccionamento para a directoria “service” executando o ficheiro “reboot.php“. 
Esse directório possui a estrutura abaixo, que será referenciada várias vezes durante o artigo.

A página reboot.php possuí então o seguinte código:

Esta é uma maneira mais elegante de fazer um redireccionamento, existe uma variável que recebe a string Limit” e depois é executado um ciclo iterativo que irá verificar se determinado directório existe, dentro do padrão “Limit1“, “Limit2“, “Limit.$i“. O porquê do redireccionamento ser feito desta maneira iremos ver mais à frente. 
Quando um directório dentro deste padrão for encontrado, é feito de forma automática o redireccionamento para ele. 
Como podemos ver na imagem da listagem do directório “service“, existe uma directoria com este padrão, nomeadamente Limit100. Dentro desta directoria existe existe um index, esse index é então chamado e apresentado à vítima.
Passando para a análise da página “Limit100/index.php” encontramos o código abaixo:

Ao analisar esta página vemos inicialmente a assinatura da pessoa que projectou e implementou esse código “Scam Made By AdAmMeD“, não é necessariamente o autor da página clone, mas foi quem desenvolveu o script e vendeu ou publicou numa página da internet para outros utilizadores usarem. 
Posteriormente é acedida a variável global do PHP : “HTTP_ACCEPT_LANGUAGE“, que informa qual a linguagem que o browser da vítima solicitou. 
A partir disso o atacante sabe qual é o idioma mais adequado para apresentar a página falsa do PayPal. Isso mostra  que ele  não está só à procura de vítimas que entendam inglês, como vemos no código ele também tem versões para espanhol e francês. Isto é quase uma obra de engenharia, diga-se de passagem.
Se prestarmos atenção ao directório Limit100 ele contem 3 ficheiros, Pay_EN, Pay_ES, Pay_FR, nomeadamente os ficheiros para cada uma das línguas. 
Após a inclusão da página, ele finalmente exibe a página inicial do phishing, aquela que vimos na primeira figura. Vamos então analisar a página da versão inglesa. 
Mesmo fazendo essa escolha de idioma inicial, o atacante permite que a vítima altere o idioma na página, existe um form para isso:
Ao seleccionar cada uma das opções (English, Español ou Français), é feita a inclusão mais adequada da página.
Vejamos com melhor definição.

Agora analisando o início do código PHP da página Pay_EN.php vemos esses dados sendo tratados:

Ele inicia uma sessão no PHP caso já não tenha sido iniciada e atribui  numa variável de sessão o idioma escolhido (essa variável ficará visível para todas as páginas). Depois recebe as variáveis “cmd” e “locale_x” passados pelo form pelo método POST e então se a vítima escolheu outro idioma ele chama a página correta.

2. Capturar os dados da Vítima

Nesta mesma página Pay_EN.php existe ainda outro formulário de login, que é o que interessa ao pirata. Este formulário serve então para capturar os dados da conta da vítima.

O código HTML desse form é esse:

Os dados inseridos nesse form vão para essa página do phishing

“webscr?cmd=_login-submit&dispatch=5885d80a13c0db1f8e2636…” 

Olhando o link Problem with login?”, aqui o atacante redirecciona para o site verdadeiro do PayPal, vemos a semelhança das duas URLs

https://www.paypal.com/us/cgi-bin/webscr?cmd=_account-recovery&from=PayPal 

Mais uma vez para deixar as URLs com aparência mais legítima. Outro detalhe é que ele chama o index de um directório e passa  o parâmetro para ele somente com o nome da pasta, sem especificar o ficheiro index

O atacante usou isso:

“webscr?cmd=_login-submit…” 

Ao invés disto: 

“webscr/index.php?cmd=_login-submit 

Uma forma mais furtiva para se parecer com a URL verdadeira. Se olharmos na figura da estrutura de pastas do “service” iremos encontrar a pasta “webscr” lá, é que terá o index.php que receberá os dados desse formulário passados pelo método POST
Caso pretenda mais informação sobre este méodo consultar no blog:
A página “webscr/index.php” possui algumas coisas interessantes. Primeiro, para QUALQUER vítima e password digitada no formulário anterior ela mostrará essa página: 

É uma mensagem de erro, é exibida ao utilizador após ele efectuar login. Quando o utilizador clicar em “Log in” é disparado o código que se encontra o inicio da página.

É feito um “if” para validação de dados, caso esteja tudo correcto são criadas variáveis de sessão com os registos. Consequentemente é feito o redireccionamento para outra página. 

“../loading.php?cmd=_login-submit&dispatch=…” 

Nota: Antes desse redireccionamento existe a inclusão de uma página, interessante. 

“include “../lang/langdetect.php”; 

A “langdetect.php” é inserida na “webscr/index.php“, esse include tem como principal objectivo apresentar essa página do segundo login no idioma correto. Desta vez o atacante não criou uma página para cada um, ele usou só uma página que para cada string há uma variável que a exibe no idioma correto. 
Este processo é feito a partir do seguinte código na página “langdetect.php“:

Dar real foco à linha 17 da listagem acima não tem nada a ver com idioma, é criada a variável global “PR_TARGET” que será usada mais à frente: 

define(‘PR_TARGET’, ‘../WEBSCR-640-20101004-1/Marketing/css/pages/’); 

Já as páginas com as strings de cada idioma possuem essa estrutura:
Após digitar pela segunda vez os dados de login é chamada a página “loading.php“, que tem a única finalidade de exibir um “loading…” na tela e redireccionar para outra página através desse HTML

<META http-equiv=Refresh content=”3; URL=webscr/update.php?cmd=_login-done&amp;login_access=1193476743″>

3. Salvar os dados pessoais da Vítima

A página “update.php” é a página mais importante. A parte visual dela é uma formulário de actualização de dados do perfil do PayPal, para o utilizador inserir várias informações. E como não poderia faltar, informações de cartão de crédito também.
O código referente a esta página ainda é ainda mais interessante.
Tudo o que é inserido nessa página é enviado para ela mesma e o PHP trata os dados. Primeiro há validações simples para verificar se realmente os dados foram inseridos, caso esteja tudo certo é criado um e-mail com as informações.
E conseguimos ver para quem os dados furtados são enviados:

$to = “[email protected]”; // Put here Your E-Mail…

Ao analisar o código temos uma pista, possívelmente quem projectou e implementou a plataforma clone não é o mesmo individuo  que fez o ataque. Possivelmente, este clone estaria disponível para download e alguém criou um domínio e somente copiou e colou a directoria da página clone. Podemos provar isso no comentário:

// Put here Your E-Mail…


Um comentário de “ajuda” ao utilizador ignorante.
Na parte final da imagem anterior é possível verificar “Credit Card Result”, ali ele guarda as informações relativas ao cartão de crédito!
Após enviar os dois e-mails (dados de login e cartão de crédito) é feito um redireccionamento para a página done.php através da linha abaixo: 

header(“Location: ../done.php?cmd=_login&dispatch=5885d80a13c0db1f8e26…”); 

Vemos também, que caso os dados digitados no formulário não passem nas validações, há um código que grava  num .txt algumas informações já capturadas. Isso deve ser para garantir que pelo menos o utilizador e password digitados sejam capturados. 

5. Último passo.

Por fim, o redireccionamento anterior levou a execução para a página done.php. Essa tem a finalidade de passar um pouco mais de credibilidade ao ataque, exibindo algumas mensagens de sucesso e informações de data e hora. Ela por sua vez redirecciona automaticamente após 4 segundos para uma outra página através dessa linha: 

<META http-EQUIV=”refresh” content=”4; URL=../dir.php”> 


E é na dir.php que entendemos o uso daquele diretório “Limit”. Segue o código:
É apresentada uma mensagem que o processo está em espera. Enquanto isso, o directório “Limit101” é criado. Por fim, a vítima é redireccionada para o site original do Paypal
Para esta história do “Limit” vejo uma explicação, que é o uso de firewalls para bloquear links suspeitos. Caso uma firewall bloqueie a página do “Limit100“, a próxima página será a “Limit101“, está sempre a renovar, os links serão outros, esta é uma forma de contornar a situação a meu ver.
Interessante, na directoria inicial havia também um ficheiro .htaccess, este continha a seguinte informação.

Negação de serviço a determinados IP’s. Neste caso o atacante poderia ter sido atacado por alguns indivíduos que desconfiam da página clone e ele bloqueava-lhes o acesso. 
Também no directório base da página clone existe um ficheiro “error” do PHP. Ao analisar esse ficheiro é possível concluir que até ao momento da análise deste phishing o atacante furtou 100 utilizadores, existia um aviso na criação de “Limit“. O valor máximo presente era de 100.
Chegamos ao fim desta análise. Concluímos que este ataque é uma grande obra de engenharia. Alguém foi pago certamente para produzir esta “arma” perigosa, ou a disponibilizou para download
Não se esqueçam SEMPRE de verificar se a página é legítima, pois na sua maioria, os grandes ataques e furtos de dados pessoais na internet é causado por ataques de phishing

Alguma dúvida, comente.
Boa Continuação.

——————
O porquê de tutoriais em português?

Na sua maior parte, a internet está cansada de partilhar tutoriais em inglês.

—————–
Artigos relacionados:

Como melhorar a indexação do seu site/blog