rss
twitter
  •  

Brute-force? O Dirb… DirBuster lhe ajuda a identificar vulnerabilidades em seu site

| Posted in Arch Linux, cultura hacker, Impressões, Java, Kubuntu, Linux, redes, segurança, software livre |

1

Bom, para quem não conhece nada sobre Brute-Force ou apenas ouviu falar vagamente mas não tem certeza sobre o que realmente é um ataque deste tipo, sugiro dar uma lida em meu último post, onde apresentei algumas informações sobre brute-force bem como uma ferramenta que podemos utilizar para testar nossos sites e verificar o quão vulneráveis eles estão a este tipo de ataque. Segue link para o mesmo:

Brute-Force? O Dirb lhe ajuda a identificar vulnerabilidade em seu site!

Agora que já conhecemos um pouco sobre as técnicas de brute-force e a ferramenta Dirb, que tal conhecer outra mais apresentável?

Me refiro ao DirBuster. Uma aplicação multithread desenvolvida pelo OWASP (The Open Web Application Security Project) que tem como objetivo realizar brute-force em diretórios e nomes de arquivos na web. Assim como o Dirb, o DirBuster trabalha em cima de dicionários ou listas. Ao todo ele trás 9 listas que podem ser utilizadas para nossas varreduras e testes. Como todas as suas listas foram criadas na unha, após exaustívas pesquisas e buscas na web por nomes mais utilizados para arquivos e diretórios em servidores web, o DirBuster mostra-se extremamente efetivo para este tipo de atividade conseguindo encontrar até mesmo os arquivos mais ocultos e escondidos.

Mas se você não ficar satisfeito, nós garantimos a devolução do seu dinheiro, com apenas utilizar o modelo de dicionários, o DirBuster ainda lhe possibilita o ataque de brute-force mais purista. Tentativa e erro com combinações possíveis de caracteres. Claro, se você tem muito poder de processamento e tempo sobrando, boa sorte. ;]

Legal Kalib, quer dizer que agora posso sair invadindo sites?

o.O Como diria o Chaves: Ai que burrrrroooo.. dá zero pra ele…

Não amigo. O meu intuito não é incentivar ou apresentar qualquer mecanismo ou técnica para este tipo de atividade. O DirBuster não foi feito para este propósito e nem conseguirá efetuar isto. Ele não fará nenhum tipo de exploit em arquivos ou diretórios que ele encontre. O DirBuster serve exatamente para identificar possíveis alvos para estes tipos de ataque, o que nos permite agir de forma corretiva ou preventiva em nossos servidores web. ;]

Chega de lenga lenga.. vamos ao que interessa!

Como instalar?

Arch Linux
Bom, se você utiliza Arch Linux, pode pegar o pacote no AUR através do seguinte link(Lembrem-se de votar nele):

http://aur.archlinux.org/packages.php?ID=20809

Feito isto, basta seguir o procedimento padrão para pacotes do AUR.

1- Descompactar: [kalib@tuxcaverna downloads]$ tar -xvzf dirbuster.tar.gz

2- Entrar no diretório dirbuster e gerar o pacote: [kalib@tuxcaverna dirbuster]$ makepkg

3- Instalar o pacote: [kalib@tuxcaverna dirbuster]$ sudo pacman -U dirbuster-0.12-1-x86_64.pkg.tar.xz

Feito. ;]

Outras distribuições? Não tenho certeza se o pessoal de outras distribuições empacotou o DirBuster, portanto provavelmente você vai precisar baixar o arquivo compactado do site oficial do projeto. Busquei tanto no Debian quanto no (K)Ubuntu 10.10 e em nenhum destes encontrei o DirBuster nos repositórios através do aptitude.

Portanto se você não utiliza o Arch, segue link para download da ferramenta:

http://www.owasp.org/index.php/DirBuster#tab=Download

Mas qual a cara do bicho?

Como explicado antes, ele funciona parecido com o Dirb, porém em uma interface GUI (gráfica).

Como podem ver, é uma interface simples e de fácil manuseio.

Vamos aos pontos:

1- No campo Target, você deverá inserir a URL que será alvo do seu brute-force de diretórios e arquivos web.

2- Logo abaixo, vocẽ escolhe se deseja utilizar apenas GET ou HEAD & GET.

3- Agora é a vez de escolher quantas threads deseja utilizar. Quanto maior o número de threads, mais requisições simultâneas você estará utilizando. ;]

