def single_mode(cli_parsed): display = None if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host if not cli_parsed.show_selenium: display = Display(visible=0, size=(1920, 1080)) display.start() url = cli_parsed.single http_object = objects.HTTPTableObject() http_object.remote_system = url http_object.set_paths(cli_parsed.d, None) web_index_head = create_web_index_head(cli_parsed.date, cli_parsed.time) print('Attempting to screenshot {0}'.format(http_object.remote_system)) driver = create_driver(cli_parsed) result, driver = capture_host(cli_parsed, http_object, driver) result = default_creds_category(result) if cli_parsed.resolve: result.resolved = resolve_host(result.remote_system) driver.quit() if display is not None: display.stop() html = result.create_table_html() with open(os.path.join(cli_parsed.d, 'report.html'), 'w') as f: f.write(web_index_head) f.write(create_table_head()) f.write(html) f.write("</table><br>")
def single_mode(cli_parsed): display = None if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host if not cli_parsed.show_selenium: display = Display(visible=0, size=(1920, 1080)) display.start() 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 url = cli_parsed.single http_object = objects.HTTPTableObject() if cli_parsed.active_scan: http_object._active_scan = True http_object.remote_system = url http_object.set_paths(cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.active_scan: http_object._active_scan = True web_index_head = create_web_index_head(cli_parsed.date, cli_parsed.time) if cli_parsed.cycle is not None: print 'Making baseline request for {0}'.format( http_object.remote_system) else: print 'Attempting to screenshot {0}'.format(http_object.remote_system) driver = create_driver(cli_parsed) result, driver = capture_host(cli_parsed, http_object, driver) result = default_creds_category(result) if cli_parsed.resolve: result.resolved = resolve_host(result.remote_system) driver.quit() if cli_parsed.cycle is not None and result.error_state is None: ua_dict = get_ua_values(cli_parsed.cycle) for browser_key, user_agent_value in ua_dict.iteritems(): print 'Now making web request with: {0} for {1}'.format( browser_key, result.remote_system) ua_object = objects.UAObject(browser_key, user_agent_value) ua_object.copy_data(result) driver = create_driver(cli_parsed, user_agent_value) ua_object, driver = capture_host(cli_parsed, ua_object, driver) ua_object = default_creds_category(ua_object) result.add_ua_data(ua_object) driver.quit() if display is not None: display.stop() html = result.create_table_html() with open(os.path.join(cli_parsed.d, 'report.html'), 'w') as f: f.write(web_index_head) f.write(create_table_head()) f.write(html) f.write("</table><br>")
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 single_mode(cli_parsed): display = None if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host if not cli_parsed.show_selenium: display = Display(visible=0, size=(1920, 1080)) display.start() 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 url = cli_parsed.single http_object = objects.HTTPTableObject() if cli_parsed.active_scan: http_object._active_scan = True http_object.remote_system = url http_object.set_paths( cli_parsed.d, 'baseline' if cli_parsed.cycle is not None else None) if cli_parsed.active_scan: http_object._active_scan = True web_index_head = create_web_index_head(cli_parsed.date, cli_parsed.time) if cli_parsed.cycle is not None: print 'Making baseline request for {0}'.format(http_object.remote_system) else: print 'Attempting to screenshot {0}'.format(http_object.remote_system) driver = create_driver(cli_parsed) result, driver = capture_host(cli_parsed, http_object, driver) result = default_creds_category(result) if cli_parsed.resolve: result.resolved = resolve_host(result.remote_system) driver.quit() if cli_parsed.cycle is not None and result.error_state is None: ua_dict = get_ua_values(cli_parsed.cycle) for browser_key, user_agent_value in ua_dict.iteritems(): print 'Now making web request with: {0} for {1}'.format( browser_key, result.remote_system) ua_object = objects.UAObject(browser_key, user_agent_value) ua_object.copy_data(result) driver = create_driver(cli_parsed, user_agent_value) ua_object, driver = capture_host(cli_parsed, ua_object, driver) ua_object = default_creds_category(ua_object) result.add_ua_data(ua_object) driver.quit() if display is not None: display.stop() html = result.create_table_html() with open(os.path.join(cli_parsed.d, 'report.html'), 'w') as f: f.write(web_index_head) f.write(create_table_head()) f.write(html) f.write("</table><br>")
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 single_mode(cli_parsed): display = None if cli_parsed.web: create_driver = selenium_module.create_driver capture_host = selenium_module.capture_host if not cli_parsed.show_selenium: display = Display(visible=0, size=(1920, 1080)) display.start() elif cli_parsed.headless: create_driver = phantomjs_module.create_driver capture_host = phantomjs_module.capture_host url = cli_parsed.single http_object = objects.HTTPTableObject() http_object.remote_system = url http_object.set_paths(cli_parsed.d, "baseline" if cli_parsed.cycle is not None else None) web_index_head = create_web_index_head(cli_parsed.date, cli_parsed.time) if cli_parsed.cycle is not None: print "Making baseline request for {0}".format(http_object.remote_system) else: print "Attempting to screenshot {0}".format(http_object.remote_system) driver = create_driver(cli_parsed) result, driver = capture_host(cli_parsed, http_object, driver) result = default_creds_category(result) if cli_parsed.resolve: result.resolved = resolve_host(result.remote_system) driver.quit() if cli_parsed.cycle is not None and result.error_state is None: ua_dict = get_ua_values(cli_parsed.cycle) for browser_key, user_agent_value in ua_dict.iteritems(): print "Now making web request with: {0} for {1}".format(browser_key, result.remote_system) ua_object = objects.UAObject(browser_key, user_agent_value) ua_object.copy_data(result) driver = create_driver(cli_parsed, user_agent_value) ua_object, driver = capture_host(cli_parsed, ua_object, driver) ua_object = default_creds_category(ua_object) result.add_ua_data(ua_object) driver.quit() if display is not None: display.stop() html = result.create_table_html() with open(os.path.join(cli_parsed.d, "report.html"), "w") as f: f.write(web_index_head) f.write(create_table_head()) f.write(html) f.write("</table><br>")
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()