MCPcopy Create free account
hub / github.com/blacklanternsecurity/bbot / setup

Method setup

bbot/modules/lightfuzz/lightfuzz.py:39–74  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

37 _module_threads = 4
38
39 async def setup(self):
40 self.event_dict = {}
41 self.interactsh_subdomain_tags = {}
42 self.interactsh_instance = None
43 self.interactsh_domain = None
44 self.disable_post = self.config.get("disable_post", False)
45 self.try_post_as_get = self.config.get("try_post_as_get", False)
46 self.try_get_as_post = self.config.get("try_get_as_post", False)
47 self.enabled_submodules = self.config.get("enabled_submodules")
48 self.interactsh_disable = self.scan.config.get("interactsh_disable", False)
49 self.avoid_wafs = self.scan.config.get("avoid_wafs", True)
50 self.submodules = {}
51
52 if not self.enabled_submodules:
53 return False, "Lightfuzz enabled without any submodules. Must enable at least one submodule."
54
55 for submodule_name in self.enabled_submodules:
56 try:
57 submodule_module = importlib.import_module(f"bbot.modules.lightfuzz.submodules.{submodule_name}")
58 submodule_class = getattr(submodule_module, submodule_name)
59 except ImportError:
60 return False, f"Invalid Lightfuzz submodule ({submodule_name}) specified in enabled_modules"
61 self.submodules[submodule_name] = submodule_class
62
63 interactsh_needed = any(submodule.uses_interactsh for submodule in self.submodules.values())
64 if interactsh_needed and not self.interactsh_disable:
65 try:
66 self.interactsh_instance = self.helpers.interactsh()
67 self.interactsh_domain = await self.interactsh_instance.register(callback=self.interactsh_callback)
68 if not self.interactsh_domain:
69 self.warning("Interactsh failure: No domain returned from self.interactsh_instance.register()")
70 self.interactsh_instance = None
71 except InteractshError as e:
72 self.warning(f"Interactsh failure: {e}")
73 self.interactsh_instance = None
74 return True
75
76 async def interactsh_callback(self, r):
77 full_id = r.get("full-id", None)

Callers

nothing calls this directly

Calls 5

valuesMethod · 0.80
interactshMethod · 0.80
getMethod · 0.45
registerMethod · 0.45
warningMethod · 0.45

Tested by

no test coverage detected