Mostrando postagens com marcador bruteforce. Mostrar todas as postagens
Mostrando postagens com marcador bruteforce. Mostrar todas as postagens

quarta-feira, 20 de maio de 2015



A pedido do leitor Josemar Simpson, estarei falando nesse post sobre duas técnicas de invasão conhecidas como SQLi e XSS Brute Force.

A maior parte dos grandes sites atuais já possui ferramentas implementadas contra os dois tipos de ataque, porém, páginas "mal programadas" e serviços desatualizados fazem com que ainda seja possível ocorrer esse tipo de invasão.

Conceitos Básicos


A utilização da injeção de SQL consiste em manipular o banco de dados (SQL), na maior parte das vezes por meio de uma URL do próprio site, afim de obter alguma informação privilegiada como credenciais de login.

Já o ataque Cross Site Script (XSS) consiste na utilização de códigos maliciosos que geralmente são injetados em links ou qualquer outra caixa de texto de uma página, na maior parte dos ataques desse tipo, não há uma invasão propriamente dita, mas sim um erro na exibição do site/página afetada, podendo ser um "deface" (desfiguração de uma página), ou um buffer overflow (estouro da capacidade do servidor e consequente queda do site), ou ainda um simples redirecionamento, que pode levar o usuário à uma simples página de "deface" ou em casos mais perigosos em páginas de "phishing".

Programas mais Usados


Os programas mais famosos para a realização do SQLi são o Havij no windows e o SQLMap no linux.

Já no caso do XSS, o XSSBeef no linux, no windows não conheço programa funcional para a automatização desse tipo de ataque.

É claro que existem mais programas disponíveis na web, principalmente para a plataforma linux e também existe a exploração de ambas vulnerabilidades no "modo manual" utilizando-se somente um navegador e os códigos maliciosos.

Afinal, qual a melhor forma?


Para começar a responder essa pergunta, digo somente, "depende".

No caso do SQLi a utilização é mais eficaz em sistemas desatualizados e que possuam um banco de dados rodando a tecnologia SQL/MySQL, pois isso garante um maior sucesso na invasão. Com os programas, é possível também realizar ataques de força bruta em qualquer página que necessite de credenciais.

Do lado do XSS, há a "vantagem" de se poder injetá-lo em qualquer campo de texto disponível em um site e com o poder de um programa a possibilidade um Brute Force faz com que páginas de login ou qualquer uma que necessite de uma credencial possa ser passada mais facilmente.

Caso estejamos falando do "modo manual", ambas as técnicas podem durar o mesmo tempo e considerando que se quer um resultado mais devastador, o SQLi pode fornecer qualquer informação presente no banco de dados do servidor atacado.

Conclusão

Apesar de suas limitações, o SQLi pode ser uma opção bem interessante para obtenção de informações direto do banco de dados de um servidor. Já o XSS pode ser mais abrangente mas pode não ser tão invasivo em alguns casos.

A escolha final cabe ao atacante (devidamente autorizado), pois o emprego de técnicas de invasão dependem de quanto a técnica está dominada e o quanto está conhecida, pois "receitas de bolo" não existem.

Extra


Abaixo um gráfico que mostra os tipos de tecnologias mais afetadas em 2013 pelas duas falhas ao mesmo tempo.


Legenda:

Azul: Aplicações Web Proprietárias - 40%
Alaranjado: Plugins e Módulos para CMS - 30%
Cinza: Pequenos CMS - 25%
Amarelo: CMS mais Usadas - 5%

CMS: Content Management System (Sistema de Gerenciamento de Conteúdo, sigla em inglês).


O artigo completo do site, encontra-se aqui (em inglês).

Agradeço a leitura e te espero no nosso grupo do Facebook.

segunda-feira, 1 de setembro de 2014

E ai galera!

Provavelmente você deve ter visto as notícias e talvez as fotos das 100 celebridades (só vi vazar mesmo umas 10) que tiveram suas contas hackeadas e fotos intimas publicadas na net. Mas você sabe o quê e como isso aconteceu?

Bom, vamos separar o post em duas partes, a primeira sendo a obtenção do email, sendo ele erro humano ou vazamento de emails, e a segunda parte sendo uma prova de conceito e uma suposta falha da Apple.

