Begin Main...
(logger=None)
| 428 | |
| 429 | |
| 430 | def main(logger=None): |
| 431 | """ |
| 432 | Begin Main... |
| 433 | """ |
| 434 | global global_exit_flag |
| 435 | global global_zgrab_path |
| 436 | |
| 437 | if logger is None: |
| 438 | logger = LoggingUtil.create_log(__name__) |
| 439 | |
| 440 | parser = argparse.ArgumentParser( |
| 441 | description="Launch zgrab against IPs using port 80 or 443." |
| 442 | ) |
| 443 | parser.add_argument( |
| 444 | "-p", choices=["443", "80"], metavar="port", help="The web port: 80 or 443" |
| 445 | ) |
| 446 | parser.add_argument( |
| 447 | "-t", default=5, type=int, metavar="threadCount", help="The number of threads" |
| 448 | ) |
| 449 | parser.add_argument( |
| 450 | "--zgrab_path", |
| 451 | default=global_zgrab_path, |
| 452 | metavar="zgrabVersion", |
| 453 | help="The version of ZGrab to use", |
| 454 | ) |
| 455 | args = parser.parse_args() |
| 456 | |
| 457 | if args.p == None: |
| 458 | logger.error("A port value (80 or 443) must be provided.") |
| 459 | exit(1) |
| 460 | |
| 461 | if is_running(os.path.basename(__file__)): |
| 462 | """ |
| 463 | Check to see if a previous attempt to parse is still running... |
| 464 | """ |
| 465 | now = datetime.now() |
| 466 | logger.warning(str(now) + ": I am already running! Goodbye!") |
| 467 | exit(0) |
| 468 | |
| 469 | now = datetime.now() |
| 470 | print("Starting: " + str(now)) |
| 471 | logger.info("Starting...") |
| 472 | |
| 473 | rm_connector = RemoteMongoConnector.RemoteMongoConnector() |
| 474 | all_dns_collection = rm_connector.get_all_dns_connection() |
| 475 | ip_manager = IPManager.IPManager(rm_connector, True) |
| 476 | |
| 477 | jobs_manager = JobsManager.JobsManager(rm_connector, "zgrab_http_ip-" + args.p) |
| 478 | jobs_manager.record_job_start() |
| 479 | |
| 480 | zones_struct = {} |
| 481 | zones_struct["zones"] = ZoneManager.get_distinct_zones(rm_connector) |
| 482 | |
| 483 | # Not pretty but cleaner than previous method |
| 484 | zones_struct["ip_manager"] = ip_manager |
| 485 | |
| 486 | (ips, ip_context) = get_ips(ip_manager, all_dns_collection) |
| 487 | logger.info("Got IPs: " + str(len(ips))) |
no test coverage detected