Exemplo n.º 1
0
def run_main_program():

    Printer.verbose = Parser.verbose
    Printer.debug = Parser.debug
    Printer.log_filename = Parser.log_filename
    Printer.log_level = Parser.log_level
    Printer.log_max_bytes_per_file = Parser.log_max_bytes_per_file
    Printer.log_max_number_log_files = Parser.log_max_number_log_files
    Printer.log_format = Parser.log_format
    Printer.enable_logging()

    if Parser.show_examples:
        Printer.print_example_usage()
        exit(0)

    lSonar = Sonar(p_parser=Parser)

    if Parser.test_connectivity:
        lSonar.test_connectivity()

    if Parser.check_quota:
        lSonar.check_quota()

    if Parser.list_studies:
        lSonar.list_studies()

    if Parser.list_unparsed_files:
        lSonar.list_unparsed_files()

    if Parser.update_studies:
        lSonar.update_studies()

    if Parser.export_data:
        lSonar.export_dataset()
Exemplo n.º 2
0
def run_main_program():
    LINES_BEFORE = 1
    LINES_AFTER = 1

    l_api: API = None

    Printer.verbose = Parser.verbose
    Printer.debug = Parser.debug
    Printer.log_filename = Parser.log_filename
    Printer.log_level = Parser.log_level
    Printer.log_max_bytes_per_file = Parser.log_max_bytes_per_file
    Printer.log_max_number_log_files = Parser.log_max_number_log_files
    Printer.log_format = Parser.log_format
    Printer.enable_logging()

    if Parser.show_usage:
        lArgParser.print_usage()
        exit(0)

    if Parser.show_examples:
        ExampleUsage.print_example_usage()
        exit(0)

    if Parser.version:
        print_version()
        exit(0)

    if Parser.test_connectivity or Parser.get_account or Parser.get_license or Parser.get_agents or Parser.get_agent_groups or \
        Parser.get_team_members or Parser.get_website_groups or Parser.get_discovered_services or \
        Parser.download_discovered_services or Parser.get_website_groups or Parser.upload_website_groups or \
        Parser.get_websites or Parser.upload_websites or Parser.get_vulnerability_templates or \
        Parser.get_vulnerability_template or Parser.get_vulnerability_types or Parser.ping_sites or \
        Parser.ping_sites_in_file or Parser.report_agents_missing_heartbeat or Parser.report_disabled_agents or \
        Parser.report_issues or Parser.get_scans or Parser.get_scheduled_scans or Parser.get_scans_by_website or \
        Parser.get_website_by_url or Parser.get_website_by_name or Parser.get_website_by_id or \
        Parser.get_websites_by_group_name or Parser.get_websites_by_group_id or Parser.get_technologies or \
        Parser.get_obsolete_technologies or Parser.get_scan_profiles or Parser.get_scan_profile or \
        Parser.get_account_managers or Parser.get_api_accounts or Parser.get_scan_accounts or \
        Parser.get_disabled_accounts or Parser.get_account_owners or Parser.get_team_member or \
        Parser.get_scan_results or Parser.upload_team_members or Parser.create_team_member or \
        Parser.get_roles or Parser.get_permissions or Parser.get_role or Parser.delete_team_member or \
        Parser.get_unused_accounts or Parser.get_teams or Parser.get_issues or Parser.download_issues or \
        Parser.report_bsc or Parser.get_unpatched_issues:
        l_api = API(p_parser=Parser)
    else:
        lArgParser.print_usage()
        Printer.print("Required arguments not provided", Level.ERROR,
                      Force.FORCE, LINES_BEFORE, LINES_AFTER)

    if Parser.test_connectivity:
        l_api.test_connectivity()
        exit(0)

    if Parser.get_account:
        l_api.get_account()
        exit(0)

    if Parser.get_license:
        l_api.get_license()
        exit(0)

    if Parser.get_agents:
        l_api.get_agents()
        exit(0)

    if Parser.get_agent_groups:
        l_api.get_agent_groups()
        exit(0)

    if Parser.get_issues:
        l_api.get_issues()
        exit(0)

    if Parser.get_unpatched_issues:
        l_api.get_unpatched_issues()
        exit(0)

    if Parser.download_issues:
        if not Parser.output_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --output-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.download_issues()
        exit(0)

    if Parser.get_roles:
        l_api.get_roles()
        exit(0)

    if Parser.get_permissions:
        l_api.get_permissions()
        exit(0)

    if Parser.get_role:
        if not Parser.role_id:
            lArgParser.print_usage()
            Printer.print("-rid, --role-id is required but not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_role()
        exit(0)

    if Parser.get_teams:
        l_api.get_teams()
        exit(0)

    if Parser.get_team_member:
        if not Parser.team_member_id and not Parser.team_member_email:
            lArgParser.print_usage()
            Printer.print(
                "Either -tmid, --team-member-id or -tme, --team-member-email required but not provided",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_team_member()
        exit(0)

    if Parser.get_team_members:
        l_api.get_team_members()
        exit(0)

    if Parser.create_team_member:
        if not (Parser.team_member_name and Parser.team_member_email and
                Parser.team_member_sso_email and Parser.team_member_groups):
            lArgParser.print_usage()
            Printer.print(
                "Requires -tmn, --team-member-name, -tme, --team-member-email, -tmsso, --team-member-sso-email, and -tmg, --team-member-groups",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.create_team_member()
        exit(0)

    if Parser.delete_team_member:
        if not (Parser.team_member_id):
            lArgParser.print_usage()
            Printer.print("Requires -tmid, --team-member-id", Level.ERROR,
                          Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.delete_team_member()
        exit(0)

    if Parser.upload_team_members:
        if not Parser.input_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --input-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.upload_team_members()
        exit(0)

    if Parser.get_account_managers:
        l_api.get_account_managers()
        exit(0)

    if Parser.get_account_owners:
        l_api.get_account_owners()
        exit(0)

    if Parser.get_api_accounts:
        l_api.get_api_accounts()
        exit(0)

    if Parser.get_scan_accounts:
        l_api.get_scan_accounts()
        exit(0)

    if Parser.get_disabled_accounts:
        l_api.get_disabled_accounts()
        exit(0)

    if Parser.get_unused_accounts:
        l_api.get_unused_accounts()
        exit(0)

    if Parser.get_technologies:
        l_api.get_technologies()
        exit(0)

    if Parser.get_obsolete_technologies:
        l_api.get_obsolete_technologies()
        exit(0)

    if Parser.get_website_groups:
        l_api.get_website_groups()
        exit(0)

    if Parser.upload_website_groups:
        if not Parser.input_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --input-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.upload_website_groups()
        exit(0)

    if Parser.get_discovered_services:
        l_api.get_discovered_services()
        exit(0)

    if Parser.download_discovered_services:
        if not Parser.output_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --output-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.download_discovered_services()
        exit(0)

    if Parser.get_website_by_url:
        if not Parser.website_url:
            lArgParser.print_usage()
            Printer.print(
                "Required argument -wurl, --website-url not provided",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_website_by_url()
        exit(0)

    if Parser.get_website_by_name:
        if not Parser.website_name:
            lArgParser.print_usage()
            Printer.print("Required argument -wn, --website-name not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_website_by_name()
        exit(0)

    if Parser.get_website_by_id:
        if not Parser.website_id:
            lArgParser.print_usage()
            Printer.print("Required argument -wid, --website-id not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_website_by_id()
        exit(0)

    if Parser.get_websites:
        l_api.get_websites()
        exit(0)

    if Parser.get_websites_by_group_name:
        if not Parser.website_group_name:
            lArgParser.print_usage()
            Printer.print(
                "Required argument -wgn, --website-group-name not provided",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_websites_by_group_name()
        exit(0)

    if Parser.get_websites_by_group_id:
        if not Parser.website_group_id:
            lArgParser.print_usage()
            Printer.print(
                "Required argument -wgid, --website-group-id not provided",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_websites_by_group_id()
        exit(0)

    if Parser.upload_websites:
        if not Parser.input_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --input-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.upload_websites()
        exit(0)

    if Parser.get_vulnerability_templates:
        l_api.get_vulnerability_templates()
        exit(0)

    if Parser.get_vulnerability_template:
        if not Parser.vulnerability_type:
            lArgParser.print_usage()
            Printer.print(
                "Required argument -vt, --vulnerability-type not provided",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_vulnerability_template()
        exit(0)

    if Parser.get_vulnerability_types:
        l_api.get_vulnerability_types()
        exit(0)

    if Parser.ping_sites:
        l_api.ping_sites()
        exit(0)

    if Parser.ping_sites_in_file:
        if not Parser.input_filename:
            lArgParser.print_usage()
            Printer.print("Required argument --input-file not provided",
                          Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.ping_sites_in_file()
        exit(0)

    if Parser.report_agents_missing_heartbeat:
        exit(l_api.report_agents_missing_heartbeat())

    if Parser.report_disabled_agents:
        exit(l_api.report_disabled_agents())

    if Parser.get_scans:
        l_api.get_scans()
        exit(0)

    if Parser.get_scheduled_scans:
        l_api.get_scheduled_scans()
        exit(0)

    if Parser.get_scans_by_website:
        if not Parser.website_url and not Parser.target_url:
            lArgParser.print_usage()
            Printer.print(
                "Either -wurl, --website-url or -turl, --target-url or both required",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_scans_by_website()
        exit(0)

    if Parser.get_scan_profile:
        if not Parser.scan_profile_id and not Parser.scan_profile_name:
            lArgParser.print_usage()
            Printer.print(
                "Either -spid, --scan-profile-id or -spn, --scan-profile-name required",
                Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_scan_profile()
        exit(0)

    if Parser.get_scan_profiles:
        l_api.get_scan_profiles()
        exit(0)

    if Parser.get_scan_results:
        if not Parser.scan_id:
            lArgParser.print_usage()
            Printer.print("-sid, --scan-id required", Level.ERROR, Force.FORCE,
                          LINES_BEFORE, LINES_AFTER)
            exit(0)
        l_api.get_scan_results()
        exit(0)

    if Parser.report_issues:
        l_api.report_issues()
        exit(0)

    if Parser.report_bsc:
        l_api.report_bsc()
        exit(0)
Exemplo n.º 3
0
def run_main_program():
    LINES_BEFORE = 1
    LINES_AFTER = 1

    Printer.verbose = Parser.verbose
    Printer.debug = Parser.debug
    Printer.log_filename = Parser.log_filename
    Printer.log_level = Parser.log_level
    Printer.log_max_bytes_per_file = Parser.log_max_bytes_per_file
    Printer.log_max_number_log_files = Parser.log_max_number_log_files
    Printer.log_format = Parser.log_format
    Printer.enable_logging()

    if Parser.show_usage:
        lArgParser.print_usage()
        exit(0)

    if Parser.show_examples:
        print_example_usage()
        exit(0)

    if Parser.test_connectivity or Parser.authenticate or Parser.list_exposure_types or Parser.list_exposures or \
            Parser.list_exposure_summaries or Parser.list_business_units or Parser.list_asset_entities or \
            Parser.list_issue_types or Parser.get_issues_count or Parser.get_issues or Parser.get_issue:
        l_api = API(p_parser=Parser)
    else:
        lArgParser.print_usage()
        Printer.print("Required arguments not provided", Level.ERROR, Force.FORCE, LINES_BEFORE, LINES_AFTER)

    if Parser.test_connectivity:
        l_api.test_connectivity()
        exit(0)

    if Parser.authenticate:
        l_api.test_authentication()
        exit(0)

    if Parser.list_asset_entities:
        l_api.get_asset_entities()
        exit(0)

    if Parser.list_business_units:
        l_api.get_entities()
        exit(0)

    if Parser.list_exposure_types:
        l_api.list_exposure_types()
        exit(0)

    if Parser.list_exposure_summaries:
        l_api.summarize_exposed_ip_ports()
        exit(0)

    if Parser.list_exposures:
        l_api.get_exposures()
        exit(0)

    if Parser.list_issue_types:
        l_api.list_issue_types()
        exit(0)

    if Parser.get_issues_count:
        l_api.get_issues_count()
        exit(0)

    if Parser.get_issues:
        l_api.get_issues()
        exit(0)

    if Parser.get_issue:
        l_api.get_issue()
        exit(0)