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 listing with syntax highlightingCode:#!/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
Project description