Vamos então para a primeira parte, de onde saiu esses emails? Boa parte você vai ver que é similar ao post sobre Spam que escrevi a alguns dias.

Bom, celebridades no fim das contas são pessoas normais, e em muitas vezes para não dizer em todas, tem um conhecimento mínimo de tecnologia e consequentemente de segurança também, então são alvos suscetíveis aos ataques mais simples e erros comuns que os usuários mais básicos acabam cometendo. Vamos a elas:


Links recebidos de "amigos"

Sim, celebridades também tem amigos próximos e usam a tecnologia para se comunicar. Celebridades podem e são atacadas por spear phishing. Hoje em dia é comum spammers se passarem por amigos conhecidos em email e redes sociais para convencer as vítimas a baixar malwares ou fornecer informações pessoais, tanto por computadores quanto por smartphones. Pesquisas até indicam que em dispositivos móveis tem 3 vezes mais chances de um link ser clicado.


Usam sempre a mesma senha

Como comentei acima, celebridades são pessoas normais, e pessoas normais gostam de usar uma única senha para conseguir lembrar. Isso facilita muito a vida de atacantes. Toda hora estamos vendo notícias de vazamentos de dados. Se você usa uma única senha para tudo e seus dados de um serviço forem vazados, a primeira coisa que os criminosos fazem é testar o conjunto de credenciais em outros sites e serviços.


Usam redes WiFi públicas

Muitas pessoas usam redes públicas como shoppings, universidades, lojas e etc, mas poucos se preocupam de que se estão acessando livremente, outras pessoas também podem estar. Acredito que todos os leitores do blog sabem, mas seus amigos e conhecidos talvez não. A transmissão entre o AP e sua máquina é através ondas de rádio que são enviadas para todos os lugares, qualquer pessoa pode interceptar essas ondas e ver o que está sendo trafegado.


Usam smartphones ou aplicativos com vulnerabilidades já conhecidas

Esta é nova e está cada vez mais comum. Smartphones estão fazendo cada vez mais funções, o que leva em alguns casos a vulnerabilidades. Essas vulnerabilidades podem ser exploradas do mesmo modo que vulnerabilidades em servidores são exploradas, e assim podendo obter algum tipo de informação do aparelho.




Agora vamos a parte da Apple no problema.

Basicamente o que foi feito foi o seguinte: De posse de emails das vítimas, os "hackers" usaram um software de bruteforce para tentar todas as possibilidades de senhas, até encontrar combinações válidas.

O script desenvolvido por eles apenas conecta nos servidores da Apple e tenta uma combinação de email e senha e retorna se a resposta do servidor foi positiva ou negativa. Se negativa tenta com a próxima possiblidade da lista até encontrar ou acabar a lista.

Tá, mas e onde a Apple leva culpa nisso? Vamos lá, sistemas inteligentes (e seguros) normalmente bloqueiam o usuário após algumas tentativas sem sucesso de conexão. O que já mataria aí tudo ou boa parte dessa exposição. O que anda rolando nas interwebs é que uma API bugada permitia esse tipo de diversas conexões sem bloquear após muitas tentativas. Ainda não se sabe se é só isso ou se tem alguma falha maior, mas o que rola é que uma URL do Find My Phone que permite isso. O pessoal do hackapp criou um script em python que promete realizar esses testes, provavelmente do mesmo modo que foi usado para o vazamento.

Agora, o que podemos fazer para nos proteger? Simples, mantenha uma senha única e forte. E por segurança desabilite o envio de fotos automático para o iCloud por um tempo. :)

segunda-feira, 11 de agosto de 2014

Hackers tentam descobri-las a qualquer custo. E segundo o Ars Technica, eles contam com a Wikipédia, e-books e até a Bíblia para tanto.

O artigo explica que, para os pesquisadores de segurança Kevin Young e John Dustin, estas são ótimas fontes para criar um enorme banco de dados. Ele reúne palavras e frases usadas como senha, e ajuda a quebrá-las.

Para testar a eficácia deste método, eles usaram as senhas que vazaram da Stratfor (empresa de inteligência e espionagem) em 2011. A dupla fez o teste em 344 mil senhas, e teve grande sucesso. O Ars Technica explica:

