def run(self): """ OneForAll running entrance :return: All subdomain results :rtype: list """ print(oneforall_banner) dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(f'[*] Starting OneForAll @ {dt}\n') logger.log('DEBUG', 'Python ' + utils.python_version()) logger.log('DEBUG', 'OneForAll ' + version) utils.check_dep() self.access_internet, self.in_china = utils.get_net_env() if self.access_internet and settings.enable_check_version: utils.check_version(version) logger.log('INFOR', 'Start running OneForAll') self.config_param() self.check_param() self.domains = utils.get_domains(self.target, self.targets) count = len(self.domains) logger.log('INFOR', f'Got {count} domains') if not count: logger.log('FATAL', 'Failed to obtain domain') exit(1) for domain in self.domains: self.domain = utils.get_main_domain(domain) self.main() if count > 1: utils.export_all(self.alive, self.fmt, self.path, self.datas) logger.log('INFOR', 'Finished OneForAll')
def run(self): """ OneForAll running entrance :return: All subdomain results :rtype: list """ print(oneforall_banner) dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(f'[*] Starting OneForAll @ {dt}\n') utils.check_env() if settings.enable_check_version: utils.check_version(version) logger.log('DEBUG', 'Python ' + utils.python_version()) logger.log('DEBUG', 'OneForAll ' + version) logger.log('INFOR', 'Start running OneForAll') self.config_param() self.check_param() self.domains = utils.get_domains(self.target, self.targets) if self.domains: for domain in self.domains: self.domain = utils.get_main_domain(domain) self.main() utils.export_all(self.alive, self.format, self.path, self.datas) else: logger.log('FATAL', 'Failed to obtain domain') logger.log('INFOR', 'Finished OneForAll')
def export(target, type='target', db=None, alive=False, limit=None, path=None, format='csv', show=False): """ OneForAll export from database module Example: python3 dbexport.py --target name --format csv --dir= ./result.csv python3 dbexport.py --db result.db --target name --show False python3 dbexport.py --target table_name --tb True --show False Note: --format rst/csv/tsv/json/yaml/html/jira/xls/xlsx/dbf/latex/ods (result format) --path Result directory (default directory is ./results) :param str target: Table to be exported :param str type: Type of target :param str db: Database path to be exported (default ./results/result.sqlite3) :param bool alive: Only export the results of alive subdomains (default False) :param str limit: Export limit (default None) :param str format: Result format (default csv) :param str path: Result directory (default None) :param bool show: Displays the exported data in terminal (default False) """ if type == 'target': database = Database(db) domains = utils.get_domains(target) datas = [] if domains: for domain in domains: table_name = domain_to_table(domain) rows = database.export_data(table_name, alive, limit) if rows is None: continue data = export_data(format, path, rows, show, table_name, target) datas.extend(data) database.close() if len(domains) > 1: utils.export_all(alive, format, path, datas) elif type == 'table': database = Database(db) rows = database.export_data(target, alive, limit) data = export_data(format, path, rows, show, target, target) database.close() return data
def run(self): print(banner) dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(f'[*] Starting OneForAll @ {dt}\n') logger.log('INFOR', f'开始运行OneForAll') self.domains = utils.get_domains(self.target) if self.domains: for self.domain in self.domains: self.main() if len(self.domains) >= 2: utils.export_all(self.format, self.datas) else: logger.log('FATAL', f'获取域名失败') logger.log('INFOR', f'结束运行OneForAll')
def run(self): print(banner) dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') print(f'[*] Starting OneForAll @ {dt}\n') logger.log('DEBUG', 'Python ' + utils.python_version()) logger.log('DEBUG', 'OneForAll ' + version) logger.log('INFOR', f'开始运行OneForAll') self.domains = utils.get_domains(self.target) if self.domains: for self.domain in self.domains: self.main() utils.export_all(self.format, self.path, self.datas) else: logger.log('FATAL', f'获取域名失败') logger.log('INFOR', f'结束运行OneForAll')
def export_data(target, db=None, alive=False, limit=None, path=None, fmt='csv', show=False): """ Garuda export from database module Example: python3 export.py --target name --fmt csv --dir= ./result.csv python3 export.py --target name --tb True --show False python3 export.py --db result.db --target name --show False Note: --fmt csv/json (result format) --path Result directory (default directory is ./results) :param str target: Table to be exported :param str db: Database path to be exported (default ./results/result.sqlite3) :param bool alive: Only export the results of alive subdomains (default False) :param str limit: Export limit (default None) :param str fmt: Result format (default csv) :param str path: Result directory (default None) :param bool show: Displays the exported data in terminal (default False) """ database = Database(db) domains = utils.get_domains(target) datas = list() if domains: for domain in domains: table_name = domain.replace('.', '_') rows = database.export_data(table_name, alive, limit) if rows is None: continue data, _, _ = do_export(fmt, path, rows, show, domain, target) datas.extend(data) database.close() if len(domains) > 1: utils.export_all(alive, fmt, path, datas) return datas
def run(self): """ OneForAll运行入口 :return: 总的子域结果 :rtype: list """ utils.check_env() #print(banner) dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') #print(f'[*] Starting OneForAll @ {dt}\n') #logger.log('DEBUG', 'Python ' + utils.python_version()) #logger.log('DEBUG', 'OneForAll ' + version) logger.log('INFOR', f'开始运行OneForAll') self.config() self.domains = utils.get_domains(self.target) if self.domains: for self.domain in self.domains: self.main() utils.export_all(self.format, self.path, self.datas) else: logger.log('FATAL', f'获取域名失败') logger.log('INFOR', f'结束运行OneForAll')