Hello,
I recently wrote a bash script to do wget requests via a proxy list.
I'd love to see it in a future release of backtrack, so if you're interested it's here for you to use.

Kind regards,
Cool Fire

Added code & links for completeness.

Code:
#!/bin/bash
 
# Insomnia 24/7 farmer shell script.
# Call a specified URL using a list of proxies.
 
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
 
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
 
#    <http://www.gnu.org/licenses/>
 
local RED="\033[31m"
local GREEN="\033[32m"
local YELLOW="\033[33m"
local BLUE="\033[35m"
local END="\033[0m"
 
# Ending and Ctrl+C out
trap ctrl_c INT
 
ctrl_c() {
    echo ""
    echo "${YELLOW}[*]${END}\tCompleted ${BLUE}${SUC}${END} verified proxied requests"
    echo "${YELLOW}[*]${END}\tTried ${BLUE}${TOT}${END} proxies"
    echo "${YELLOW}[*]${END}\tDone."
 
    exit 0
}
 
USAGE="Insomnia 24/7 farmer\n\
\nUsage: `basename $0` [-hdtmo] [-p proxyfile.txt] [-u \"http://url.domain.tld/?page=hit_this_page\"]\n\
Expected proxy list format: ip.ip.ip.ip:port the rest of the line is ignored.\n\
Use UNIX file format, DOS file format causes problems.\n\n\
\tGeneric options\n\
\t-l list.txt\tProxy list (Required)\n\
\t-h\t\tPrint this help\n\
\t-o out.txt\tOutput file (Default: /dev/null) (Use -o - for STDOUT)\n\
\t-s\t\tShow count on failed requests too (Useful for unreliable lists)\n\n\
\tTiming options\n\
\t-d sec\t\tSeconds to delay after sucessful proxy (Default: 2)\n\
\t-t sec\t\tHow long to wait for a proxy to respond (Default: 5)\n\
\t-m n\t\tStop after n verified successful hits\n\n\
\tRequest options\n\
\t-u URL\t\tUrl to hit via proxy (Required)\n\
\t-r \"str\"\tSet referer\n\
\t-p \"str\"\tSet POST data"
 
DELAY="2"
TOUT="5"
OUTP="/dev/null"
SUC="0"
TOT="0"
POST=""
REF=""
 
# Parse cmdline opts
while getopts shd:l:t:p:r:u:o:m: OPT; do
	case "$OPT" in
		h)
			echo $USAGE
			exit 0
			;;
		s)	SHOW="Y";;
		d)	DELAY=$OPTARG;;
		t)	TOUT=$OPTARG;;
		p)	POST=$OPTARG;;
		r)	REF=$OPTARG;;
		l)	PLIST=$OPTARG;;
		o)	OUTP=$OPTARG;;
		u)	URL=$OPTARG;;
		m)	MAX=$OPTARG;;
		\?)
			echo $USAGE >&2
			exit 1
			;;
	esac
done
 
if [ ! -n "$PLIST" ]; then
		echo $USAGE >&2
		echo "${RED}-p is required!${END}" >&2
		exit 1
fi
 
if [ ! -n "$URL" ]; then
		echo $USAGE >&2
		echo "${RED}-u is required!${END}" >&2
		exit 1
fi
 
# Print config
echo ""
echo "${YELLOW}[*]${END}\tUsing proxy list ${BLUE}${PLIST}${END}"
echo "${YELLOW}[*]${END}\tHitting url ${BLUE}${URL}${END}"
if [ -n "$POST" ]; then
	echo "${YELLOW}[*]${END}\tSending POST-data ${BLUE}${POST}${END}"
fi
if [ -n "$REF" ]; then
	echo "${YELLOW}[*]${END}\tSpoofing referer ${BLUE}${REF}${END}"
fi
echo "${YELLOW}[*]${END}\tOutput file ${BLUE}${OUTP}${END}"
echo "${YELLOW}[*]${END}\tDelay ${BLUE}${DELAY}${END} seconds after succesful attempt"
echo "${YELLOW}[*]${END}\tHTTP timeout ${BLUE}${TOUT}${END} seconds"
if [ -n "$MAX" ]; then
	echo "${YELLOW}[*]${END}\tStopping after ${BLUE}${MAX}${END} verified proxied requests"
fi
echo ""
echo "${YELLOW}[*]${END}\tStarting"
echo ""
 
#Grab first column
LIST=`cat $PLIST | awk '{print $1}'`
 
# Walk trough proxy list
for PROXY in $LIST
do
	# Separation, though not strictly needed under this impelementation
	IP=`echo $PROXY | cut -d: -f 1`
	PORT=`echo $PROXY | cut -d: -f 2`
 
	# Set proxy variable for wget
	export http_proxy="http://${IP}:${PORT}"
 
	# Build request string
	REQ="wget --proxy=on -q -T ${TOUT} -t 1 -O ${OUTP}"
 
	if [ -n "$POST" ]; then
		REQ="${REQ} --post-data=${POST}"
	fi
 
	if [ -n "$REF" ]; then
		REQ="${REQ} --referer=\"${REF}\""
	fi
 
	REQ="${REQ} ${URL}"
 
	# Try to grab page
	if $REQ; then
		# Some record keeping
		: $((SUC = SUC + 1))
 
		echo "${YELLOW}[$SUC]${END}\t${IP}:${PORT}\t\t${GREEN}Successful${END}"
 
		# Throttle the succesful hits
		sleep $DELAY
	else
		if [ -n "$SHOW" ]; then
			echo "${YELLOW}[${SUC}]${END}\t${IP}:${PORT}\t\t${RED}Failed${END}"
		else
			echo "${YELLOW}[*]${END}\t${IP}:${PORT}\t\t${RED}Failed${END}"
		fi
	fi
 
	# More record keeping
	: $((TOT = TOT + 1))
 
	if [ -n "$MAX" ]; then
		if [ "$SUC" -eq "$MAX" ]; then
			ctrl_c
		fi
	fi
done
 
ctrl_c
Code listing with syntax highlighting
Project description