Quase imediatamente, uma enxurrada de senhas – antes difíceis de quebrar – se revelou. Elas incluem: “Am i ever gonna see your face again“, “no princípio era o Verbo”, “de Gênesis a Apocalipse”… “Nós fazemos nosso próprio destino“, “Dê-me liberdade ou dê-me a morte“, e “East of the Sun, West of the Moon“.

São frases da Bíblia, citações de filmes e até títulos de músicas e bandas. Estas senhas com mais de 20 caracteres foram quebradas sem muito esforço por um ataque de dicionário.

Os pesquisadores também usaram 1.500 e-books gratuitos do Projeto Gutenberg para compor a base de dados. A partir desses livros, eles criaram 1,3 bilhão de combinações possíveis para senhas.

Além disso, toda vez que um site é invadido e as senhas são vazadas, elas alimentam a base de dados – são mais de 20 milhões nas mãos de Young e Dustin.

O artigo também diz que a dupla poderá usar o Twitter e até comentários do YouTube para aperfeiçoar suas técnicas e quebrar mais senhas. Afinal, algumas são feitas com gírias, que “não aparecem no dicionário, ou nem mesmo na Wikipédia ou em um livro”.

Claro, para descobrirem sua senha, ela precisa vazar. Mas dado que falhas de segurança se tornaram quase uma rotina, é melhor tomar cuidado. A lição aqui é: ao criar senhas, misture letras, números e caracteres especiais; evite usar termos comuns; e especialmente, pare de usar citações da Bíblia.

Fonte: Gizmodo

sexta-feira, 22 de novembro de 2013

Se você é cliente da Adobe, troque todos as suas senhas o mais rápido possível. As senhas da Adobe foram roubadas e publicadas na internet. Essa é uma ocasião para examinar quais senhas NÃO são boas para se usar.


Um roubo recente de dados da Adobe, massivamente divulgado nos maiores portais, teve grandes consequências. Num primeiro momento, foi noticiado que cerca de 3 milhões de usuários foram afetados. Mas no fim das contas cerca de 150 milhões de registros tinham sido afetados. E para piorar, as senhas estavam pobremente protegidas e poderia se recuperar a original em muitos casos. Como medida de segurança, o Facebook alertou aos usuários que trocassem suas senhas.
Usar uma senha única para diferentes serviços é um problema sério de segurança. Pior ainda, muitos usuários cometem o mesmo erro na hora de inventar suas senhas. Vamos aprender com esses erros, como exemplo os casos mais recorrentes encontrados no banco de dados da Adobe.

1.  “Password”, “qwerty” e “123456”

Impressionantemente, essas são senhas óbvias e sempre estão no topo das listas de senhas mais comuns desde o início dos tempos. No banco de dados da Adobe, a senha "123456" ficou em primeiro lugar, se repetindo mais de 2 milhões de vezes. O segundo é um pouco mais complexo, a senha "123456789", seguida de perto pela senha "password". 345 mil usuários selecionaram como senha a palavra "password". E também o popular "qwerty" apareceu, ficando em 6º lugar.

2. Nomes de empresas e sites e suas variações

Você pode pensar que para o usuário "John" usar a senha "Facebook" é algo original. Não é. É claro que o nome de um site ou serviço não pode ser encontrado nos dicionários convencionais usados por hackers para quebrar as senhas. Mas, um hacker experiente definitivamente colocaria essas palavras na sua wordlist. as posições 4, 9, 15 e 16 das principais senhas usadas do banco de dados da Adobe são ocupadas pelas palavras "adobe123", "photoshop", "adobe1" e "macromedia" respectivamente.

3. Usuário = Senha e outras dicas

Mesmo quando encontramos bancos com alta criptografia para armazenagem de senhas, diga-se de passagem muito melhor que da Adobe, é muito provável que um hacker consiga diversas senhas com esforço mínimo. Todo sistema de senhas tem um meio de recuperar ou resetar essa senha. A maior dica de senha normalmente indica para a senha de fato. Alguns "gênios" colocam dicas como "1 a 6", nome ao contrario e etc.

4. Fatos óbvios

Facebook é uma das ferramentas para descoberta de senha mais utilizadas pelos hackers. Tendo informações da vítima, uma rápida busca nas redes sociais pode informar a senha, de acordo com a dica de senha, que normalmente é "nome do cachorro", "nome de algum familiar", "nascimento", "trabalho", "banda favorita" e etc. Cerca de 1 terço de todas as dicas referem diretamente a um familiar e animais de estimação, com um adicional de 15% onde a dica é a própria senha.

