#!/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; }