O número um dos maiores buracos de segurança são as senhas, como mostra todo estudo de segurança por senha. Esta ferramenta é um código de prova de conceito, para dar aos pesquisadores e consultores de segurança a possibilidade de mostrar como seria fácil obter acesso não autorizado de remoto para um sistema.
ESTA FERRAMENTA É APENAS PARA FINS LEGAIS!
Já existem várias ferramentas de hackers de login disponíveis, no entanto, nenhuma delas oferece suporte a mais de um protocolo para atacar ou oferecer suporte a conexões paralelizadas.
Foi testado para compilar de forma limpa em Linux, Windows / Cygwin, Solaris, FreeBSD / OpenBSD, QNX (Blackberry 10) e MacOS.
Atualmente, esta ferramenta suporta os seguintes protocolos: Asterisco, AFP, Cisco AAA, autenticação Cisco, Cisco habilitado, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-POST , HTTP-PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTPS-POST, HTTP-proxy, ICQ, IMAP, IRC, LDAP, MEMCACHED, MONGODB, MS-SQL, MYSQL NCP, NNTP, Oracle Listener, SID Oracle, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, RTS, SAP / R3, SIP, SMB, SMTP, enum SMTP, SNMP v1 + v2 + v3, SOCKS5, SSH (v1 e v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC e XMPP.
No entanto, o mecanismo do módulo para novos serviços é muito fácil, por isso não demorará muito até que mais serviços sejam suportados.
ONDE OBTER
Você pode sempre encontrar a mais nova versão de lançamento / produção da hydra em sua página de projeto emhttps://github.com/vanhauser-thc/thc-hydra/releases Se você está interessado no estado de desenvolvimento atual, o desenvolvimento público O repositório está no Github: svn co https://github.com/vanhauser-thc/thc-hydra ou git clonehttps://github.com/vanhauser-thc/thc-hydra Use a versão de desenvolvimento por sua conta e risco. Ele contém novos recursos e novos bugs. As coisas podem não funcionar!
COMO COMPILAR
Para configurar, compilar e instalar a hydra, basta digitar:
Você pode sempre encontrar a mais nova versão de lançamento / produção da hydra em sua página de projeto emhttps://github.com/vanhauser-thc/thc-hydra/releases Se você está interessado no estado de desenvolvimento atual, o desenvolvimento público O repositório está no Github: svn co https://github.com/vanhauser-thc/thc-hydra ou git clonehttps://github.com/vanhauser-thc/thc-hydra Use a versão de desenvolvimento por sua conta e risco. Ele contém novos recursos e novos bugs. As coisas podem não funcionar!
COMO COMPILAR
Para configurar, compilar e instalar a hydra, basta digitar:
./configure
make
make install
Se você quer o módulo ssh, você tem que configurar libssh (não libssh2!) Em seu sistema, obtê-lo em http://www.libssh.org , para suporte a ssh v1 você também precisa adicionar a opção "-DWITH_SSH1 = On" na linha de comando do cmake. IMPORTANTE: Se você compilar no MacOS, então você deve fazer isso - não instale o libssh via brew!
Se você usa Ubuntu / Debian, isso instalará bibliotecas suplementares necessárias para alguns módulos opcionais (note que alguns podem não estar disponíveis em sua distribuição):
apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \
firebird-dev libmemcached-dev
Isso permite todos os módulos e recursos opcionais, com exceção do Oracle, SAP R / 3, NCP e o protocolo de arquivamento da Apple - que você precisará baixar e instalar nos sites do fornecedor.
Para todas as outras derivadas do Linux e sistemas baseados em BSD, use o instalador do software do sistema e procure por bibliotecas com nomes semelhantes, como no comando acima. Em todos os outros casos, você precisa baixar todas as bibliotecas de origem e compilá-las manualmente.
PLATAFORMAS SUPORTADAS
- Todas as plataformas UNIX (Linux, * BSD, Solaris, etc.)
- MacOS (basicamente um clone do BSD)
- Windows com Cygwin (IPv4 e IPv6)
- Sistemas móveis baseados em Linux, MacOS ou QNX (por exemplo, Android, iPhone, Blackberry 10, Zaurus, iPaq)
COMO USAR
Se você acabou de entrar
hydra
, você verá um breve resumo das opções importantes disponíveis. Digite./hydra -h
para ver todas asopções de linha de comando disponíveis. Note que nenhum arquivo de login / senha está incluído. Gere-os você mesmo. No entanto, uma lista de senhas padrão está presente, use "dpl4hydra.sh" para gerar uma lista.
Para usuários Linux, uma GUI GTK está disponível, tente
./xhydra
Para o uso da linha de comando, a sintaxe é a seguinte: Para atacar um alvo ou uma rede, você pode usar o novo estilo ": //": hydra [algumas opções de linha de comando] PROTOCOL: // TARGET: PORT / MODULE-OPTIONS O modo antigo também pode ser usado para estes e, além disso, se você quiser especificar seus alvos a partir de um arquivo de texto, você deve usar este:
hydra [some command line options] [-s PORT] TARGET PROTOCOL [MODULE-OPTIONS]
Através das opções de linha de comando você especifica quais logins tentar, quais senhas, se o SSL deve ser usado, quantas tarefas paralelas usar para atacar, etc. PROTOCOL é o protocolo que você deseja usar para atacar, por exemplo, ftp, smtp, http- get ou muitos outros estão disponíveis TARGET é o alvo que você deseja atacar MODULE-OPTIONS são valores opcionais que são especiais por módulo PROTOCOL
PRIMEIRO - selecione o seu destino você tem três opções sobre como especificar o alvo que você deseja atacar:
- um único alvo na linha de comando: basta colocar o endereço IP ou DNS em
- um intervalo de rede na linha de comando: especificação CIDR como "192.168.0.0/24"
- uma lista de hosts em um arquivo de texto: uma linha por entrada (veja abaixo)
TERCEIRO - verificar se o módulo possui parâmetros opcionais hydra -U PROTOCOL por ex. Hydra -U smtp
FOURTH - a porta de destino é opcional! se nenhuma porta for fornecida, a porta comum padrão para o PROTOCOL é usada. Se você especificar SSL para usar (opção "-S"), a porta comum SSL será usada por padrão.
Se você usar a notação ": //", deverá usar os colchetes "[" "]" se quiser fornecer endereços IPv6 ou notações CIDR ("192.168.0.0/24") para atacar: hydra [algumas opções de linha de comando] ftp : // [192.168.0.
Note que tudo que a hidra faz é apenas IPv4! Se você quiser atacar endereços IPv6, deverá adicionar a opção de linha de comando "-6". Todos os ataques são apenas IPv6!
Se você quiser fornecer seus alvos através de um arquivo de texto, você não pode usar a notação: // mas usar o estilo antigo e apenas fornecer o protocolo (e as opções do módulo): hydra [algumas opções de linha de comando] -M targets.txt ftp Você também pode fornecer a porta para cada entrada de destino adicionando ":" após uma entrada de destino no arquivo, por exemplo:
foo.bar.com
target.com:21
unusual.port.com:2121
default.used.here.com
127.0.0.1
127.0.0.1:2121
Note que se você deseja anexar alvos IPv6, você deve fornecer a opção -6 e deve colocar os endereços IPv6 entre colchetes no arquivo como este (!):foo.bar.com
target.com:21
[fe80::1%eth0]
[2001::1]
[2002::2]:8080
[2a01:24a:133:0:00:123:ff:1a]
LOGIN E SENHAS
Você tem muitas opções sobre como atacar com logins e senhas. Com -l para login e -p para senha, você diz à hydra que este é o único login e / ou senha para tentar. Com -L para logins e -P para senhas, você fornece arquivos de texto com entradas. por exemplo:
hydra -l admin -p password ftp://localhost/
hydra -L default_logins.txt -p test ftp://localhost/
hydra -l admin -P common_passwords.txt ftp://localhost/
hydra -L logins.txt -P passwords.txt ftp://localhost/
Além disso, você pode tentar senhas com base no login através da opção "-e". A opção "-e" possui três parâmetros:s - try the login as password
n - try an empty password
r - reverse the login and try it as password
Se você quiser, por exemplo, tentar "tentar login como senha e" senha vazia ", você especifica" -e sn "na linha de comando. Mas há mais dois modos para tentar senhas do que -p / -P: Você pode usar texto arquivo que, onde um par de login e senha é separado por dois pontos, por exemplo:
admin:password
test:test
foo:bar
Essa é uma listagem de estilo de conta padrão comum, que também é gerada pelo gerador de arquivos de conta padrão dpl4hydra.sh fornecido com a hydra. Você usa um arquivo de texto com a opção -C - note que nesse modo você não pode usar as opções -l / -L / -p / -P (-e nsr, por mais que você possa). Exemplo:hydra -C default_accounts.txt ftp://localhost/
E finalmente, há um modo bruteforce com a opção -x (que você não pode usar com -p / -P / -C):-x minimum_length:maximum_length:charset
a definição de charset é a
para letras minúsculas, A
para letras maiúsculas, 1
para números e para qualquer outra coisa que você forneça é sua representação real. Exemplos:-x 1:3:a generate passwords from length 1 to 3 with all lowercase letters
-x 2:5:/ generate passwords from length 2 to 5 containing only slashes
-x 5:8:A1 generate passwords from length 5 to 8 with uppercase and numbers
Exemplo:hydra -l ftp -x 3:3:a ftp://localhost/
OPÇÕES ESPECIAIS PARA MÓDULOS
Via o terceiro parâmetro de linha de comando (TARGET SERVICE OPTIONAL) ou a opção de linha de comando -m, você pode passar uma opção para um módulo. Muitos módulos usam isso, alguns exigem isso!
Para ver a opção especial de um módulo, digite:
hydra -U
eg
./hydra -U http-post-form
As opções especiais podem ser passadas através do parâmetro -m, como a opção da terceira linha de comando ou no serviço: // target / formato da opção.
Exemplos (todos são iguais):
./hydra -l test -p test -m PLAIN 127.0.0.1 imap
./hydra -l test -p test 127.0.0.1 imap PLAIN
./hydra -l test -p test imap://127.0.0.1/PLAIN
RESTAURANDO UMA SESSÃO ABORTADA / DESPEDIDA
Quando a hydra é abortada com o Control-C, morta ou travada, ela deixa um arquivo "hydra.restore" atrás do qual contém todas as informações necessárias para restaurar a sessão. Este arquivo de sessão é gravado a cada 5 minutos. OBSERVAÇÃO: o arquivo hydra.restore NÃO pode ser copiado para uma plataforma diferente (por exemplo, de little endian para big endian ou de Solaris para AIX)
COMO DIGITALIZAR / CRACK SOBRE UM PROXY
A variável de ambiente HYDRA_PROXY_HTTP define o proxy da Web (isso funciona para os serviços http!). A seguinte sintaxe é válida:
HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"
HYDRA_PROXY_HTTP="http://login:[email protected]:8080/"
HYDRA_PROXY_HTTP="proxylist.txt"
O último exemplo é um arquivo de texto contendo até 64 proxies (na mesma definição de formato que os outros exemplos). Para todos os outros serviços, use a variável HYDRA_PROXY para digitalizar / crackear. Ele usa a mesma sintaxe. por exemplo:
HYDRA_PROXY=[connect|socks4|socks5]://[login:password@]proxy_addr:proxy_port
por exemplo:HYDRA_PROXY=connect://proxy.anonymizer.com:8000
HYDRA_PROXY=socks4://auth:[email protected]:1080
HYDRA_PROXY=socksproxylist.txt
DICAS ADICIONAIS
- classifique seus arquivos de senha por probabilidade e use a opção -u para encontrar senhas muito mais rápido!
- uniq seus arquivos de dicionário! isso pode economizar muito tempo :-) cat words.txt | ordenar | uniq> dictionary.txt
- Se você souber que o alvo está usando uma política de senha (permitindo que os usuários escolham apenas uma senha com um comprimento mínimo de 6, contendo pelo menos uma letra e um número etc., use a ferramenta pw-inspector que acompanha o pacote hydra para reduzir a lista de senhas: cat dictionary.txt | pw-inspector -m 6 -c2 -n> passlist.txt
RESULTADOS DE SAÍDA
Os resultados são enviados para o stdio juntamente com as outras informações. Por meio da opção de linha de comando -o, os resultados também podem ser gravados em um arquivo. Usando -b, o formato da saída pode ser especificado. Atualmente, estes são suportados:
text
- formato de texto simplesjsonv1
- Dados JSON usando a versão 1.x do esquema (definido abaixo).json
- Dados JSON usando a versão mais recente do esquema, atualmente há apenas a versão 1.
Esquema JSON
Aqui está um exemplo da saída JSON. Notas sobre alguns dos campos:
errormessages
- uma matriz de zero ou mais cadeias de caracteres que normalmente são impressas para stderr no final da execução da Hydra. O texto é muito livre.success
- indicação se o Hydra funcionou corretamente sem erros ( NÃO se senhas foram detectadas). Esse parâmetro é o valor JSONtrue
oufalse
depende da conclusão.quantityfound
- Quantas combinações de nome de usuário + senha foram descobertas.jsonoutputversion
- Versão do esquema, 1.00, 1.01, 1.11, 2.00, 2.03, etc. O Hydra fará com que a segunda tupla da versão seja sempre dois dígitos para facilitar o processamento dos processadores downstream (em oposição a v1.1 vs v1.10) . As versões de nível menor são aditivas, portanto, 1.02 conterá mais campos que a versão 1.00 e será compatível com versões anteriores. A versão 2.x irá quebrar algo da saída da versão 1.x.
{
"errormessages": [
"[ERROR] Error Message of Something",
"[ERROR] Another Message",
"These are very free form"
],
"generator": {
"built": "2019-03-01 14:44:22",
"commandline": "hydra -b jsonv1 -o results.json ... ...",
"jsonoutputversion": "1.00",
"server": "127.0.0.1",
"service": "http-post-form",
"software": "Hydra",
"version": "v8.5"
},
"quantityfound": 2,
"results": [
{
"host": "127.0.0.1",
"login": "[email protected]",
"password": "bill",
"port": 9999,
"service": "http-post-form"
},
{
"host": "127.0.0.1",
"login": "[email protected]",
"password": "joe",
"port": 9999,
"service": "http-post-form"
}
],
"success": false
}
VELOCIDADE
através do recurso de paralelização, esta ferramenta cracker de senha pode ser muito rápida, no entanto, depende do protocolo. Os mais rápidos são geralmente POP3 e FTP. Experimente a opção de tarefa (-t) para acelerar as coisas! Quanto maior - mais rápido ;-) (mas muito alto - e desativa o serviço)
ESTATÍSTICAS
Executa contra um SuSE Linux 7.2 no host local com um "-C FILE" contendo 295 entradas (294 tentativas de logins inválidos, 1 válido). Cada teste foi executado três vezes (somente para "1 tarefa" apenas uma vez) e a média anotada.
P A R A L L E L T A S K S
SERVICE 1 4 8 16 32 50 64 100 128
------- --------------------------------------------------------------------
telnet 23:20 5:58 2:58 1:34 1:05 0:33 0:45* 0:25* 0:55*
ftp 45:54 11:51 5:54 3:06 1:25 0:58 0:46 0:29 0:32
pop3 92:10 27:16 13:56 6:42 2:55 1:57 1:24 1:14 0:50
imap 31:05 7:41 3:51 1:58 1:01 0:39 0:32 0:25 0:21
(*) Nota: os tempos de telnet podem ser muito diferentes para 64 a 128 tarefas! por exemplo, com 128 tarefas, a execução quatro vezes resultou em tempos entre 28 e 97 segundos! A razão para isso é desconhecida ... estimativas por tarefa (arredondadas para cima):
295 74 38 19 10 6 5 3 3
estimativas possíveis por conexão (depende do software do servidor e da configuração):
telnet 4 ftp 6 pop3 1 imap 3