def main(): main_parser = argparse.ArgumentParser(description=banner(), formatter_class=argparse.RawTextHelpFormatter, usage=argparse.SUPPRESS) main_parser._optionals.title = 'Optional Arguments\n\033[1;30m>>-------------------->\033[1;m' main_parser.add_argument('-D', '--debug', dest="debug", action='store_true', help='Show debug messages & failed login attempts') main_parser.add_argument('-T', dest='max_threads', type=int, default=75, help='Max number of threads to use') main_parser.add_argument('--host-max', dest='max_host_threads', type=int, default=20, help='Max threads per host') main_parser.add_argument('-W', dest='workspace', type=str, default='', required=False, help='Manually set workspace, otherwise defaults to config file') sub_parser = main_parser.add_subparsers(title=' \nOperational Modes\n\033[1;30m>>-------------------->\033[1;m', dest='mode') db_args(sub_parser) enum_args(sub_parser) shell_args(sub_parser) spray_args(sub_parser) query_args(sub_parser) args = main_parser.parse_args() if len(argv) <= 2: main_parser.print_help();exit(1) if args.debug: log_level = logging.DEBUG else: log_level = logging.INFO # Init console logger loggers = {} loggers['console'] = setup_logger(log_level, 'ar3') # First checks & load config first_run_check(loggers['console']) config_obj = ConfigLoader() if not args.workspace: setattr(args, 'workspace', config_obj.WORKSPACE) first_workspace_check(args.workspace, loggers['console']) # Setup file logger loggers[args.mode] = setup_file_logger(args.workspace, args.mode) # Setup secondary loggers - use argv since arg_mods haven't been made yet if '--spider' in argv: loggers['spider'] = setup_file_logger(args.workspace, "spider") if '--gen-relay-list' in argv: loggers['relay_list'] = setup_file_logger(args.workspace, "relay_list") # Setup DB db_obj = Ar3db(args.workspace, loggers['console'], args.debug) try: # Start args = eval("{}_arg_mods(args, db_obj, loggers)".format(args.mode)) if args.debug: print_args(args, loggers['console']) ops = import_module("ar3.ops.{}".format(args.mode)) ops.main(args, config_obj, db_obj, loggers) except KeyboardInterrupt: print("\n[!] Key Event Detected, Closing...") exit(0) except Exception as e: print("[!] ActiveReign Error: {}".format(str(e)))
def main(): logger = setup_logger(logging.INFO, 'ar3') shell(logger)