4- Abaixo você deverá escolher o tipo de brute-force.

* Baseado em dicionários, neste caso você deverá escolher um dos dicionários que a ferramenta já lhe disponibiliza através do seguinte caminho: /opt/DirBuster/

* Baseado em brute-force puro. Neste caso você deverá escolher qual conjunto de caracteres deseja que sejam utilizados, quantidade mínima e máxima de caracteres por tentativa.

5- Em seguida é a hora de escolher os filtros: Deseja fazer brute-force apenas em diretórios? Arquivos também? Modo recursivo? Extensões em branco? Diretório inicial para o scan? Que tipo de extensão?…

E como é o retorno que ele me dá?

Bom, vou escolher meu alvo e vou utilizar 20 threads em simultâneo. Não vou deixar a ferramenta rodando por muito tempo pois estou apenas fazendo uma demonstração.

Como podem ver, filtrei para que o brute-force comece no diretório raiz (/) e optei pela maior lista que o DirBuster possui como dicionário. Deixei rodando por cerca de 30 segundos e já tive o seguinte resultado.

A parte borrada no início da imagem não é um defeito. Vocês não pensaram que eu iria deixar exposto o alvo no qual fiz o teste, certo? No caso, optei pelo site de uma de nossas instituições de ensino. Bom, a imagem acima é um exemplo do retorno que consigo com a ferramenta. É a visão em Lista. Além dela você pode optar pela visão em árvore, que, como o nome informa, lhe trará a árvore de diretórios, sub-diretórios e arquivos que foram encontrados. Abaixo um exemplo da visão em árvore:

O resultado, mesmo deixando a ferramenta rodando por apenas 30 segundos, foi o esperado. Um espantoso caso de descuido com a segurança do site.

Alguns leves exemplos que me chamaram a atenção na lista que consegui:

Um diretório de administração exposto desta forma indicando que existe uma sessão do site com acesso permitido apenas para administradores. O que isso me leva a crer? Que quem conseguir acesso a esta sessão consegue manipular o sistema do site? O que nos leva a uma posterior análise da página index contida nele que possibilita uma tentativa de brute-force de login e senha? psssiiiuuuu… o.O


Um diretório para uploads de Arquivos? Que tal testar ele? Apenas usuários administradores possuem permissão de upload? Ou alunos conseguem fazer upload de fotos, trabalhos, por exemplo? De qualquer forma, isso me indica que existe a possibilidade de eu subir arquivos para o servidor deles. Que tal um script em php que me permitiria ter um console shell no servidor deles para inclusão, exclusão, edição, etc.. ? pssiiiiuuuu… o.O

Pode não ser nada.. mas também pode ser muita coisa.. O que um diretório chamado “gerencia” faz ali tão exposto e com um nome tão… tão… discreto? o.O psssiiiuuuuu

Acho que já conseguiram entender um pouco do que o DirBuster faz.

Abraços!

Happy Hacking…

PS: Wrong developers! Never play security by obscurity!

Brute-force? O Dirb lhe ajuda a identificar vulnerabilidades em seu site

| Posted in cultura hacker, Impressões, Linux, redes, segurança, software livre |

2

Para quem não conhece, brute-force é um ataque bastante utilizado em serviços web tais como smtp, pop, ssh, ftp, iax dentre outros. O ataque consiste em basicamente forçar o login em um determinado serviço que esteja disponível online sem que seja necessário um ataque mais sofisticado ou mesmo grandes conhecimentos sobre a tecnologia em questão. Por ser demasiado simples de se utilizar, visto que existem milhares de ferramentas disponíveis na web para este fim, ele acaba se tornando um dos pesadelos mais constantes dos administradores de redes, SysAdmins, etc.. Pois é um fato! Se você possui um serviço web ele já sofreu tentativa de ataques brute-force. Não sofreu? Não se preocupe, sofrerá. ;]

Basicamente existem duas formas de brute-force, porém eu prefiro acrescentar uma terceira forma…rude e grosseira, mas infelizmente já vi casos de pessoas que se utilizam dela, então vamos lá.

1- Brute-force puro ou força bruta, como prefiram chamar. É a metodologia mais lenta por testar uma quantidade absurdamente grande de combinações de caracteres de forma aleatória a ponto de tentar descobrir uma senha. Utilizam-se classes como “alfanuméricos”, “numéricos”, “caracteres especiais”, etc. Por exemplo. Supondo que nosso alfabeto fosse composto apenas das letras A, B e C. E alguém possui uma senha para um determinado serviço web. Com uma tentativa de brute-force, eu utilizaria uma ferramenta que geraria todas as combinações possíveis a partir destas 3 letras, o que, ocasionalmente, me daria acesso ao serviço uma vez que, com certeza, eu descobriria a senha, uma hora ou outra. A ferramenta começaria a tentar logar com senhas da seguite forma:

A
AA
AB
AC
B
C
BA
BB
BC
C
CA
CB
CC
AAB
AAC

ACABCAACB

Enfim.. Faria todas as combinações possíveis com estas 3 letras e cedo ou tarde teria sucesso no login, mas… Nosso alfabeto não é tão pequeno assim. E os números? E os caracteres especiais como %, $, #, @, !, , &, *, (, ), _, -, +, =, etc…

Já imaginaram quantas tentativas seriam necessárias para se descobrir uma senha, por exemplo, de 8 caracteres contendo letras, números e caracteres especiais? o.O

Quanto mais demorado for o ataque, mais fácil será de detectar o mesmo.

Por estas questões ele acaba não sendo a primeira opção para estes ataques. O que nos leva para a outra forma que é a mais utilizada hoje em dia e que tem se provado a mais eficaz, graças a triste realidade global de que as pessoas não possuem uma política eficiente para escolha de suas senhas, acabando por utilizar senhas com palavras reais como: deus, amor, sexo, felicidade, vida, segredo, secreto, etc.

2- Dicionários. Lembra daquela sua senha que faz sentido e você gosta porque é fácil de lembrar? Aquela “deus”, “amor”, “sexo”, “cerveja”, etc. Bom, ela corre grandes riscos se passar por um ataque que se utiliza de dicionários. Ataques com dicionários se resumem ao mesmo ataque de tentativa e erro com o intuito de logar em algum serviço web porém de forma mais coerente e orientada. O dicionário consiste em classes ou arquivos texto com uma sequência de palavras pré-formatadas pelo atacante que serão utilizadas como banco de possíveis senhas, ao invés de simplesmente sair tentando todas as combinações possíveis.

Supondo que sua senha seja “cachorro”. Eu lanço o ataque de brute-force utilizando-me de um dicionário de strings, ou palavras, que possui as seguintes:

amor
deus
ceu
inferno
gato
sexo
divino
futebol
cachorro
galinha
absurdo
segredo
naodigo

Como percebem, é uma simples lista de palavras. Porém, notaram que cachorro está na lista? Bom, o meu ataque faria de forma automática tentativas de login com todas estas possíveis senhas até chegar na vez do “cachorro”, que me resultaria em acesso à sua conta, serviço, site, aplicação ou o que quer que estivesse “protegido” com a senha “cachorro”.

Imagine a mesma senha cachorro. Já imaginou quantas tentativas seriam necessárias com a outra técnica? A de combinações? Imaginem quantas milhares de combinações seriam necessárias utilizando o nosso alfabeto completo até chegarmos à palavra cachorro. o.O

Claro, quem utiliza-se de dicionários não possui um arquivo de strings tão curto como este exemplo que dei. Sequer apenas em português. Geralmente pegam arquivos prontos na internet que são feitos para este fim que possuem uma infinidade de palavras incluindo nomes próprios, cidades, países, objetos, frutas, etc, etc…

Ou seja, se você possui uma senha bobinha e que é uma palavra de fato e faz sentido, pense seriamente em trocar por algo um pouco mais elaborado. ;]

Sobre a terceira metodologia, se é que pode-se chamar assim, não possui um nome definido, sequer é reconhecida, porém vou citar pois ela é utilizada em casos mais amadores e específicos. O que seriam esses casos amadores e específicos? Algo como:

* mulher/namorada tentando descobrir senha do orkut/email/etc do marido/namorado ou o oposto;
* jovens tentando descobrir senha de orkut/email/msn/etc de outros jovens por qualquer motivo que o seja (briguinha na escola? o.O)…

3- Lammer ou seja o que deus quizer. Independente da causa e das pessoas envolvidas, por mais incrível que possa parecer, esta modalidade ainda é bastante utilizada por aí. E o que é pior? Muitas vezes funciona. Não tirando os “méritos” o.O da pessoa que consegue a senha de alguém através dessa “metodologia”, mas em 100% 200% dos casos a culpa é apenas da vítima que insiste em colocar uma senha mais do que absurda como por exemplo: telefone de casa, seu número de celular, sua data de nascimento, seu sobre-nome, nome da namorada, nome da sogra (que o Diabo carregue), etc.

