Nesta postagem eu vou estar descrevendo uma pequena análise realizada em cima de um e-mail de phishing que eu recebi recentemente (Espero que isso sirva de ajuda para futuras análises de phishing e páginas maliciosas para os leitores do blog)..
Análise inicial do e-mail
A figura abaixo apresenta a mensagem original de phishing.
![]() |
Figura 01: Mensagem Original |
Já da para perceber pela figura 01 que este e-mail se trata de um phishing voltado para clientes de um determinado banco. A partir do conteúdo da mensagem, podemos ver que a mesma apresenta um link para endereço o qual não pertence ao banco (ver figura 02).
![]() |
Figura 02: Link de origem |
Analisando o link de origem
Através da figura 02 é possível ver o endereço do link da mensagem:
http://spaces.isu.edu.tw/~lawedu/media/system/images/sex5/?cliente=[E-MAIL]
O servidor 'spaces.isu.edu.tw' está localizado no endereço IP '140.133.46.51'. Através de um simples 'whois' nós podemos obter algumas informações sobre o endereço de origem do link (ver figura 03).
Vamos agora realizar uma requisição para o link citado sendo que com um endereço de e-mail diferente para o parâmetro 'cliente' (ver figura 04).
Através da Figura 04 é possível ver que o servidor 'spaces.isu.edu.tw' realiza um redirecionamento da nossa requisição para 'www.prfprinting.ir' (localizado no servidor 144.76.219.88). Depois de uma pequena busca, eu acabei descobrindo que o servidor 'www.prfprinting.ir' foi previamente invadido e um webshell foi instalado por um atacante (ver figura 05).
Analisando o conteúdo da página
Neste momento vamos analisar o conteúdo devolvido pelo servidor 'www.prfprinting.ir'. Três arquivos '.php' (topo, body e rodape) fazem parte da página retornada pelo servidor (ver Figura 06).
![]() |
Figura 06: Página principal do servidor |
Depois de analisar um pouco cada um dos três arquivos '.php', eu percebi a presença de código javascript obfuscado em 'topo.php' e 'body.php'. O arquivo 'body.php' apresenta alguns pontos mais importantes para a análise do ataque: funções suspeitas e o arquivo 'cmds.js'.
Funções suspeitas
O arquivo 'body.php' apresenta algumas funções suspeitas: fCheck, cxk e puxaDados (ver figuras 07 e 08).
![]() |
Figura 07: Funções puxaDados e cxk |
![]() |
Figura 08: Função fCheck |
Arquivo cmds.js
A página 'body.php' importa um arquivo 'cmds.js' (ver figura 09)
![]() |
Figura 09: Importando 'cmds.js |
O início do arquivo 'cmd.js' é apresentado na figura 10.
![]() |
Figura 10: arquivo cmd.js |
As figuras 11 e 12 apresentam as funções cxk, puxaDados e fCheck (É importante notar que certas partes das funções puxaDados e fCheck estão obfuscadas!).
![]() |
Figura 11: Funções cxk e puxaDados |
![]() |
Figura 12: Função fCheck |
A função fCheck recebe dois parâmetros de entrada: 'ppl' e 'action'. A função realiza diversos 'ifs' comparando o conteúdo da variável 'action' com diversos valores (ex: 'ggc', 'sen' e 'wtv'). Vamos focar em uma dessas comparações (eu vou selecionar 'sen' (Mesmo valor presente na figura 08!)). A figura 13 apresenta a parte do código no qual o valor de 'action' é comparado com 'sen'.
![]() |
Figura 13: Função fCheck (checando ifs) |
A partir da figura 12, é possível constatar de que partes do código da função fCheck estãos obfuscados. Vamos deobfuscar estas partes para ter uma ideia melhor do que ocorre durante esta função. As figuras 14 e 15 apresentam os 'pedaços' de códigos antes e depois da deobfuscação.
![]() |
Figura 14: Código Obfuscado |
![]() |
Figura 15: Código Deobfuscado |
A partir da Figura 15, podemos ver uma variável 'sen' sendo criada a partir do elemento 'campo_s_se_1522_0922'. Esta variável contém a senha utilizada pelo usuário na página de phishing. A função verifica se a variável 'sen' tem 6 ou mais caracteres. A variável 'varsend' é formada por:
varsend = 'altera=senha&senhae=' + sen.value
A função 'enviaDados' é chamada com 2 parâmetros:
- ppl = Endereço IP da vítima
- varsend = 'altera=senha&senhae=' + sen.value
Função enviaDados
Vamos ver agora de que forma os dados do usuário são enviados para o atacante. Vamos continuar ainda nesse exemplo da senha do usuário. A função 'enviaDados' é apresentada na Figura 16.
![]() |
Função 16: Função 'enviaDados' (Obfuscada) |
A função 'enviaDados' apresenta uma parte de seu código obfuscada. Vamos agora deobfuscar esta seção do código (ver Figura 17).
![]() |
Figura 17: Função 'enviaDados' (Deobfuscada) |
A função 'enviaDados' cria uma requisição POST para o endereço 'http://www.prfprinting.ir/atendimento.online/components/com_user/user/plugin/index.php' enviando a senha da vítima através do parâmetro 'senhae'.
Conclusão
Nesta postagem eu apresentei uma análise básica de um e-mail de phishing contra clientes de um determinado banco. O phishing análisado obtinha dados dos clientes (como senha) e enviava estes dados para uma URL específica do servidor 'www.prfprinting.ir'. Os arquivos maliciosos do servidor 'www.prfprinting.ir' foram removidos recentemente (provavelmente pelos responsáveis do servidor). Por favor escrevam suas sugestões e comentários!
Obrigado :)
Keep Hacking!