Sunteți pe pagina 1din 34

Coordenao de Tecnologia da Informao CTI

MJ Departamento de Polcia Federal


Diviso de Informtica - DINF

Coordenao de Tecnologia da Informao CTI

Pen-test de Aplicaes Web: Tcnicas e


Ferramentas

Ivo de Carvalho Peixinho


Perito Criminal Federal
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Agenda
1.Introduo
2.Ferramentas
3. Metodologia
4.Concluses

2
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Introduo
Aplicaes Web
Desenvolvidas em cima do protocolo HTTP e dos Web
Servers.
Utilizam diversas linguagens e tecnologias (PHP,
ASP, .NET, J2EE, Applets Java, ActiveX, CSS, DOM,
SOAP, XML, C#, AJAX, SQL, RMDBS, Perl, Python,
Ruby, Cookies, HTML, Javascript, Flash, ISAPI,
WebDAV, CGI, ColdFusion, etc).
Crescimento exponencial das aplicaes
Crescimento dos ataques
3
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Introduo
Segurana de Aplicaes Web
SSL/TLS como panacia de segurana
Protocolo HTTP inseguro
Inadequado para aplicaes web (stateless)
Clientes (Browsers) inseguros
Usurio pode manipular dados
Usurio pode enviar dados arbitrrios
Proteo de permetro insuficiente
Filtros na porta 80/443?
4
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Introduo
Anlise de Vulnerabilidades
Pode ser automatizado por ferramentas
Bons para aplicaes off the shelf (Webmail, blogs, etc).
Podem no encontrar todas as vulnerabilidades da
aplicao (variaes)
Podem gerar falso-positivos
Pen-Testing
Requer conhecimento e tempo por parte do analista
Capaz de encontrar vulnerabilidades mais complexas
Comprovao das vulnerabilidades (sem falso-positivos)
5
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Ferramentas
Anlise de Vulnerabilidades
W3AF - http://w3af.sourceforge.net/
Nikto - http://cirt.net/nikto2
Nessus - http://www.nessus.org/
Httprint - http://www.net-square.com/httprint/
Pen-Test
Burp Suite - http://www.portswigger.net/suite/
WebScarab - http://www.owasp.org/
JAD - http://www.varaneckas.com/jad
Paros proxy - http://www.parosproxy.org/
WebGoat - http://www.owasp.org/

6
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
1. Mapear o contedo da aplicao
2. Analisar a aplicao e o servidor
3. Testar controles no lado do cliente
4. Testar mecanismos de autenticao
5. Testar mecanismos de gerenciamento de sesso
6. Testar controles de acesso
7. Testar vulnerabilidades nos parmetros de entrada
8. Testar vulnerabilidades do Web Server
7
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Mapear o contedo da aplicao
Web Spidering
Varrer links da aplicao
Montar mapa da aplicao
Ferramentas automticas
Burp Suite
WebScarab
Paros Proxy
8
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Web Spidering

9
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Mapear o contedo da aplicao
Web Spidering automtico
Desvantgens
Mtodos de navegao no usuais
Funes com validao de dados
Gerenciamento de sesses
Spidering manual
Ferramentas de interceptao / proxy
Acesso manual aplicao
10
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Mapear o contedo da aplicao
Contedo escondido
Fora bruta (admin, access, setup, teste,
test, downloads, private, phpinfo, .php)
robots.txt
Mecanismos de busca (google site: e link: )
Caminhos escondidos em aplicaes
conhecidas

11
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Analisar a aplicao
Pontos de entrada de dados
URLs
Parametros de formulrios (POST)
Query Strings
Cookies
Encapsulamento de dados
Parmetros no caminho da URL
Verificar se a aplicao responde diferente para novos
parmetros
12
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Analisar o servidor
Identificando o
servidor Web
httprint
Mensagens de erro
da aplicao

13
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Possvel superfcie de ataque
Bancos de dados -> Injeo SQL
Envio/download de arquivos -> Vulnerabilidades de path
traversal
Apresentao de dados enviados pelo usurio -> XSS
Autenticao -> enumerao de usurios, senhas fracas,
fora bruta
Mensagens de erro -> Vazamento de informao
Componentes nativos -> buffer overflows
Componentes de terceiros -> Vulnerabilidades conhecidas
14
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Mapear a aplicao Resumo
Enumerar contedo visvel e funcionalidade
Uso de fora bruta e inferncia para localizar
contedo escondido
Anlise da aplicao
Funcionalidade, comportamento e
mecanismos de segurana
Verificao da superfcie de ataque

