Entre as ferramentas de análise de segurança web que merecem uma menção, está o OWASP Dirbuster, uma aplicação escrita em Java que permite realizar brute-force em diretórios e arquivos de servidores web:
Suas principais aplicações são:
- Durante uma análise de segurança em aplicações web
- Antes de publicar um novo site para o público
- Periodicamente, nos servidores web da sua companhia em busca brechas
Entre as opções de uso, estão:
- Uso de listas (dicionários, ele já vem com alguns! :)
- Uso de bruteforce puro (letras/numeros/combinações de X a Y caracteres)
- Fuzzing
- Blank extensions
- HTTP Auth (tanto Basic, quando NTLM e Digest)
- Uso de proxy
- Controle de threads (vá com calma nesse ponto!)
Mas pegando um atalho nas explicações, vamos ver como ele funciona num teste simples:
1. Baixe o Dirbuster em http://sourceforge.net/projects/dirbuster/files/ .
Ele está disponível em bzip para Linux e possui um instalador para sistemas Windows.
2. Após instalar (ou executar) a tela inicial precisa ser preenchida com alguns parâmetros para o teste:
Target URL: Seu alvo. É onde você especifica também se será um acesso http ou https. Nesse exemplo estou usando http://julio.carvalho/mutillidae/ (uma instância de uma aplicação web vulnerável).
Number of Threads: Quantas conexões simultâneas serão abertas para o bruteforce. Este item deve ser configurado em valores baixos (eu uso 5 ou 10). Depois de iniciado o processo você pode ajusta-lo como quiser. Colocar esse item num valor muito alto pode soar alarmes no seu destino, ou trazer condições de Denial of Service (sim, isso é comum se você abusar aqui :(.
File with list of dirs/files : Neste item você escolhe entre uma das 9 listas que são disponibilizadas junto com o Dirbuster. Ao clicar em List Info você obtêm mais informações sobre cada lista (Leia!).
Siga minha dica e faça o seguinte:
Descubra se o site é case sensitive. Para isso, navegue no site em busca de uma URL com diretórios (entre barras / ) e faça a troca do case de algumas letras, por exemplo:
Ao navegar no site do MIT, encontrei o link: http://web.mit.edu/visit/
Para testar se o site é case sensitive troque o case de uma das letras do diretório, nesse caso vamos trocar o /visit/ por /viSIt/:
Perceba que o conteúdo da página permanece o mesmo.
Nenhum erro de 404, nenhum erro de webserver, nada. Isso confirma que case-sensitive não é o caso do MIT.
Agora, outro exemplo:
Navegando no site da Nasa encontramos o link: http://www.nasa.gov/news/index.html
Nenhum erro de 404, nenhum erro de webserver, nada. Isso confirma que case-sensitive não é o caso do MIT.
Agora, outro exemplo:
Navegando no site da Nasa encontramos o link: http://www.nasa.gov/news/index.html
Vamos fazer o mesmo teste, e identificar se o site é ou não case-sensitive, alterando o /news/ para /nEWs/:
Perceba que nesse caso, a página mudou. Fomos direcionados a uma página de erros configurada.
Com isso em mente, você já pode escolher (clicando em Browse) entre as duas principais listas do Dirbuster:
directory-list-lowercase-2.3-small.txt - Para casos em que o site não é case sensitive (Ex: MIT)
directory-list-2.3-small.txt - Para casos em que o site é case sensitive (Ex: Nasa)
Próximo passo:
File extention: Pra determinar o tipo de extensão mais recorrente, navegue pelo site. Caso o site use blank extension (quando a url não tem extensão alguma), dê uma lida no código em busca da extensão mais usada. Na dúvida mantenha o padrão php ou investigue qual é o webserver.
Vamos manter as demais opções dessa tela no padrão pra nao alongar muito.
4. Uma dica bacana é alterar o User Agent que o Dirbuster utiliza.
Não é uma mudança obrigatória, mas se do outro lado do seu teste houver alguém esperto, que configurou o firewall layer 7 (ou hids) para bloquear *Dirbuster* no user-agent, você não terá sucesso algum :)
Pra alterar o user-agent faça o seguinte:
Options > Advanced Options > Http Options > Http User Agent
e altere o valor padrão pelo user agent do seu browser. Não sabe qual é? Então visite: http://whatsmyuseragent.com/
No meu caso ficou assim:
Com isso em mente, você já pode escolher (clicando em Browse) entre as duas principais listas do Dirbuster:
directory-list-lowercase-2.3-small.txt - Para casos em que o site não é case sensitive (Ex: MIT)
directory-list-2.3-small.txt - Para casos em que o site é case sensitive (Ex: Nasa)
Próximo passo:
File extention: Pra determinar o tipo de extensão mais recorrente, navegue pelo site. Caso o site use blank extension (quando a url não tem extensão alguma), dê uma lida no código em busca da extensão mais usada. Na dúvida mantenha o padrão php ou investigue qual é o webserver.
Vamos manter as demais opções dessa tela no padrão pra nao alongar muito.
4. Uma dica bacana é alterar o User Agent que o Dirbuster utiliza.
Não é uma mudança obrigatória, mas se do outro lado do seu teste houver alguém esperto, que configurou o firewall layer 7 (ou hids) para bloquear *Dirbuster* no user-agent, você não terá sucesso algum :)
Pra alterar o user-agent faça o seguinte:
Options > Advanced Options > Http Options > Http User Agent
e altere o valor padrão pelo user agent do seu browser. Não sabe qual é? Então visite: http://whatsmyuseragent.com/
No meu caso ficou assim:
Uma outra dica é dar um pulo na aba Scan Options e trocar o thereIsNoWayThat-You-CanBeThere por qualquer palavra impossível de existir (como por exemplo oRiodeJaneiroehUmaCidadeFeia :)
Isso também evita ser pego por filtros do outro lado.
5. Seguindo em frente, clique em OK e vamos começar o scan, clicando então em START.
Os resultados serão exibidos em outra tela, como visto abaixo:
Isso também evita ser pego por filtros do outro lado.
5. Seguindo em frente, clique em OK e vamos começar o scan, clicando então em START.
Os resultados serão exibidos em outra tela, como visto abaixo:
Muitas vezes as listas contem nomes de arquivos e diretórios que são usados como fontes de informação durante ataques, por exemplo:
- Páginas com resumos de configuração do serviço web e do servidor (phpinfo.php, alguém? :)
- Arquivos de backup
- Diretórios de outras aplicações instaladas no servidor, entre vários outros.
Ao encontrar um item que você ache interessante, clique com o botão direito e escolha Open in Browser:
Quem sabe isso não te leva a acessos que você nem imaginava estarem abertos?
E pra fechar, algumas dicas:
- Alguns webservers podem ser espertos, e responder com uma página de erro pra todas as suas tentativas. Nesse caso compare o tamanho (coluna Size) entre as respostas com http status code 200. Com a prática, você perceberá que aqueles que tem o tamanho muito parecido se encaixam nesse caso, e não vai precisar abrir um por um em busca de algo interessante.
Quando um determinado Size for muito diferente dos outros você já sabe que tem conteúdo ali dentro.
- Você pode aumentar ou diminuir o nímero de threats. Quanto mais threads, menos tempo o scan demora. Nunca passe de 200 (eu nunca uso mais que 50 por exemplo). Usar valores altos pode derrubar o serviço web. Em alguns casos usar 1 ou 100 threads nao faz diferença, depende do webserver na outra ponta.
- Fique de olho na velocidade de requisições processadas por segundo. Caso ela zere, você pode ter sido bloqueado.
- Durante o scan, você pode usar a função Skip pra pular diretórios onde você sabe que nao haverá nada de interessante (eu pulo coisas como o diretorio /manual/ do Apache por exemplo).
- Você pode emitir um relatório clicando em Report (mesmo que clique no Stop antes do scan acabar).
Agora que você já conhece o Dirbuster e sabe pra que ele serve, teste os sites da sua companhia, mas tenha uma autorização por escrito pra isso.
Esse é apenas um pequeno teste simples. Não se sinta seguro só por não encontrar nenhum furo.
2 comentários:
I got this websitе fгοm my fгіend
who informed me on the toрic of this wеb site
and at the moment this tіme I am brοwѕing
thіs wеbsite and reading very informatіve artiсles oг reviewѕ at
thiѕ tіme.
mу web site :: payday loans
Esse post foi copiado do meu blog antes dele ser extinto.
Ao menos deveriam colocar os créditos..
Postar um comentário