def __init__(self): self.about = AboutProject() self.url_req = URLRequest() Cmd.doc_header = "Core Commands" Cmd.prompt = "{}belati{} > ".format(UNDERLINE, ENDC) Cmd.path_complete Cmd.__init__(self) self.list_parameter = ['domain', 'username', 'email', 'orgcomp', 'proxy', 'proxy_file'] self.parameters = {} self.multiple_proxy_list = [] self.current_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') self.show_banner() self.conf = Config() self.db = Database()
def __init__(self): self.about = AboutProject() self.url_req = URLRequest() # Passing arguments parser = argparse.ArgumentParser( description='=[ {} {} by {}] ({})'.format( self.about.__name__, self.about.__version__, self.about.__author__, self.about.__giturl__)) parser.add_argument( '-d', action='store', dest='domain', help= 'Perform OSINT from Domain e.g petruknisme.com(without protocol http/https)' ) parser.add_argument('-u', action='store', dest='username', help='Perform OSINT from username e.g petruknisme') parser.add_argument('-e', action='store', dest='email', help='Perform OSINT from email address') parser.add_argument( '-c', action='store', dest='orgcomp', help= 'Perform OSINT from Organization or Company Name, use double quote' ) parser.add_argument('-o', action='store', dest='output_files', help='Save log for output files') parser.add_argument('--db-file', action='store', dest='db_file_location', help='Specify Database File Location(SQLite3)') parser.add_argument( '--single-proxy', action='store', dest='single_proxy', help='Proxy support with single IP (ex: http://127.0.0.1:8080)') parser.add_argument('--proxy-file', action='store', dest='proxy_file_location', help='Proxy support from Proxy List File') parser.add_argument('--auto-proxy', action='store_true', dest='auto_proxy', default=True, help='Auto Proxy Support( Coming soon )') parser.add_argument('--version', action='version', version='=[ {} {} by {}] ({})'.format( self.about.__name__, self.about.__version__, self.about.__author__, self.about.__giturl__)) results = parser.parse_args() domain = results.domain username = results.username email = results.email orgcomp = results.orgcomp single_proxy = results.single_proxy proxy_file_location = results.proxy_file_location proxy = "" self.multiple_proxy_list = [] self.show_banner() conf = Config() self.db = Database() # Setup project self.project_id = self.db.create_new_project(domain, orgcomp, datetime.datetime.now()) log.console_log("{}[+] Creating New Belati Project... {}".format(G, W)) log.console_log( "---------------------------------------------------------") log.console_log("Project ID: {}".format(str(self.project_id))) log.console_log("Project Domain: {}".format(domain)) log.console_log("Project Organization/Company: {}".format(orgcomp)) log.console_log( "---------------------------------------------------------") if domain is not None: if single_proxy is not None: log.console_log("{}[*] Checking Proxy Status... {}".format( G, W)) if self.check_single_proxy_status(single_proxy, "http://" + str(domain)) == 'ok': proxy = single_proxy else: log.console_log( '{}[-] Please use another proxy or disable proxy! {}'. format(R, W)) sys.exit() if proxy_file_location is not None: log.console_log( "{}[*] Checking Proxy Status from file {}{}".format( G, proxy_file_location, W)) self.check_multiple_proxy_status(proxy_file_location, "http://" + str(domain)) proxy = self.multiple_proxy_list extract_domain = tldextract.extract(domain) self.check_domain(self.url_req.ssl_checker(domain), proxy) self.banner_grab(self.url_req.ssl_checker(domain), proxy) if extract_domain.subdomain == "": self.robots_scraper(self.url_req.ssl_checker(domain), proxy) self.enumerate_subdomains(domain, proxy) self.scan_DNS_zone(domain) self.harvest_email_search(domain, proxy) self.harvest_email_pgp(domain, proxy) else: domain = extract_domain.domain + '.' + extract_domain.suffix self.robots_scraper(self.url_req.ssl_checker(domain), proxy) self.enumerate_subdomains(domain, proxy) self.scan_DNS_zone(domain) self.harvest_email_search(domain, proxy) self.harvest_email_pgp(domain, proxy) self.harvest_document(domain, proxy) if username is not None: self.username_checker(username) if orgcomp is not None: self.gather_company(orgcomp, proxy) if email is not None: log.console_log("This feature will be coming soon. Be patient :)") log.console_log( "{}All done sir! All log saved in log directory and dowloaded file saved in belatiFiles {}" .format(Y, W))