15
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar controles no lado do cliente
Campos de formulrio escondidos
Parametros em URL
Dados obfuscados
Base64, hex, etc
Limites de tamanho em formulrios
Validao Javascript (ex: CPF)
Atributos desabilitados (disabled=true)
Componentes compilados (Applets Java, etc)
Teclado Virtual
16
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar controles no lado do cliente
Applets em Java
Bytecode decompilvel
JAva Decompiler (JAD)
<applet code=HelloWorld.class id=Applet></applet>
Possibilidades
Alterar e recompilar
Analisar mtodos pblicos (JavaScript)
Converter em linha de comando (void main)

17
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar controles no lado do cliente
Outros componentes compilados
Flash
Flasm / Flare
Silverlight
Decompilvel (dll em C#)
Active X
Decompilvel se for em C#
Debugger (funes exportveis - JavaScript)
18
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de autenticao
Senhas fracas
Possibilidade de enumerar usurios
Fora bruta de usurios
Mecanismos de recuperao de senhas e
contas
Cookies de lembrana (remember-me)

19
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia

20
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de gerenciamento de sesso
HTTP Status Codes
200 Ok
301 / 302 Redirect
401 / 403 Not Authorized
404 Not found
500 Server Error

21
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Manipulao insegura de credenciais
Credenciais enviadas por HTTP
Credenciais enviadas por HTTPS, porm o formulrio
de login enviado via HTTP (verificao da origem)
Credenciais armazenadas em cookies
Credenciais passadas na URL (Query String)
Usar sempre POST
Credenciais passadas do servidor para o cliente
(remember me)

22
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de gerenciamento de sesso
Mecanismos de estado de sesso
HTTP stateless
Necessidade de identificar sesses
Atribuio de token para cada sesso
Token reenviado em cada requisio
Vulnerabilidades
Tokens gerados de forma insegura
Tokens tratados de forma insegura
23
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de gerenciamento de sesso
Gerao de tokens
Tokens com dados da sesso (ex: IP,
username, etc).
Tokens codificados
Base64
Hexadecimal
Tokens previsveis (aleatoriedade insegura)
Tokens cifrados (possibilidade de tamper/ECB)
24
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de gerenciamento de sesso
Gerao de tokens
Tokens com dados da sesso (ex: IP,
username, etc).
Tokens codificados
Base64
Hexadecimal
Tokens previsveis (aleatoriedade insegura)
Tokens cifrados
25
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia

26
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar mecanismos de gerenciamento de sesso
Manipulao de tokens
Revelao de tokens
Trechos do site em HTTP
Tokens na URL
Captura de tokens em cookies (XSS)
Finalizao de sesso
Funes de logout defeituosas

27
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar controles de acesso
URLs de acesso privilegiado pblicas
URLs no so secretas!!
Controles baseados em identificao
Especificam recusos e aes acessados
Identificadores tambem no so secretos
Controles de acesso mltiplos
Apenas o primeiro estgio seguro
Arquivos estticos
28
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar controles de acesso
Arquivos estticos
Compras online de arquivos
URL esttica
Acessvel em contextos no autorizados
Mtodos inseguros
admin=true

29
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar vulnerabilidades nos parmetros de entrada
Injeo SQL
or 1=1
UNION SELECT --
SELSELECTECT
Etc

30
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar vulnerabilidades nos parmetros de entrada
Injeo de comandos de sistema
` & | ; < > \
script.cgi?a=b | cat /etc/passwd
<parametro> && dir c:\

31
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Metodologia
Testar vulnerabilidades do Web Server
Credenciais Padro
interfaces de administrao
Contedo padro
phpinfo, test.cgi, etc.
Listagens de diretrio
Virtual Hosting mal configurado (permisses)
Servidores Web vulnerveis (atualizaes)
32
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Concluses
Crescimento exponencial das aplicaes Web
Pouca cultura de segurana em aplicaes Web
SSL no torna seu site seguro
URLs so pblicas!!!
Use POST
Filtros de pacote ineficientes para proteo do permetro
Mod_security uma boa idia!!
Pen-test importante para aplicaes home made
Necessita de tempo e conhecimento (treino)
Ferramentas ajudam
33
MJ Departamento de Polcia Federal
Coordenao de Tecnologia da Informao CTI

Ivo de Carvalho Peixinho


Perito Criminal Federal
peixinho.icp @ dpf.gov.br

S-ar putea să vă placă și