5. Sequências Simples

Parece que as combinações de números e letras são quase infinitas. Mas as pessoas conseguem usar sempre as mesmas. Senhas como "abc123", "00000", "123321", "asdfgh" e "1q2w3e4r" são as mais comuns. Se você acha que uma sequência ou combinação é fácil de lembrar não use. Se é fácil para você lembrar também será fácil para outros tentarem.

6. Palavras simples

De acordo com varios pesquisadores, cerca de metade das senhas são simples palavras do dicionário. Computadores atuais podem tentar mais de 10.000 senhas em alguns segundos, e é nesses segundos que sua senha vai para o espaço. Nas senhas da Adobe temos "sunshine", "monkey", "shadow", "princess", "dragon", "welcome", "jesus", "sex" e "god".

7. Modificações óbvias

Para dificultar o uso de ataques bruteforce, a maioria dos serviços está exigindo o uso de senhas complexas, com letras maiúsculas, minúsculas e números e em alguns casos até mesmo caracteres especiais. Mas os usuários conseguiram dar volta nisso também. Em quase todos os casos a primeira letra é maiúscula, e no final o número 1. Alguns exemplos do banco de dados da Adobe: "adobe1", "password1".

8. Modificações óbvias 2 (1337)

De acordo com o modo "hacker" de escrever, podemos ver muitas senhas assim também no banco de dados da Adobe. Para quem não sabe, esse modo de escrita consiste em substituir uma letra de uma palavra por números ou caracteres especiais, por exemplo a letra "E" vira "3", a letra "a" vira "@" e assim por diante. Algumas senhas encontradas: "1337", "H4X0R" e "$1NGL3". Agora você pode pensar que uma mudança dessas pode impedir que sua senha seja quebrada, mas não. Boa parte das ferramentas de bruteforce tem inteligência suficiente para realizar essas trocas óbvias.

9. Sentenças

Frases óbvias também são muito comuns, como por exemplo "letmein", "fuckyou"e "iloveyou" e rapidamente quebradas.

10 Números importantes

Estes são muito mais difíceis de descobrir. Mas, hackers podem perder um pouco de tempo tentando achar, como por exemplo número de identidade e CPF. Outros fins esse tipo de dado pode levar, então quando se vê a dica de senha como "meu CPF", certamente um hacker vai parar para tentar descobrir.

Hors concours – Senhas idênticas

Podemos ter encontrado em um banco de dados uma senha simples, como o popular "123456". Neste ponto, estamos falando em além de ter uma senha consideravelmente fraca utilizá-la em outros serviços. Obviamente isso é uma má idéia, mas milhares de pessoas fazem. Com isso, se uma senha é comprometida, hackers certamente tentarão essa mesma combinação em outros sites como Facebook e Gmail.
Agora a desculpa de sempre. É difícil lembrar de 10 senhas para 10 serviços diferentes, por isso que é usado sempre a mesma. Existem inúmeras maneiras de contornar isso, eu mesmo já postei aqui diversas delas, agora vai de você manter uma política de senhas.

Fonte: Kaspersky

quinta-feira, 10 de outubro de 2013

Venho notando quando converso com pessoas mais desapegadas com segurança da informação, e impressionantemente os resultados são unanimes, ninguém se preocupa em atualizar seus sistemas, softwares e gadgets.

Muitos técnicos e profissionais de TI tem um certo receio de atualizar seus sistemas, receio de que todo o trabalho empregado em servidores e sistemas vá por água abaixo quando os novos patchs sejam aplicados.

Pode até ser que em alguns casos as atualizações possam esculhambar com seus dados e sistemas, mas basta pensar nos riscos que você corre por não atualizar e já começa a valer a pena o upgrade.

A Microsoft por exemplo já não presta suporte a muitas versões do seu sistema, isso quer dizer, não lança mais patchs de segurança e qualquer pessoa com um conhecimento bem básico dos ataques já pode causar um baita estrago, e vocês não fazem idéia a quantidade de empresas que eu já vi com apenas um servidor Windows NT rodando na empresa, e se não estão lembrados, essa versão do sistema é vulnerável ao famoso e mulambo exploit ms08_067_netapi.

