# 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 = ; 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); } } } <>