Acho que já ficou claro como essa metodologia funciona, certo? Caso não, é o seguinte. É um “ataque” (será que possa chamar assim?) completamente direcionado, como informei anteriormente, onde se conhece o alvo e sabe algumas informações sobre essa pessoa. Neste caso a pessoa, supondo a esposa, não vai se utilizar de tecnologia alguma ou ferramenta específica. Vai apenas abusar do bom senso, torcer pela inocência do marido e tentar a sorte.

Ela abre algum navegador de internet, acessa a página do orkut do cidadão e começa a tentar senhas como: telefone de casa, data de nascimento dele(a), etc.. Sim, ainda hoje vejo senhas simples como estas citadas e que acabam por ser descobertas. E o que é pior? As pessoas dizem: “Hackearam minhas senha!” hehehe… Parece exagero? o.O

Acredito que já falei demais sobre isso. Resumi as 3 2 técnicas utlizadas para ataques de brute-force. Mas este não é o objetivo principal do post, mas sim como inspecionar seu site ou sistema web para saber se o mesmo está livre de tentativas deste tipo de ataque.

Para isso utilizaremos a ferramenta Dirb.

Dirb é um URL Bruteforcer. Um WCS (Web Content Scanner) que tem a função de buscar por objetos Web Ocultos. Basicamente funciona com o lançamento um ataque baseado em dicionários contra o servidor Web analizando as respostas do mesmo. O principal propósito do Dirb é auditoria em aplicações web.

Dentre as funcionalidades avançadas do Dirb destacam-se:

* 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.

Mas, chega de falatório.. vamos ao teclado…

A ferramenta pode ser baixada através do site do projeto: http://sourceforge.net/projects/dirb/

A compilação é simples e sem grandes mistérios.

Descompacte o arquivo e compile seguindo os seguintes comandos:

[kalib@tuxcaverna downloads]$ tar -xvzf dirb203.tar.gz

[kalib@tuxcaverna downloads]$ cd dirb/

[kalib@tuxcaverna dirb]$ ./configure

[kalib@tuxcaverna dirb]$ make

Pronto. O Dirb está pronto para funcionar.

Se você apenas executar o dirb sem nenhum parâmetros lhe serão apresentados os parâmetros deisponíveis para utilização bem como uma descrição dos mesmos:

[kalib@tuxcaverna dirb]$ ./dirb
—————–
DIRB v2.03
By The Dark Raver
—————–
./dirb <url_base> [<wordlist_file(s)>] [options]

[kalib@tuxcaverna dirb]$ ./dirb
—————–DIRB v2.03    By The Dark Raver—————–
./dirb <url_base> [<wordlist_file(s)>] [options]
….
….
….

Mas vamos ao uso mais básico.

A forma mais simples é utilizando apenas a URL que deseja testar, por exemplo http://www.meulaboratorio.com.br

[kalib@tuxcaverna dirb]$ ./dirb http://www.meulaboratorio.com.br

—————–

DIRB v2.03

By The Dark Raver

—————–

START_TIME: Mon Jan 31 10:05:16 2011

URL_BASE: http://www.meulaboratorio.com.br

WORDLIST_FILES: wordlists/common.txt

—————–

GENERATED WORDS: 1942

—- Scanning URL: http://www.meulaboratorio.com.br/ —-

+ http://www.meulaboratorio.com.br/A

(FOUND: 301 [Moved Permanently] – Size: 241)

+ http://www.meulaboratorio.com.br/a

(FOUND: 200 [Ok] – Size: 419)

+ http://www.meulaboratorio.com.br/about

(FOUND: 301 [Moved Permanently] – Size: 237)

+ http://www.meulaboratorio.com.br/accessibility/

==> DIRECTORY

+ http://www.meulaboratorio.com.br/account

(FOUND: 302 [Moved Temporarily] – Size: 227)

+ http://www.meulaboratorio.com.br/accounts

(FOUND: 302 [Moved Temporarily] – Size: 192)

+ http://www.meulaboratorio.com.br/ad

(FOUND: 301 [Moved Permanently] – Size: 223)

+ http://www.meulaboratorio.com.br/ads/

==> DIRECTORY



Cortei pois o resultado seria muito grande. Mas, como podem ver, ele escaneia a URL por diretórios, arquivos, etc., que podem ser alvos de tentativas de brute-force.