Um outro exemplo é os dispositivos móveis da Apple, onde 50% dos usuários não gostaram e não aderiram a nova versão do sistema o iOS 7. Mas veja abaixo um exemplo do risco que seus dispositivos com a versão 6 do sistema da Apple correm e seus dados também por consequência. No vídeo abaixo pesquisadores de segurança franceses descobriram um modo de utilizar força bruta para atacar a senha dos dispositivos sem que o aparelho bloqueie após 5 tentativas. Como a senha padrão é de 4 números, em alguns minutos ou na pior das hipóteses horas, podemos quebrar a senha e ter acesso aos dados.


segunda-feira, 8 de julho de 2013

Continuando com nosso guia, vamos ver uma técnica usada em várias ocasiões para obter acesso sabendo parte ou nenhuma informação das credenciais, o Brute Force.


Brute Force

O brute force é considerado uma técnica de invasão, não muito eficaz na minha opinião, mas uma das mais antigas e conhecidas técnicas. Seu funcionamento é muito simples, o programa de brute force gera uma wordlist (lista de palavras) com milhares de possibilidades e vai tentando uma a uma, até conseguir descobrir a senha.

Wordlist


Wordlist é um arquivo de texto no formato .txt, lido por qualquer ferramenta, com várias palavras ou combinações de caracteres, um por linha e são usadas para tentar adivinhar credenciais. 

Provavelmente uma wordlist é o maior arquivo de texto puro que você verá, por exemplo, uma wordlist com todas as possibilidades de senhas de 8 a 12 caracteres vai conter milhões de combinações diferentes e vai ter mais de 1TB. Imagine quanto texto é necessário para preencher 1TB. Faça um teste, crie um arquivo no bloco de notas ou editor de texto, coloque apenas uma palavra e salve e veja o tamanho que da. Não mais que alguns KB's correto?

Criando uma wordlist

Existem vários programas e ferramentas que podem criar wordlists, o que eu vou falar aqui é um que considero simples, o crunch. A sintaxe do crunch é a seguinte:

crunch tamanho_minimo tamanho_maximo > arquivo_wordlist.txt

E um exemplo simples:

crunch 4 8 0123456789 > /root/Desktop/wordlist.txt
O comando do exemplo vai colocar no diretório do root, em um arquivo chamado wordlist.txt todas as combinações possíveis de 4 a 8 caracteres contendo apenas números. Veja este outro exemplo:


crunch 8 8 1234567890 -t joao@@@@ > /tmp/joaolist 

Neste outro exemplo, temos uma senha iniciada em joao e terminada em uma combinação de 4 números, salvando todas as possibilidades num arquivo chamado joaolist.

Já para a parte de quebrar senhas e brute force na prática vou deixar para um post separado. Já fiz um post sobre o john the ripper que é uma das melhores ferramentas para brute force.

Contras

Brute force parece algo milagroso né? Sim, o brute force sempre vai quebrar a senha, mas agora vem a notícia ruim, pode ser que isso leve alguns séculos. Quanto maior a complexidade da senha mais tempo vai levar para quebra-la, por isso que a dica de senha sempre é recomendado que tenha letras maiúsculas, minúsculas, números e símbolos. Quanto maior a quantidade de caracteres e de tipos de caracteres menor a possibilidade de quebrar. Como por exemplo no GRC, o Steve Gibson da o exemplo da senha D0g..................... que leva apenas 9.38 centenas de trilhões de trilhões de anos (pense num número grande :) ) e é uma senha relativamente simples de lembrar e usar.

Um outro detalhe que tem que se levar em conta é se o ataque vai ser online ou offline. Por exemplo, se você está fazendo brute force em um serviço como ssh, ftp e etc, você está fazendo um ataque online, se você conseguiu os hashs de senha você está executando um ataque offline.

Então, depois de tudo que vimos aqui neste post, podemos concluir que ataques de brute force devem ser usados em últimos casos, porque demandam um grande poder computacional e podem demorar e não retornar resultados interessantes. Para agilizar você pode usar técnicas das fases de levantamento de informações para gerar uma wordlist com possíveis palavras chave. Isso pode poupar bastante tempo.

Uma dica final: Baixar aquelas wordlists gigantescas com milhões de possibilidades e passar horas tentando não é uma prática muito boa.

