Skip to content

Instantly share code, notes, and snippets.

@aguirresabino
Last active February 12, 2019 21:59
Show Gist options
  • Select an option

  • Save aguirresabino/759ce7efd0ac4b0c725a351b6267f224 to your computer and use it in GitHub Desktop.

Select an option

Save aguirresabino/759ce7efd0ac4b0c725a351b6267f224 to your computer and use it in GitHub Desktop.
Postagem criada para a atividade da disciplina de Segurança de Dados do IFPB.

John the Ripper, Hydra e WPScan.

Ferramentas para análise de vulnerabilidades de Autenticação. Atividade desenvolvida para a disciplina de Segurança de Dados do IFPB. Fins acadêmicos.

Aluno: Aguirre Sabino Fonseca


Sistema operacional utilizado: Ubuntu minimal 16.04 64 bit


John the Ripper

O John the Ripper (JtR ou John) é uma ferramenta livre e multiplataforma, que foi desenvolvida com o propósito de descobrir senhas fracas do Unix pelo pessoal do projeto [OpenWall](https://www.openwall.com "Página da OpenWall"). Existe também uma versão **PRO**, que é paga e possui algumas vantagens.

O JtR possui quatro modos principais de operação:

**Wordlist:** é o modo de cracking mais simples e utiliza uma lista de palavras para verificar se existe alguma correspondente.
**Single crack:** mais rápido que o modo worlist, utiliza-se de combinações entre informacões do usuário e o diretório `/home` para gerar as senhas candidatas.
**Incremental:** modo mais robusto, verificará cada combinação possível de caracteres até encontrar a senha. Recomenda-se o uso de parâmetros na tentativa de diminuir o tempo de cracking.
**External:** não recomendado para iniciantes, é o modo mais complexo do JtR. Com ele é possível definir regras próprias por meio de programação no arquivo de configuração do john. Para mais informações, acesse este [link](https://www.openwall.com/john/doc/EXTERNAL.shtml "Documentação oficial").

Além dos descritos acima, o JtR permite adicionar novos modos para geração de senhas. Nesta postagem será apresentado o uso de expressões regulares para geração de senhas por meio da biblioteca [rexgen](https://github.com/teeshop/rexgen "Respoistório oficial da biblioteca Rexgen").

Instalação do JtR

Para instalar a última versão do software, siga os passos abaixo:

Passo 1

~$ sudo apt update && sudo apt install build-essential libssl-dev git

Passo 2 (Opcional: para adicionar formatos de hash extras e performance)

~$ sudo apt install yasm libgmp-dev libpcap-dev pkg-config libbz2-dev

Passo 3 (Opcional: ativar suporte ao MPI)

~$ sudo apt install libopenmpi-dev openmpi-bin

Passo 4

~$ git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john

~$ cd $PATH_TO_JOHN/john/src

Passo 5

Se estiver utilizando MPI, execute o seguinte comando:

~$ ./configure --enable-mpi && make -s clean && make -sj4```

Se **NÃO** estiver utilizando MPI, execute o seguinte comando:
```zsh
~$ ./configure && make -s clean && make -sj4

Passo 6 (Teste sua instalação)

~$ $PATH_TO_JOHN/john/run/john --test=0

Ativando o uso do rexgen

Seguindo a documentação, faça:

~$ git clone --recursive https://github.com/teeshop/rexgen.git
~$ cd rexgen
~$ ./install.sh

Finalizada a instalação, execute o ./configure do John para ele encontrar automaticamente a instalação do rexgen:

~$ $PATH_TO_JOHN/john/src/configure

Utilizando o JtR

Segue abaixo exemplos de como gerar wordlist utilizando regex.

Gerando uma senha contendo 4 números e 2 letras

~$ time ~/john/run/john --regex=[0-9]{4}[a-z]{2} --stdout >> wordlist.txt
6760000p 0:00:01:17 0,00% 87474p/s 9999zz

real	1m17,292s
user	0m13,331s
sys	0m38,895s

~$ du -h wordlist.txt
46M	wordlist.txt

Foram geradas 6760000 senhas em 1,17 minutos e o arquivo final possui 46M.

Gerando uma senha contendo 6 números e 2 letras

~$ time ~/john/run/john --regex=[0-9]{6}[a-z]{2} --stdout >> wordlist.txt
676000000p 0:00:08:21 0,00% 1347Kp/s 999999zz

real	8m21,854s
user	7m53,097s
sys	0m27,345s

~$ du -h wordlist.txt
5,7G	wordlist.txt

Foram geradas 676000000 senhas em 8,21 minutos e o arquivo final possui 5,7G.

Hydra

O THC Hydra é uma ferramenta livre para Network Login Hacker que pode ser utilizada para testar a segurança de sua rede e aplicativos. Ela é multiplataforma e suporta os seguintes tipos de protocolos:

Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, 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, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID, Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, RTSP, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.

Instalação

Passo 1

sudo apt update && sudo apt install libssl-dev libssh-dev libidn11-dev libpcre3-dev \
                 libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \
                 firebird-dev

Passo 2

~$ git clone https://github.com/vanhauser-thc/thc-hydra.git
~$ cd thc-hydra
~$ ./configure && make -s clean && make -sj4

Usando o Hydra

Sintaxe básica para executar o hydra:

~$ 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] [-ISOuvVd46] [service://server[:PORT][/OPT]]]

Abaixo será apresentado um exemplo de ataque para verificar vulnerabilidades de autenticação em um site. Iremos tentar encontrar a senha para um usuário já conhecido, utilizando um dicionário de palavras.

~$ hydra -l user -P wordlist.txt site.com.br https-form-post "/login:email=^USER^&password=^PASS^:S:Success" -V -t 2
  • -l: especifica o usuário
  • -P: caminho para a wordlist que será utilizada no ataque
  • -V: Informa o status do ataque na tela do terminal
  • -t: quantidade de requisições simultâneas que devem ser enviadas
  • ^USER^: passa o usuário informado no parâmetro -l
  • ^PASS^: passa a senha informada no parâmetro -P

WPScan

O WPScan é um scanner gratuito desenvolvido para encontrar vulnerabilidades em sites wordpress.

Instalação

É necessário que você tenha instalado o ruby, rubygems e o curl.

~$ gem install wpscan

Usando o WPScan

Comando básico:

~$ wpscan --url www.exemplo.com

Listando usuários

~$ wpscan --url www.exemplo.com --enumarete u

Listando plugins

~$ wpscan --url www.exemplo.com --enumarete u

Ataque de força bruta aos usuários enumerados utilizando dicionário de palavras e dez threads:

~$ wpscan --url www.exemplo.com --wordlist wordlist.txt --threads 10

Ataque de força bruta com um único usuário alvo:

~$ wpscan --url www.exemplo.com --wordlist wordlist.txt --username user

Links externos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment