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
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.
**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").
Para instalar a última versão do software, siga os passos abaixo:
Passo 1
~$ sudo apt update && sudo apt install build-essential libssl-dev gitPasso 2 (Opcional: para adicionar formatos de hash extras e performance)
~$ sudo apt install yasm libgmp-dev libpcap-dev pkg-config libbz2-devPasso 3 (Opcional: ativar suporte ao MPI)
~$ sudo apt install libopenmpi-dev openmpi-binPasso 4
~$ git clone git://github.com/magnumripper/JohnTheRipper -b bleeding-jumbo john
~$ cd $PATH_TO_JOHN/john/srcPasso 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 -sj4Passo 6 (Teste sua instalação)
~$ $PATH_TO_JOHN/john/run/john --test=0Seguindo a documentação, faça:
~$ git clone --recursive https://github.com/teeshop/rexgen.git
~$ cd rexgen
~$ ./install.shFinalizada a instalação, execute o ./configure do John para ele encontrar automaticamente a instalação do rexgen:
~$ $PATH_TO_JOHN/john/src/configureSegue 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.txtForam 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.
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.
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-devPasso 2
~$ git clone https://github.com/vanhauser-thc/thc-hydra.git
~$ cd thc-hydra
~$ ./configure && make -s clean && make -sj4Sintaxe 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
O WPScan é um scanner gratuito desenvolvido para encontrar vulnerabilidades em sites wordpress.
É necessário que você tenha instalado o ruby, rubygems e o curl.
~$ gem install wpscanComando básico:
~$ wpscan --url www.exemplo.comListando usuários
~$ wpscan --url www.exemplo.com --enumarete uListando plugins
~$ wpscan --url www.exemplo.com --enumarete uAtaque 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 10Ataque de força bruta com um único usuário alvo:
~$ wpscan --url www.exemplo.com --wordlist wordlist.txt --username user