segunda-feira, 20 de maio de 2013


Senhas são talvez o elo mais fraco em qualquer sistema de segurança existente hoje em dia. Nem sempre o administrador, que tem conhecimento de questões relacionadas à segurança da informação, pode acompanhar o usuário e garantir que ele faça uma escolha de senha segura. Muitas vezes, nem mesmo quando se define regras para senhas pode-se ter 100% de certeza que uma senha segura será a escolhida. Por exemplo, imagine que você definiu uma regra que requer que seja escolhida uma senha de no mínimo 8 caracteres, letras maiúsculas e minúsculas e números. Se o seu usuário escolher algo como “Pedro123″ você continuará a ter uma senha insegura.
Mas o pior lado dessa estória é que o atacante também sabe que senhas são inseguras e muito frequentemente se aproveita desse fato para ganhar acesso ilegal ao seu sistema. A técnica mais simples utilizada por usuários maliciosos é o brute forcing. Neste post, vou definir o que é brute force e também vou mostrar a ferramenta THC Hydra utilizada em ataques deste tipo.

O que é o brute force?

Traduzindo ao pé da letra, brute force significa “força bruta“. O uso mais comum deste ataque é para descobrir senhas testando todas as possibilidades possíveis (combinando todos os caracteres existentes). Caso o atacante descubra algum padrão nas senhas, isso pode facilitar um pouco a vida dele pois ele poderá gerar senhas que seguem esse padrão definido pelo alvo. Neste contexto, quanto mais curta e simples a senha, mais rápido ela será adivinhada.
Outros contextos em que frequentemente se utiliza força bruta é para fazer a enumeração de nomes de usuário e de registros DNS de uma zona específica (permitindo assim que você mapeie a rede mais facilmente). Um exemplo de ferramenta de enumeração de DNS é o Fierce.
Obviamente, o atacante não fica criando as senhas de cabeça e tentando uma a uma no formulário de login! :) Primeiro ele cria uma wordlist, que nada mais é do que um arquivo texto com milhares de palavras geradas automaticamente, uma por linha. Esta wordlist geralmente é criada por programas especializados ou baixada da Internet.
Já falei sobre dois desses programas aqui no blog:
  • Crunch
  • WYD
Ambos geram wordlists, porém, baseados em coisas diferentes: o Crunch utiliza padrões definidos por você para criar as senhas; o WYD lê textos de sites e dos arquivos presentes no site para encontrar palavras e gerar wordlists. Cada um é mais apropriado em situações diferentes, porém ambos são ferramentas extremamente úteis. Leia os posts indicados acima e veja a diferença entre as ferramentas.
Após criar a wordlist, você deve encontrar uma ferramenta que permita a você testá-la contra um serviço específico. O THC Hydra suporta vários serviços diferentes como POP3, Telnet, SSH, etc. O TSGrinder é uma ferramenta desenvolvida especificamente para brute force no Terminal Services de máquinas rodando Windows. Neste post vou mostrar como utilizar o THC Hydra.

O THC Hydra

A ferramenta que vou utilizar aqui para ilustrar um ataque brute force é o THC Hydra. Esta é uma ferramenta desenvolvida pelo grupo alemão THC há alguns anos já, que melhorou muito com o passar do tempo. A distribuição Linux Backtrack já possui esta ferramenta instalada e configurada, pronta para o uso. Caso você não tenha acesso a esta distribuição, você ainda pode fazer o download e realizar toda a configuração da ferramenta você mesmo (o que acaba dando um certo trabalho!).
O site oficial para download da ferramenta é o http://freeworld.thc.org/thc-hydra/. A versão mais nova é a 5.8, lançada em 29 de setembro de 2010. Além de ser bem simples de utilizá-lo, o Hydra tem muitas funcionalidades disponíveis (geralmente, habilitadas através de opções específicas na hora da compilação). Alguns dos serviços que ele suporta:
  • Telnet
  • Formulários HTTP/HTTPS
  • SSH
  • MySQL
  • PostgreSQL
  • MSSQL
  • SMB
  • LDAP2 e LDAP3
  • FTP
  • SNMP
  • CVS
  • VNC
