def check_rule(self, ip, port, values, conf): c = ConfParser(conf) p = ScanParser(port, values) t = Triage() domain = p.get_domain() module = p.get_module() if 'http' not in module: return resp = t.http_request(ip, port) for app, val in self.rule_match_string.items(): app_name = val['app'] app_title = val['title'] for match in val['match']: if resp and t.string_in_headers(resp, match): self.rule_details = '{} - ({})'.format(app, app_title) js_data = { 'ip':ip, 'port':port, 'domain':domain, 'rule_id':self.rule, 'rule_sev':self.rule_severity, 'rule_desc':self.rule_description, 'rule_details':self.rule_details, 'rule_mitigation':self.rule_mitigation } rds.store_vuln(js_data) return
def check_rule(self, ip, port, values, conf): p = ScanParser(port, values) t = Triage() domain = p.get_domain() module = p.get_module() if 'http' not in module: return resp = t.http_request(ip, port) for _, val in self.rule_match_string.items(): app_title = val['title'] for match in val['match']: if resp and t.string_in_headers(resp, match): self.rule_details = 'Exposed {} at {}'.format( app_title, resp.url) rds.store_vuln({ 'ip': ip, 'port': port, 'domain': domain, 'rule_id': self.rule, 'rule_sev': self.rule_severity, 'rule_desc': self.rule_description, 'rule_details': self.rule_details, 'rule_mitigation': self.rule_mitigation }) break return
def check_rule(self, ip, port, values, conf): t = Triage() p = ScanParser(port, values) domain = p.get_domain() module = p.get_module() if 'http' not in module: return resp = t.http_request(ip, port) if resp is None: return powered_by_headers = ['X-Powered-By', 'X-AspNet-Version'] for poweredby_header in powered_by_headers: result = t.string_in_headers(resp, poweredby_header) if result: self.rule_details = 'Server is set with "{}" Headers'.format(poweredby_header) rds.store_vuln({ 'ip':ip, 'port':port, 'domain':domain, 'rule_id':self.rule, 'rule_sev':self.rule_severity, 'rule_desc':self.rule_description, 'rule_confirm':self.rule_confirm, 'rule_details':self.rule_details, 'rule_mitigation':self.rule_mitigation }) return
def check_rule(self, ip, port, values, conf): c = ConfParser(conf) t = Triage() p = ScanParser(port, values) domain = p.get_domain() module = p.get_module() product = p.get_product() if 'http' not in module: return resp = t.http_request(ip, port) if resp is None: return powered_by_headers = ['X-Powered-By', 'X-AspNet-Version'] for poweredby_header in powered_by_headers: result = t.string_in_headers(resp, poweredby_header) if result: self.rule_details = '{}:{}'.format( poweredby_header, resp.headers.get(poweredby_header, None)) js_data = { 'ip': ip, 'port': port, 'domain': domain, 'rule_id': self.rule, 'rule_sev': self.rule_severity, 'rule_desc': self.rule_description, 'rule_confirm': self.rule_confirm, 'rule_details': self.rule_details, 'rule_mitigation': self.rule_mitigation } rds.store_vuln(js_data) return