예제 #1
0
def main(workspace='', args=None, parser=None):

    parser.add_argument('-y', '--yes', action="store_true")
    parsed_args = parser.parse_args(args)

    try:
        vulns = models.get_all_vulns(workspace)
    except ResourceDoesNotExist:
        print("Invalid workspace name: ", workspace)
        return 1, None

    if not parsed_args.yes:
        if not query_yes_no(
                "Are you sure you want to change the status to closed of all the vulns in workspace %s"
                % workspace,
                default='no'):
            return 1, None

    count = 0
    for vuln in vulns:
        old_status = vuln.status

        # Valid status
        if vuln.status != "closed":

            vuln.status = "closed"
            count += 1

            if vuln.class_signature == "Vulnerability":
                models.update_vuln(workspace, vuln)

            elif vuln.class_signature == "VulnerabilityWeb":
                models.update_vuln_web(workspace, vuln)

            print(vuln.name, ": Status changed from", old_status,
                  "to closed successfully")

    print("End of process:", count, "vulnerabilities changed to closed")
    return 0, None
예제 #2
0
def main(workspace='', args=None, parser=None):
    default_regex = (
        r"ssl\-cert|ssl\-date|Traceroute Information|TCP\/IP Timestamps Supported"
        r"|OS Identification|Common Platform Enumeration")
    parser.add_argument('-y', '--yes', action="store_true")
    parser.add_argument('-r', '--regex', default=default_regex)
    parsed_args = parser.parse_args(args)
    if not parsed_args.yes:
        msg = ("Are you sure you want to delete all vulnerabilities "
               "matching the regex {} in the worspace {}? "
               "This action can't be undone [y/n] ".format(
                   parsed_args.regex, workspace))
        if input(msg) not in ('y', 'yes'):
            return 1, None

    for vuln in models.get_all_vulns(workspace):
        if re.findall(
                parsed_args.regex,
                vuln.name,
        ) != []:
            print("Delete Vuln: " + vuln.name)
            models.delete_vuln(workspace, vuln.id)
    return 0, None
예제 #3
0
 def get_all_vulns(self, **params):
     return models.get_all_vulns(self.active_workspace, **params)