Entre vários outros. Além disso, a ferramenta está licenciada sob a GPLv3 garantindo a disponibilidade do código para uso de qualquer natureza e também permitindo que você aprenda como a ferramenta funciona para modificá-la de acordo com as suas necessidades.
A ferramenta já vem toda instalada e configurada (inclusive com interface gráfica) no Back Track, porém obviamente você pode fazer o download do código-fonte e compilá-la em qualquer distribuição atual. Basta fazer o download do pacote no site citado anteriormente e seguir as instruções no arquivo README.

Exemplo de ataque a um servidor FTP

Como primeiro exemplo, vou mostrar como atacar um servidor FTP. Vou considerar que você já utilizou o WYD ou o Crunch para gerar a sua wordlist (ou que já possui uma wordlist pronta para uso), que você já compilou e instalou o Hydra (ou que está utilizando o Back Track) e que você está fazendo isso em seu próprio servidor ou em um servidor sobre o qual você tenha autoridade. NÃO FAÇA ISTO EM SERVIDORES DE TERCEIROS: isto é um crime passivo de processo criminal. Crie uma máquina virtual com o serviço que você quer analisar para seguir estas instruções.
Neste primeiro exemplo, vamos utilizar o Hydra via linha de comando. Antes de iniciar o ataque, você precisa dar algumas informações ao Hydra:
  • Localização da sua wordlist;
  • Endereço IP do servidor;
  • Nome de usuário ou arquivo contendo nomes de usuários para testar durante o ataque;
  • Qual o serviço que será atacado (FTP, SSH, Telnet, etc).
Na linha de comando, ficaria assim:
# hydra -l pedro -P senhas.txt 10.0.0.2 ftp
Pronto, agora o Hydra vai começar a rodar e, quando encontrar a senha correta irá escrevê-la na tela para você. A saída do comando seria mais ou menos essa:
Hydra v5.4 (c) 2006 by van Hauser / THC – use allowed only for legal purposes.
Hydra (http://www.thc.org) starting at 2010-12-14 20:22:53
[DATA] 16 tasks, 1 servers, 42 login tries (l:1/p:42), ~2 tries per task
[DATA] attacking service ftp on port 21
[STATUS] attack finished for 10.0.0.2 (waiting for childs to finish)
[21][ftp] host: 10.0.0.2   login: pedro   password: pedro
Hydra (http://www.thc.org) finished at 2010-12-14 20:23:10
Como você pode ver, a senha correta para o usuário “pedro” é “pedro”. Algumas outras opções úteis do Hydra são:
  • -R: reinicia um ataque interrompido anteriormente do ponto em que ele parou, ou seja, não recomeça o ataque do zero;
  • -s PORTA: utiliza o número de porta informado para atacar o serviço. Isto só é necessário caso o serviço não esteja sendo executado na porta padrão;
  • -L ARQUIVO: utiliza um arquivo contendo vários logins;
  • -p SENHA: utiliza a senha especificada ao invés de ficar lendo várias senhas de um arquivo;
  • -e ns: checagens adicionais. “n” para senha nula (em branco) e “s” para tentar o login como a senha.
No próximo exemplo, vamos atacar o FTP utilizando o xHydra, a interface gráfica do Hydra.

Exemplo de ataque a um servidor FTP utilizando a interface gráfica

Repito as mesmas recomendações que fiz anteriormente: NÃO faça isso em servidores de terceiros. Instale uma máquina virtual e faça os testes todos nela!
Para iniciar o xHydra, digite o seguinte comando:
# xhydra
A primeira aba selecionada é a “Target”. Aqui você deve definir as informações sobre a máquina a ser atacada:
  • Em “Single Target” você pode definir o IP do servidor a ser atacado. Se for atacar mais de um servidor por vez, clique em “Target List” e digite os IP’s na caixa de texto;
  • Em “Port” digite a porta na qual o serviço está escutando;
  • Em “Protocol” escolha o protocolo adequado (FTP, HTTP, HTTPS, SSH, etc);
  • Selecione “Use SSL” se você quiser forçar o uso do SSL durante as conexões;
  • Selecione “Be verbose” se você quiser aumentar a quantidade de informações exibidas na tela;
  • Selecione “Show attempts” se você quiser que ele mostre todas as tentativas, mesmo as que não funcionaram;
  • Selecione “Debug” para exibir informações que lhe ajudem a resolver algum problema que você esteja tendo.
Feitas as configurações na aba “Target”, passe para a próxima aba “Passwords”.
Aqui, você vai encontrar as seguintes opções:
  • Em “Username” digite o nome de usuário cuja senha você está tentando descobrir;
  • Em “Username List” digite o caminho para o arquivo que contém os nomes de usuário cujas senhas você quer descobrir. Só é útil se você quiser a senha de mais de um usuário;
  • Em “Password” digite a senha a ser tentada;
  • Em “Password List” digite o caminho para a sua wordlist;
  • Selecione “Use colon separated file” se você tiver um arquivo no formato “login:senha”;
  • Selecione “Try login as password” para testar o login na senha;
  • Selecione “Try empty password” para testar a senha em branco.
Configurada a aba “Passwords”, vamos para a aba “Tuning”.
Aqui, você terá as seguintes opções:
  • “Number of tasks” define a quantidade de threads que o programa irá utilizar para trabalhar. Quanto mais threads, menos tempo levará para adivinhar a senha porém mais recursos serão consumidos;
  • O campo “Timeout” define o tempo que o Hydra vai ficar esperando por uma resposta do servidor antes de desistir e seguir para a próxima tentativa;
  • Selecione “Exit after first found pair” para fazer com que o Hydra pare o trabalho no primeiro conjunto de usuários e senhas válidos;
  • Se você precisar passar por um proxy para poder realizar o serviço, selecione o método correto para o Hydra se conectar: No Proxy, HTTP Method ou CONNECT Method. A opção correta vai depender do seu proxy;
  • No campo “Proxy” digite o IP e a porta do servidor proxy da sua rede;
  • Selecione “Proxy needs authentication” se você precisar de um usuário e senha para poder utilizar o proxy. Digite as credenciais nas caixas de texto localizadas abaixo.
Agora, podemos partir para a aba “Specific”.
Na aba “Specific” você só precisa alterar algum parâmetro para algum módulo específico. Por exemplo, para atacar formulários HTTP você precisa colocar o domínio e o caminho para a página a ser testada; para o SNMP você deve escolher a versão correta, etc. Depois que alterar tudo, passe para a aba “Start”.
Na aba “Start” você não tem opções a modificar, aqui você executa o ataque e verifica as mensagens exibidas pelo software:
Como você pode ver, as informações exibidas aqui são as mesmas que seriam exibidas na linha de comando.

Conclusão

Como você pode imaginar, adivinhas senhas não é um processo rápido. Você vai precisar gastar muito tempo no mesmo alvo até conseguir algum resultado. Porém, esta é uma boa forma de você identificar usuários que estão utilizando senhas muito fracas em algum sistema gerenciado por você e tomar alguma ação antes que seja tarde demais.
Mas como se defender deste tipo de ataque?
Isso é até que simples. A primeira providência que você precisa tomar é garantir que todos os seus usuários estejam utilizando uma senha forte. Uma senha pode ser considerada forte quando tem pelo menos 9 caracteres, símbolos especiais (como !, #, @, etc), letras maiúsculas e minúsculas e números. Também é interessante que a senha seja aleatória pois caso alguma informação pessoal sua seja utilizada na senha (como número de conta do banco, nome de sua esposa, marido, filhos, pai, mãe, etc) fica mais fácil para o atacante descobri-la. Você pode utilizar um gerador de senhas aleatórias como o oferecido pelo software KeePass.
Outra providência que você pode tomar é se livrar das senhas! :) Alguns softwares permitem outros tipos de autenticação mais difíceis de serem atacados, como o uso de certificados de segurança. Aqui no blog eu já escrevi um post sobre como utilizar certificados de segurança para logar no SSH. Além do SSH, alguns outros serviços permitem o uso deste certificado.
Além disso, também utilize um software que bloqueie o IP de origem depois de um determinado número de tentativas de login falhadas. Vários serviços podem ser protegidos por estes softwares, como o FTP e o SSH, por exemplo. Uma outra boa idéia, é utilizar o SSL para evitar que senhas possam ser sniffadas na sua rede.
É isso, agora é só testar os seus servidores para garanti que está tudo seguro e tomar as providências citadas anteriormente para deixar o seu ambiente ainda mais seguro. :)
Creditos:Pedro  Pereira
Subscribe to RSS Feed Follow me on Twitter!