def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host elif cli_parsed.headless: create_driver = phantomjs_module.create_driver capture_host = phantomjs_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break # Fix our directory if its resuming from a different path if os.path.dirname(cli_parsed.d) != os.path.dirname( http_object.screenshot_path): http_object.set_paths( cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.cycle is not None: if user_agent is None: print 'Making baseline request for {0}'.format( http_object.remote_system) else: browser_key, user_agent_str = user_agent print 'Now making web request with: {0} for {1}'.format( browser_key, http_object.remote_system) else: print 'Attempting to screenshot {0}'.format( http_object.remote_system) http_object.resolved = resolve_host(http_object.remote_system) if user_agent is None: http_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print '\x1b[32m[*] Completed {0} out of {1} services\x1b[0m'.format( counter[0].value, counter[1]) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()
def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host elif cli_parsed.headless: if not os.path.isfile('./bin/phantomjs'): print(" [*] Error: You are missing your phantomjs binary!") print(" [*] Please run the setup script!") sys.exit(0) create_driver = phantomjs_module.create_driver capture_host = phantomjs_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break # Fix our directory if its resuming from a different path if os.path.dirname(cli_parsed.d) != os.path.dirname(http_object.screenshot_path): http_object.set_paths( cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.cycle is not None: if user_agent is None: print 'Making baseline request for {0}'.format(http_object.remote_system) else: browser_key, user_agent_str = user_agent print 'Now making web request with: {0} for {1}'.format( browser_key, http_object.remote_system) else: print 'Attempting to screenshot {0}'.format(http_object.remote_system) http_object.resolved = resolve_host(http_object.remote_system) if user_agent is None: http_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print '\x1b[32m[*] Completed {0} out of {1} services\x1b[0m'.format(counter[0].value, counter[1]) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()
def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break # Try to ensure object values are blank http_object._category = None http_object._default_creds = None http_object._error_state = None http_object._page_title = None http_object._ssl_error = False http_object.category = None http_object.default_creds = None http_object.error_state = None http_object.page_title = None http_object.resolved = None http_object.source_code = None # Fix our directory if its resuming from a different path if os.path.dirname(cli_parsed.d) != os.path.dirname( http_object.screenshot_path): http_object.set_paths(cli_parsed.d, None) print('Attempting to screenshot {0}'.format( http_object.remote_system)) http_object.resolved = resolve_host(http_object.remote_system) if user_agent is None: http_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print('\x1b[32m[*] Completed {0} out of {1} services\x1b[0m'. format(counter[0].value, counter[1])) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()
def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host elif cli_parsed.headless: create_driver = phantomjs_module.create_driver capture_host = phantomjs_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break if cli_parsed.cycle is not None: if user_agent is None: print 'Making baseline request for {0}'.format(http_object.remote_system) else: browser_key, user_agent_str = user_agent print 'Now making web request with: {0} for {1}'.format( browser_key, http_object.remote_system) else: print 'Attempting to screenshot {0}'.format(http_object.remote_system) if user_agent is None: http_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print '\x1b[32m[*] Completed {0} out of {1} hosts\x1b[0m'.format(counter[0].value, counter[1]) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()
def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break # Try to ensure object values are blank http_object._category = None http_object._default_creds = None http_object._error_state = None http_object._page_title = None http_object._ssl_error = False http_object.category = None http_object.default_creds = None http_object.error_state = None http_object.page_title = None http_object.resolved = None http_object.source_code = None # Fix our directory if its resuming from a different path if os.path.dirname(cli_parsed.d) != os.path.dirname(http_object.screenshot_path): http_object.set_paths( cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.cycle is not None: if user_agent is None: print 'Making baseline request for {0}'.format(http_object.remote_system) else: browser_key, user_agent_str = user_agent print 'Now making web request with: {0} for {1}'.format( browser_key, http_object.remote_system) else: print 'Attempting to screenshot {0}'.format(http_object.remote_system) http_object.resolved = resolve_host(http_object.remote_system) if user_agent is None: http_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host( cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print '\x1b[32m[*] Completed {0} out of {1} services\x1b[0m'.format(counter[0].value, counter[1]) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()
def worker_thread(cli_parsed, targets, lock, counter, user_agent=None): manager = db_manager.DB_Manager(cli_parsed.d + '/ew.db') manager.open_connection() if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host elif cli_parsed.headless: if not os.path.isfile( os.path.join(os.path.dirname(os.path.realpath(__file__)), 'bin', 'phantomjs')): print(" [*] Error: You are missing your phantomjs binary!") print(" [*] Please run the setup script!") sys.exit(0) create_driver = phantomjs_module.create_driver capture_host = phantomjs_module.capture_host with lock: driver = create_driver(cli_parsed, user_agent) try: while True: http_object = targets.get() if http_object is None: break # Try to ensure object values are blank http_object._category = None http_object._default_creds = None http_object._error_state = None http_object._page_title = None http_object._ssl_error = False http_object.category = None http_object.default_creds = None http_object.error_state = None http_object.page_title = None http_object.resolved = None http_object.source_code = None # Fix our directory if its resuming from a different path if os.path.dirname(cli_parsed.d) != os.path.dirname( http_object.screenshot_path): http_object.set_paths( cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.cycle is not None: if user_agent is None: print 'Making baseline request for {0}'.format( http_object.remote_system) else: browser_key, user_agent_str = user_agent print 'Now making web request with: {0} for {1}'.format( browser_key, http_object.remote_system) else: print 'Attempting to screenshot {0}'.format( http_object.remote_system) http_object.resolved = resolve_host(http_object.remote_system) if user_agent is None: http_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: http_object = default_creds_category(http_object) manager.update_http_object(http_object) else: ua_object, driver = capture_host(cli_parsed, http_object, driver) if http_object.category is None and http_object.error_state is None: ua_object = default_creds_category(ua_object) manager.update_ua_object(ua_object) counter[0].value += 1 if counter[0].value % 15 == 0: print '\x1b[32m[*] Completed {0} out of {1} services\x1b[0m'.format( counter[0].value, counter[1]) do_jitter(cli_parsed) except KeyboardInterrupt: pass manager.close() driver.quit()