Skip to content

Commit

Permalink
Provide the option to specify which search engines to use
Browse files Browse the repository at this point in the history
Provide the option to specify which search engines to use
  • Loading branch information
aboul3la authored Nov 16, 2016
2 parents f296624 + c9b7eed commit ef37c2c
Showing 1 changed file with 29 additions and 3 deletions.
32 changes: 29 additions & 3 deletions sublist3r.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ def parse_args():
parser.add_argument('-p', '--ports', help='Scan the found subdomains against specified tcp ports')
parser.add_argument('-v', '--verbose', help='Enable Verbosity and display results in realtime',nargs='?', default=False)
parser.add_argument('-t', '--threads', help='Number of threads to use for subbrute bruteforce', type=int, default=30)
parser.add_argument('-e', '--engines', help='Specify a comma-separated list of search engines')
parser.add_argument('-o', '--output', help='Save the results to text file')
return parser.parse_args()

Expand Down Expand Up @@ -884,7 +885,7 @@ def run(self):
t = threading.Thread(target=self.port_scan,args=(subdomain,self.ports))
t.start()

def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce):
def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce, engines):
bruteforce_list = set()
search_list = set()

Expand Down Expand Up @@ -915,8 +916,32 @@ def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce):
if verbose and not silent:
print(Y+"[-] verbosity is enabled, will show the subdomains results in realtime"+W)

supported_engines = {'baidu':BaiduEnum,
'yahoo':YahooEnum,
'google':GoogleEnum,
'bing':BingEnum,
'ask':AskEnum,
'netcraft':NetcraftEnum,
'dnsdumpster':DNSdumpster,
'virstotal':Virustotal,
'threatcrowd':ThreatCrowd,
'ssl':CrtSearch,
'passivedns':PassiveDNS
}

chosenEnums = []

if engines == None:
chosenEnums = [BaiduEnum, YahooEnum, GoogleEnum, BingEnum, AskEnum,
NetcraftEnum, DNSdumpster, Virustotal, ThreatCrowd, CrtSearch, PassiveDNS]
else:
engines = engines.split(',')
for engine in engines:
if supported_engines.has_key(engine.lower()):
chosenEnums.append(supported_engines[engine.lower()])

#Start the engines enumeration
enums = [enum(domain, [], q=subdomains_queue, silent=silent, verbose=verbose) for enum in (BaiduEnum, YahooEnum, GoogleEnum, BingEnum, AskEnum, NetcraftEnum, DNSdumpster, Virustotal, ThreatCrowd, CrtSearch, PassiveDNS)]
enums = [enum(domain, [], q=subdomains_queue, silent=silent, verbose=verbose) for enum in chosenEnums]
for enum in enums:
enum.start()
for enum in enums:
Expand Down Expand Up @@ -968,9 +993,10 @@ def main(domain, threads, savefile, ports, silent, verbose, enable_bruteforce):
ports = args.ports
enable_bruteforce = args.bruteforce
verbose = args.verbose
engines = args.engines
if verbose or verbose is None:
verbose = True


banner()
res = main(domain, threads, savefile, ports, silent=False, verbose=verbose, enable_bruteforce=enable_bruteforce)
res = main(domain, threads, savefile, ports, silent=False, verbose=verbose, enable_bruteforce=enable_bruteforce, engines=engines)

0 comments on commit ef37c2c

Please sign in to comment.