Changeset 3903
- Timestamp:
- 01/06/09 20:55:16 (4 years ago)
- Files:
-
- 1 modified
-
branch/nmapparser/NmapParser.py (modified) (12 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branch/nmapparser/NmapParser.py
r3902 r3903 36 36 37 37 class HostInfo(object): 38 def __init__(self, id):38 def __init__(self, host_id): 39 39 self.osclass = [] 40 40 self.osmatch = [] … … 53 53 54 54 # Umit extension 55 self.id = id55 self.id = host_id 56 56 self.comment = '' 57 57 … … 80 80 raise Exception("Id was not set yet.") 81 81 82 def set_id(self, id):82 def set_id(self, host_id): 83 83 try: 84 self._id = int( id)84 self._id = int(host_id) 85 85 except (TypeError, ValueError): 86 86 raise Exception("Invalid id! It must represent an integer, " 87 "received %r" % id)87 "received %r" % host_id) 88 88 89 89 # VENDOR … … 147 147 148 148 def get_open_ports(self): 149 open = 0149 open_count = 0 150 150 for port in self.ports: 151 151 if port['state'] == 'open': 152 open += 1153 154 return open 152 open_count += 1 153 154 return open_count 155 155 156 156 def get_filtered_ports(self): 157 filtered = 0157 filtered_count = 0 158 158 for port in self.ports: 159 159 if port['state'] == 'filtered': 160 filtered += 1160 filtered_count += 1 161 161 for extra in self.extraports: 162 162 if extra["state"] == 'filtered': 163 filtered += int(extra["count"])164 165 return filtered 163 filtered_count += int(extra["count"]) 164 165 return filtered_count 166 166 167 167 def get_closed_ports(self): 168 closed = 0168 closed_count = 0 169 169 for port in self.ports: 170 170 if port['state'] == 'closed': 171 closed +=1171 closed_count += 1 172 172 for extra in self.extraports: 173 173 if extra["state"] == 'closed': 174 closed += int(extra['count'])175 176 return closed 174 closed_count += int(extra['count']) 175 176 return closed_count 177 177 178 178 def get_scanned_ports(self): … … 324 324 self.nmap['scaninfo'].append(info) 325 325 326 def get_services_scanned (self): 327 if self._services_scanned == None: 328 return self._services_scanned 329 330 services = [] 331 for scan in self.nmap.get('scaninfo', []): 332 services.append(scan['services']) 333 334 self._services_scanned = ','.join(services) 335 return self._services_scanned 336 337 def set_services_scanned (self, services_scanned): 338 self._services_scanned = services_scanned 339 340 def get_nmap_command (self): 326 def get_services_scanned(self): 327 services = [scan['services'] for scan in self.nmap.get('scaninfo', [])] 328 return ','.join(services) 329 330 def get_nmap_command(self): 341 331 return self._verify_output_options(self.nmap['nmaprun'].get('args', '')) 342 332 … … 344 334 self.nmap['nmaprun']['args'] = self._verify_output_options(command) 345 335 346 def get_scan_type (self): 347 types = [] 348 for t in self.nmap.get('scaninfo', []): 349 types.append(t['type']) 350 return types 336 def get_scan_type(self): 337 return [stype['type'] for stype in self.nmap.get('scaninfo', [])] 351 338 352 339 def get_protocol (self): 353 protocols = [] 354 for proto in self.nmap.get('scaninfo', []): 355 protocols.append(proto['protocol']) 356 return protocols 357 358 def get_num_services (self): 359 if self._num_services == None: 360 return self._num_services 361 340 return [proto['protocol'] for proto in self.nmap.get('scaninfo', [])] 341 342 def get_num_services(self): 362 343 num = 0 363 for n in self.nmap.get('scaninfo', []): 364 num += int(n['numservices']) 365 366 self._num_services = num 367 return self._num_services 368 369 def set_num_services (self, num_services): 370 self._num_services = num_services 344 for sinfo in self.nmap.get('scaninfo', []): 345 num += int(sinfo['numservices']) 346 347 return num 371 348 372 349 def get_date(self): … … 388 365 389 366 def get_open_ports(self): 390 ports = 0 391 392 for h in self.nmap.get('hosts', []): 393 ports += h.get_open_ports() 394 395 return ports 367 open_count = 0 368 for host in self.nmap.get('hosts', []): 369 open_count += host.get_open_ports() 370 371 return open_count 396 372 397 373 def get_filtered_ports(self): 398 ports = 0 399 400 for h in self.nmap.get('hosts', []): 401 ports += h.get_filtered_ports() 402 403 return ports 374 filtered_count = 0 375 for host in self.nmap.get('hosts', []): 376 filtered_count += host.get_filtered_ports() 377 378 return filtered_count 404 379 405 380 def get_closed_ports(self): 406 ports = 0 407 408 for h in self.nmap['hosts']: 409 ports += h.get_closed_ports() 410 411 return ports 381 closed_count = 0 382 for host in self.nmap['hosts']: 383 closed_count += host.get_closed_ports() 384 385 return closed_count 412 386 413 387 def get_formated_date(self): … … 419 393 str(date[4]).zfill(2)) 420 394 421 def get_scanner (self):395 def get_scanner(self): 422 396 return self.nmap['nmaprun'].get('scanner', '') 423 397 … … 502 476 return self.nmap['runstats']['finished'].get('time', 0) 503 477 504 def set_finish_epoch_time(self, time):505 self.nmap['runstats']['finished']['time'] = int( time)478 def set_finish_epoch_time(self, epoch_time): 479 self.nmap['runstats']['finished']['time'] = int(epoch_time) 506 480 507 481 def get_scan_name(self): … … 520 494 521 495 def _verify_output_options(self, command): 522 found = re.findall ('(-o[XGASN]{1}) {0,1}', command)523 splited = command.split (' ')496 found = re.findall('(-o[XGASN]{1}) {0,1}', command) 497 splited = command.split(' ') 524 498 525 499 if found: 526 500 for option in found: 527 501 pos = splited.index(option) 528 del (splited[pos+1])529 del (splited[pos])502 del splited[pos+1] 503 del splited[pos] 530 504 531 505 return ' '.join(splited) … … 547 521 verbose_level = property(get_verbose_level, set_verbose_level) 548 522 scaninfo = property(get_scaninfo, set_scaninfo) 549 services_scanned = property(get_services_scanned , set_services_scanned)523 services_scanned = property(get_services_scanned) 550 524 nmap_command = property(get_nmap_command, set_nmap_command) 551 525 scan_type = property(get_scan_type) 552 526 protocol = property(get_protocol) 553 num_services = property(get_num_services , set_num_services)527 num_services = property(get_num_services) 554 528 date = property(get_date, set_date) 555 529 open_ports = property(get_open_ports) … … 575 549 start = property(get_start, set_start) 576 550 scan_name = property(get_scan_name, set_scan_name) 577 578 _num_services = None579 _services_scanned = None580 551 581 552
