Ataques de Brute-Force em Aplicações Web
4 de Março de 2010 às 12:48 TrustSign | Enviar por e-mail Hits para esta publicação: 837
O ataque de Brute-force sempre foi muito comum em serviços disponibilizados remotamente tais quais, FTP, SMTP, POP e outros. Em geral, este ataque por si só não apresenta um risco muito grave, porém pode ser utilizado como vetor para ataques mais complexos que podem explorar falhas na infra-estrutura, desde políticas de permissões fracas ou mal configuradas, política de senhas ineficientes ou inexistentes, e outras.
Durante este tipo de ataque, o atacante tenta transpor mecanismos de segurança, por exemplo, sistemas de autenticação, proteção de diretórios por senha, etc, tendo como base um mínimo conhecimento sobre o alvo.
Existem basicamente 2 métodos que podem ser empregados neste tipo de ataque, o ataque de dicionário e o de força-bruta.
Dicionário: O atacante utiliza um catalogo pré-formatado onde são utilizadas strings que contém possíveis resultados, e que em geral utilizam senhas padrão comumente utilizadas assim como nomes de pastas, etc. Em geral este tipo de ataque tende a ser direcionado.
Força-Bruta: O atacante utiliza classes de caracteres, por exemplo, alfanumérica, caracteres especiais, case sensitive e etc. Neste caso específico este tipo de método demanda muito tempo e seu percentual de aproveitamento é muito baixo, assim como gera muito “alarde” durante o ataque fazendo com que possíveis mecanismos de segurança, como IDS, IPS e outros sejam acionados.
Em sua grande maioria os ataques de brute-force são utilizados objetivando conseguir senhas de usuários para controle de acesso de aplicações e sistemas. Entretanto, existem diversas ferramentas que utilizam esta técnica para examinar web services, procurar pastas contendo arquivos que possam conter senhas de banco de dados, assim como testar como a aplicação se comporta utilizando diferentes data forms (GET/POST), e ainda identificar session-IDs de usuários.
Especialmente em aplicações web o ataque de brute-force pode ser utilizado para:
- Conseguir cookies de acesso a sessões de usuários;
- Usuários e senhas de diretórios protegidos;
- SessionID de aplicações;
- Arquivos de include contendo dados sensíveis como senhas de banco de dados entre outras.
Veremos abaixo alguns exemplos de ferramentas que podem ajudar durante o teste de aplicações web e descobrir se estamos vulneraveis a este tipo de ataque.
Para testes em serviços web existem 2 ferramentas interesssantes:
- dirb (http://sourceforge.net/projects/dirb)
- webroot (http://www.cirt.dk/tools/webroot/WebRoot.txt)
A ferramenta dirb consiste em uma ferramenta com opções mais avançadas e pode ser utilizada para:
- setar diferentes cookies
- adicionar qualquer tipo de HTTP header desejado
- utilizar proxys para mascarar a conexão
- Utilizar catalogos ou arquivos utilizando dicionários definidos ou templates fazendo uma varredura direcionada.
Podemos fazer um teste simples utilizando-a:
[root@localhost /]$ ./dirb http://laboratorio.test/
—————–
DIRB v1.9
By The Dark Raver
—————–
START_TIME: Mon Jul 9 23:13:16 2007
URL_BASE: http://laboratorio.test/
WORDLIST_FILES: wordlists/common.txt
SERVER_BANNER: apache/3.2.2
NOT_EXISTANT_CODE: 404 [NOT FOUND]
(Location: ‘’ - Size: 345)
—————–
Generating Wordlist…
Generated Words: 839
—- Scanning URL: http://laboratorio.test/ —-
FOUND: http://laboratorio.test/phpmyadmin/
(***) DIRECTORY (*)
No output da ferramenta somos informados que a pasta phpmyadmin/ foi encontrada. Um atacante poderia agora efetuar um ataque direcionado para a aplicação PHPMyAdmin, como por exemplo tentar senhas de acesso default ou utilizar exploits para a versão em uso do PHPmyAdmin.
Um dos maiores problemas com ferramentas como o dirb é reconhecer se a mensagem de retorno do servidor é a esperada ou não. Em casos onde o servidor tem configurações avançadas (exemplo utilizando mod_rewrite) ferramentas automaticas não conseguem distinguir uma mensagem de resposta do servidor sobre um determinado erro ao acessar uma pasta ou arquivo.
A aplicação WebRoot.pl escrita pelo CIRT.DK, tem mecanismos embutidos para trabalhar as respostas do servidor, e baseado na frase especificada pelo atacante, consegue identificar se a resposta do servidor é a esperada ou não.
./WebRoot.pl -noupdate -host laboratorio.test -port 80 -verbose -match “senha” -url “/private/
oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
o Webserver Bruteforcing 1.8 o
0 ************* !!! WARNING !!! ************ 0
0 ******* FOR PENETRATION USE ONLY ********* 0
0 ****************************************** 0
o (c)2007 by Dennis Rand - CIRT.DK o
oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
[X] Checking for updates - NO CHECK
[X] Checking for False Positive Scan - OK
[X] Using Incremental - OK
[X] Starting Scan - OK
GET /private/b HTTP/1.1
GET /private/z HTTP/1.1
[X] Scan complete - OK
[X] Total attempts - 26
[X] Sucessfull attempts - 1
oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00oo00
WebRoot.pl encontrou um arquivo /private/b no laboratorio.test, que contem a frase “senha: 123mudar”
Ferramentas para Identificar e proteger contra brute-forc e em aplicações Web.
Php-Brute-Force-Attack Detector
http://yehg.net/lab/pr0js/files.php/php_brute_force_detect.zip
Esta ferramenta detecta se seu servidor esta sendo scanniado por ferramentas de brute-force como WFuzz, Owasp DirBuster e scans e vulnerabilidades como Nessus, Nikto, Acunetix, etc. Ela pode ajudar a rapidamente identificar possíveis hosts utilizados por atacantes que ficam efetuando testes em sua aplicações para identificar brechas e possíveis falhas de segurança.
Publicação arquivada em: Dicas de Segurança
Enviar por e-mail | Hits para esta publicação: 838
Deixe um Comentário
http://blog.trustsign.com.br/2010/03/04/ataques-de-brute-force-em-aplicacoes-web/Você deve estar conectado para publicar um comentário.
Linkar esta publicação | Assine os comentários via o RSS