No nosso simples caso, vi que foi identificado um diretório chamado accounts. Este diretório já é um alvo que merece ser inspecionado com mais atenção pois as chances de ele conter algo que interesse ao invasor são grandes.

Como eu havia dito, o Dirb funciona com dicionários. Como devem ter reparado, eu não setei nenhum dicionário, portanto ele utilizou o dicionário padrão “common”. Mas você pode especificar manualmente qual dicionário deseja utilizar.

No diretório dirb, você encontrará um diretório chamado wordlists que conterá os dicionários disponíveis.

[kalib@tuxcaverna dirb]$ cd wordlists/

[kalib@tuxcaverna wordlists]$ ls

big.txt  catala.txt  common.txt  euskera.txt  extensions_common.txt  indexes.txt  mutations_common.txt  others  small.txt  spanish.txt  stress  vulns

Bom, e sobre parâmetros?

Vou apresentar apenas algumas possibilidades.

Para utilização de um dicionário em específico, basta adicionar o nome do dicionário desejado ao final do comando:

[kalib@tuxcaverna wordlists]$ ./dirb http://www.meulaboratorio.com.br euskera.txt

Para utilização de SSL, apenas inclua o HTTPS na url desejada:

[kalib@tuxcaverna wordlists]$ ./dirb https://www.meulaboratorio.com.br euskera.tx -i

Você também pode utilizar múltiplos dicionários separando-os com vírgulas:

[kalib@tuxcaverna wordlists]$ ./dirb http://www.meulaboratorio.com.br euskera.txt,common.txt,spanish.txt,big.txt

Além disto você pode filtrar sua busca por uma extensão em específico através do parâmetro -X:

[kalib@tuxcaverna wordlists]$ ./dirb http://www.meulaboratorio.com.br euskera.txt -X .asp,.php,.jsp

Agora é sair experimentando combinações e testando os resultados. Seja criativo em seus testes. ;]

Abraços!

Somos menos de 1%? o.O Usuários Linux, cadastrem-se!

| Posted in Arch Linux, cultura hacker, Impressões, Linux, software livre |

4

Pessoal, recentemente surgiram algumas notícias de fontes suspeitas informando que o Linux está em menos de 1% dos computadores desktop existentes no mundo hoje.

Será verdade?

Todos podemos ver claramente o quanto o Linux vem crescendo e ganhando espaço hoje em dia. Lembro que em 2005, quando entrei na faculdade, ao perguntar para meus colegas de faculdade, poucos conheciam ou já haviam chegado perto de uma máquina com Linux. Hoje a realidade é outra, cerca de 50% dos colegas já, ao menos uma vez, utilizaram uma máquina com Linux, seja em seu trabalho, seja no Banco, lan house, etc.

O Linux está ficando mais forte a cada dia entre os usuários domésticos.

Começaram um projeto web para tentar quebrar este mito: http://www.dudalibre.com/gnulinuxcounter?lang=en

Se você possui um desktop, ou mais, com linux, talvez você queira contabilizar o seu voto.

Além de contabilizar quantas máquinas desktop utilizam Linux, ele ainda separa por ranking de países e distribuições.

Se serve de incentivo, ainda estamos abaixo dos hermanos argentinos. ¬¬ Vamos dar um gás né galera?

Abraços!

HACKING’N ROLL Fortaleza!

| Posted in cultura hacker, Impressões |

0

É hora de separar suas melhores garrafas de cerveja café e seus melhores números de telefones para pedidos de pizza. O Hacking’n Roll Fortaleza vai começar!

O evento soa mais como um desafio ao velho estilo Capture The Flag. Para quem conhece e acompanha a Defcon, o Capture The Flag não será nenhuma surpresa. Aos que não conhecem, se trata de um desafio, ou melhor uma série de desafios/questões que devem ser resolvidos em um determinado tempo.

Neste Hacking’n Roll serão um total de 25 questões/desafios que deverão ser resolvidos em 24 horas.

Começará num sábado às 8:00 e dura até domingo às 8:00.

Estas 24 horas serão o tempo que os participantes terão para tentar resolver o máximo de desafios/questões possíveis.

Ao final do evento será disponibilizado um ranking com os resultados dos participantes e os melhores estarão qualificados para o curso Hacking 101, treinamento na área de segurança da informação ministrado pelo INSERT, Information Security Research Team.

Para maiores informações e inscrições, basta acessar a página do Hacking’n Roll.

Good Hacking!