@@ -257,11 +257,10 @@ def enumerate(self, altquery=False):
257257
258258
259259class enumratorBaseThreaded (multiprocessing .Process , enumratorBase ):
260- def __init__ (self , base_url , engine_name , domain , subdomains = None , q = None , lock = threading . Lock (), silent = False , verbose = True ):
260+ def __init__ (self , base_url , engine_name , domain , subdomains = None , q = None , silent = False , verbose = True ):
261261 subdomains = subdomains or []
262262 enumratorBase .__init__ (self , base_url , engine_name , domain , subdomains , silent = silent , verbose = verbose )
263263 multiprocessing .Process .__init__ (self )
264- self .lock = lock
265264 self .q = q
266265 return
267266
@@ -525,7 +524,6 @@ def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True):
525524 subdomains = subdomains or []
526525 self .base_url = 'https://searchdns.netcraft.com/?restriction=site+ends+with&host={domain}'
527526 self .engine_name = "Netcraft"
528- self .lock = threading .Lock ()
529527 super (NetcraftEnum , self ).__init__ (self .base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
530528 self .q = q
531529 return
@@ -538,10 +536,10 @@ def req(self, url, cookies=None):
538536 self .print_ (e )
539537 resp = None
540538 return resp
541-
539+
542540 def should_sleep (self ):
543541 time .sleep (random .randint (1 , 2 ))
544- return
542+ return
545543
546544 def get_next (self , resp ):
547545 link_regx = re .compile ('<a.*?href="(.*?)">Next Page' )
@@ -602,9 +600,8 @@ def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True):
602600 base_url = 'https://dnsdumpster.com/'
603601 self .live_subdomains = []
604602 self .engine_name = "DNSdumpster"
605- self .threads = 70
606- self .lock = threading .BoundedSemaphore (value = self .threads )
607603 self .q = q
604+ self .lock = None
608605 super (DNSdumpster , self ).__init__ (base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
609606 return
610607
@@ -645,6 +642,7 @@ def get_csrftoken(self, resp):
645642 return token .strip ()
646643
647644 def enumerate (self ):
645+ self .lock = threading .BoundedSemaphore (value = 70 )
648646 resp = self .req ('GET' , self .base_url )
649647 token = self .get_csrftoken (resp )
650648 params = {'csrfmiddlewaretoken' : token , 'targetip' : self .domain }
@@ -680,7 +678,6 @@ def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True):
680678 subdomains = subdomains or []
681679 base_url = 'https://www.virustotal.com/ui/domains/{domain}/subdomains'
682680 self .engine_name = "Virustotal"
683- self .lock = threading .Lock ()
684681 self .q = q
685682 super (Virustotal , self ).__init__ (base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
686683 self .url = self .base_url .format (domain = self .domain )
@@ -732,7 +729,6 @@ def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True):
732729 subdomains = subdomains or []
733730 base_url = 'https://www.threatcrowd.org/searchApi/v2/domain/report/?domain={domain}'
734731 self .engine_name = "ThreatCrowd"
735- self .lock = threading .Lock ()
736732 self .q = q
737733 super (ThreatCrowd , self ).__init__ (base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
738734 return
@@ -771,7 +767,6 @@ def __init__(self, domain, subdomains=None, q=None, silent=False, verbose=True):
771767 subdomains = subdomains or []
772768 base_url = 'https://crt.sh/?q=%25.{domain}'
773769 self .engine_name = "SSL Certificates"
774- self .lock = threading .Lock ()
775770 self .q = q
776771 super (CrtSearch , self ).__init__ (base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
777772 return
@@ -818,13 +813,11 @@ def extract_domains(self, resp):
818813 print (e )
819814 pass
820815
821-
822816class PassiveDNS (enumratorBaseThreaded ):
823817 def __init__ (self , domain , subdomains = None , q = None , silent = False , verbose = True ):
824818 subdomains = subdomains or []
825819 base_url = 'https://api.sublist3r.com/search.php?domain={domain}'
826820 self .engine_name = "PassiveDNS"
827- self .lock = threading .Lock ()
828821 self .q = q
829822 super (PassiveDNS , self ).__init__ (base_url , self .engine_name , domain , subdomains , q = q , silent = silent , verbose = verbose )
830823 return
@@ -862,8 +855,7 @@ class portscan():
862855 def __init__ (self , subdomains , ports ):
863856 self .subdomains = subdomains
864857 self .ports = ports
865- self .threads = 20
866- self .lock = threading .BoundedSemaphore (value = self .threads )
858+ self .lock = None
867859
868860 def port_scan (self , host , ports ):
869861 openports = []
@@ -883,6 +875,7 @@ def port_scan(self, host, ports):
883875 print ("%s%s%s - %sFound open ports:%s %s%s%s" % (G , host , W , R , W , Y , ', ' .join (openports ), W ))
884876
885877 def run (self ):
878+ self .lock = threading .BoundedSemaphore (value = 20 )
886879 for subdomain in self .subdomains :
887880 t = threading .Thread (target = self .port_scan , args = (subdomain , self .ports ))
888881 t .start ()
0 commit comments