This scanner searches for vulnerable web servers for Common Gateway Interface and Vermeer Technology Incorporated services. Version 2 allows for Class C IP generation done "On The Fly" and a timeout scheme added thanks to MaB of Efnets #programmers.
77770362b50cb7fe074dde751149a9cfecd9db1fbc1b7b09fc46c9ec41d2715f
# Thanks to MaB of Efnets #programmers for helping clean up my code and reduce my 20 line Class C IP Generator
# to 10 lines of "On The Fly" code and his timeout scheme.
print<<__MENU;
NeoErudition Technologies
CGI VTI Mass Scanner
By: Lawrence Lavigne
MaB
__MENU
use strict;
use diagnostics;
use warnings;
use LWP::UserAgent;
my $hostsfile;
my $host;
my @hosts;
my $userresp;
my $url;
my $class;
my $x;
my @checks = ( "http://HOST/_vti_pvt/service.grp",
"http://HOST/_vti_pvt/authors.pwd",
"http://HOST/cgi-bin/password.txt",
"http://HOST/_vti_pvt/service.pwd",
"http://HOST/_vti_pvt/users.pwd",
"http://HOST/_vti_pvt/administrator.pwd",
"http://HOST/_vti_pvt/administrators.pwd",
"http://HOST/cgi-win/uploader.exe",
"http://HOST/cgi-bin/upload.pl",
"http://HOST/cgi-bin/whois_raw.cgi?",
"http://HOST/cgi-bin/passwd",
"http://HOST/cgi-bin/passwd.txt",
"http://HOST/cgi-bin/handler.cgi",
"http://HOST/cgi-bin/handler",
"http://HOST/cgi-bin/files.pl",
"http://HOST/msadc/Samples/SELECTOR/showcode.asp",
"http://HOST/msadc/Samples/selector/showcode.asp",
"http://HOST/session/adminlogin?");
my $ua = LWP::UserAgent->new(agent => "VTI Scan", env_proxy => 1, keep_alive => 1,timeout => 5);
print "Class C Range To Be Scanned (ie 10.1.101): ";
$class = <STDIN>;
chomp($class);
if ($class =~ /\d+\.\d+\.\d+/) {
print "Adding $class.* to hosts list...\n\n";
for ($x = 1; $x < 255; $x++) {
push @hosts, "$class.$x";
}
} else {
print "Error: Invalid class syntax.";
exit;
}
print qq(CGI/VTI Scan Initiated..\n);
print qq(Output Saved To CGIVTI.log.\n\n);
foreach $host (@hosts) {
foreach (@checks) {
$url = $_;
$url =~ s/HOST/$host/;
print qq(:: Checking $url...\n);
my $response = $ua->get($url);
if ($response->is_success) {
print $response->content;
open(OUT, ">>CGIVTI.log");
print OUT $url;
close OUT;
} else {
print qq(Not Vulnerable..\n\n);
}
}
}
<>