#!/usr/bin/perl # # # This script has been tested under debian # with Squid 2.2-Stable 5 # and performs a portscan over a http proxy. # use IO::Socket; $StartPort=1025; # portrange we scan $EndPort=1050; $target="192.74.53.1"; # our target host $proxy="192.74.53.2"; # the http proxy $proxyport="8080"; for ( $targetport = $StartPort ; $targetport <= $EndPort ; $targetport++ ){ print ("Port $targetport ..."); $s = IO::Socket::INET-> new(PeerAddr=>$proxy, PeerPort=>$proxyport, Proto=>"tcp") || die "proxy down..\n" ; $send="GET HTTP:\/\/$target:$targetport\/ HTTP\/1.0\n\n\n\n"; print $s "$send"; read $s, $a, 30 ; if ( $a !~ "503" ){ # check if we get a 503 error from the proxy print " open !\n"; # print "$a\n"; # or the banner ( uncomment this line to see the banner ) } else { print " closed\n"; } close $s; }