bbot 2.5.0.6721rc0__py3-none-any.whl → 2.5.0.6734rc0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of bbot might be problematic. Click here for more details.

bbot/__init__.py CHANGED
@@ -1,5 +1,5 @@
1
1
  # version placeholder (replaced by poetry-dynamic-versioning)
2
- __version__ = "v2.5.0.6721rc"
2
+ __version__ = "v2.5.0.6734rc"
3
3
 
4
4
  from .scanner import Scanner, Preset
5
5
 
@@ -196,7 +196,7 @@ class DepsInstaller:
196
196
  deps_common = preloaded["deps"]["common"]
197
197
  if deps_common:
198
198
  for dep_common in deps_common:
199
- if self.setup_status.get(dep_common, False) is True:
199
+ if self.setup_status.get(dep_common, False) is True and self.deps_behavior != "force_install":
200
200
  log.debug(
201
201
  f'Skipping installation of dependency "{dep_common}" for module "{module}" since it is already installed'
202
202
  )
bbot/core/helpers/misc.py CHANGED
@@ -1309,7 +1309,7 @@ def make_netloc(host, port=None):
1309
1309
  return f"{host}:{port}"
1310
1310
 
1311
1311
 
1312
- def which(*executables):
1312
+ def which(*executables, path=None):
1313
1313
  """Finds the full path of the first available executable from a list of executables.
1314
1314
 
1315
1315
  Args:
@@ -1325,7 +1325,7 @@ def which(*executables):
1325
1325
  import shutil
1326
1326
 
1327
1327
  for e in executables:
1328
- location = shutil.which(e)
1328
+ location = shutil.which(e, path=path)
1329
1329
  if location:
1330
1330
  return location
1331
1331
 
bbot/core/shared_deps.py CHANGED
@@ -108,6 +108,24 @@ DEP_CHROMIUM = [
108
108
  "when": "ansible_facts['os_family'] == 'Debian'",
109
109
  "ignore_errors": True,
110
110
  },
111
+ {
112
+ "name": "Get latest Chromium version (Darwin x86_64)",
113
+ "uri": {
114
+ "url": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac%2FLAST_CHANGE?alt=media",
115
+ "return_content": True,
116
+ },
117
+ "register": "chromium_version_darwin_x86_64",
118
+ "when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'x86_64'",
119
+ },
120
+ {
121
+ "name": "Get latest Chromium version (Darwin arm64)",
122
+ "uri": {
123
+ "url": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac_Arm%2FLAST_CHANGE?alt=media",
124
+ "return_content": True,
125
+ },
126
+ "register": "chromium_version_darwin_arm64",
127
+ "when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'arm64'",
128
+ },
111
129
  {
112
130
  "name": "Download Chromium (Debian)",
113
131
  "unarchive": {
@@ -119,6 +137,26 @@ DEP_CHROMIUM = [
119
137
  "when": "ansible_facts['os_family'] == 'Debian'",
120
138
  "ignore_errors": True,
121
139
  },
140
+ {
141
+ "name": "Download Chromium (Darwin x86_64)",
142
+ "unarchive": {
143
+ "src": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac%2F{{ chromium_version_darwin_x86_64.content }}%2Fchrome-mac.zip?alt=media",
144
+ "remote_src": True,
145
+ "dest": "#{BBOT_TOOLS}",
146
+ "creates": "#{BBOT_TOOLS}/chrome-mac",
147
+ },
148
+ "when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'x86_64'",
149
+ },
150
+ {
151
+ "name": "Download Chromium (Darwin arm64)",
152
+ "unarchive": {
153
+ "src": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac_Arm%2F{{ chromium_version_darwin_arm64.content }}%2Fchrome-mac.zip?alt=media",
154
+ "remote_src": True,
155
+ "dest": "#{BBOT_TOOLS}",
156
+ "creates": "#{BBOT_TOOLS}/chrome-mac",
157
+ },
158
+ "when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'arm64'",
159
+ },
122
160
  # Because Ubuntu is a special snowflake, we have to bend over backwards to fix the chrome sandbox
123
161
  # see https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md
124
162
  {
bbot/modules/base.py CHANGED
@@ -103,6 +103,8 @@ class BaseModule:
103
103
 
104
104
  # disable the module after this many failed attempts in a row
105
105
  _api_failure_abort_threshold = 3
106
+ # whether to retry on 429s when first pinging the API at scan start
107
+ _ping_retry_on_http_429 = False
106
108
 
107
109
  default_discovery_context = "{module} discovered {event.type}: {event.data}"
108
110
 
@@ -381,8 +383,9 @@ class BaseModule:
381
383
  """
382
384
  if url is None:
383
385
  url = getattr(self, "ping_url", "")
386
+ retry_on_http_429 = getattr(self, "_ping_retry_on_http_429", False)
384
387
  if url:
385
- r = await self.api_request(url)
388
+ r = await self.api_request(url, retry_on_http_429=retry_on_http_429)
386
389
  if getattr(r, "status_code", 0) != 200:
387
390
  response_text = getattr(r, "text", "no response from server")
388
391
  raise ValueError(response_text)
@@ -1200,6 +1203,7 @@ class BaseModule:
1200
1203
  - cancelling after too many failed attempts
1201
1204
  """
1202
1205
  url = args[0] if args else kwargs.pop("url", "")
1206
+ retry_on_http_429 = kwargs.pop("retry_on_http_429", True)
1203
1207
 
1204
1208
  # loop until we have a successful request
1205
1209
  for _ in range(self.api_retries):
@@ -1225,7 +1229,7 @@ class BaseModule:
1225
1229
  else:
1226
1230
  # sleep for a bit if we're being rate limited
1227
1231
  retry_after = self._get_retry_after(r)
1228
- if retry_after or status_code == 429:
1232
+ if (retry_after or status_code == 429) and retry_on_http_429:
1229
1233
  sleep_interval = int(retry_after) if retry_after is not None else self._429_sleep_interval
1230
1234
  if retry_after and retry_after > self._429_max_sleep_interval:
1231
1235
  self.verbose(
bbot/modules/c99.py CHANGED
@@ -19,7 +19,7 @@ class c99(subdomain_enum_apikey):
19
19
 
20
20
  async def ping(self):
21
21
  url = f"{self.base_url}/randomnumber?key={{api_key}}&between=1,100&json"
22
- response = await self.api_request(url)
22
+ response = await self.api_request(url, retry_on_http_429=False)
23
23
  assert response.json()["success"] is True, getattr(response, "text", "no response from server")
24
24
 
25
25
  async def request_url(self, query):
bbot/modules/censys.py CHANGED
@@ -29,7 +29,7 @@ class censys(subdomain_enum_apikey):
29
29
 
30
30
  async def ping(self):
31
31
  url = f"{self.base_url}/v1/account"
32
- resp = await self.api_request(url)
32
+ resp = await self.api_request(url, retry_on_http_429=False)
33
33
  d = resp.json()
34
34
  assert isinstance(d, dict), f"Invalid response from {url}: {resp}"
35
35
  quota = d.get("quota", {})
bbot/modules/fullhunt.py CHANGED
@@ -22,7 +22,7 @@ class fullhunt(subdomain_enum_apikey):
22
22
 
23
23
  async def ping(self):
24
24
  url = f"{self.base_url}/auth/status"
25
- j = (await self.api_request(url)).json()
25
+ j = (await self.api_request(url, retry_on_http_429=False)).json()
26
26
  remaining = j["user_credits"]["remaining_credits"]
27
27
  assert remaining > 0, "No credits remaining"
28
28
 
bbot/modules/gowitness.py CHANGED
@@ -2,6 +2,7 @@ import os
2
2
  import asyncio
3
3
  import aiosqlite
4
4
  import multiprocessing
5
+ import platform
5
6
  from pathlib import Path
6
7
  from contextlib import suppress
7
8
  from shutil import copyfile, copymode
@@ -23,6 +24,7 @@ class gowitness(BaseModule):
23
24
  "output_path": "",
24
25
  "social": False,
25
26
  "idle_timeout": 1800,
27
+ "chrome_path": "",
26
28
  }
27
29
  options_desc = {
28
30
  "version": "Gowitness version",
@@ -33,6 +35,7 @@ class gowitness(BaseModule):
33
35
  "output_path": "Where to save screenshots",
34
36
  "social": "Whether to screenshot social media webpages",
35
37
  "idle_timeout": "Skip the current gowitness batch if it stalls for longer than this many seconds",
38
+ "chrome_path": "Path to chrome executable",
36
39
  }
37
40
  deps_common = ["chromium"]
38
41
  deps_pip = ["aiosqlite"]
@@ -67,29 +70,54 @@ class gowitness(BaseModule):
67
70
  self.base_path = Path(output_path) / "gowitness"
68
71
  else:
69
72
  self.base_path = self.scan.home / "gowitness"
73
+
70
74
  self.chrome_path = None
71
- custom_chrome_path = self.helpers.tools_dir / "chrome-linux" / "chrome"
72
- if custom_chrome_path.is_file():
73
- self.chrome_path = custom_chrome_path
75
+ config_chrome_path = self.config.get("chrome_path")
76
+ if config_chrome_path:
77
+ config_chrome_path = Path(config_chrome_path)
78
+ if not config_chrome_path.is_file():
79
+ return False, f"Could not find custom Chrome path at {config_chrome_path}"
80
+ self.chrome_path = config_chrome_path
81
+ else:
82
+ if platform.system() == "Darwin":
83
+ bbot_chrome_path = (
84
+ self.helpers.tools_dir / "chrome-mac" / "Chromium.app" / "Contents" / "MacOS" / "Chromium"
85
+ )
86
+ else:
87
+ bbot_chrome_path = self.helpers.tools_dir / "chrome-linux" / "chrome"
88
+ if bbot_chrome_path.is_file():
89
+ self.chrome_path = bbot_chrome_path
90
+
91
+ # make sure our chrome path works
92
+ chrome_test_pass = False
93
+ if self.chrome_path and self.chrome_path.is_file():
94
+ chrome_test_proc = await self.run_process([str(self.chrome_path), "--version"])
95
+ if getattr(chrome_test_proc, "returncode", 1) == 0:
96
+ self.verbose(f"Found chrome executable at {self.chrome_path}")
97
+ chrome_test_pass = True
98
+
99
+ if not chrome_test_pass:
100
+ # last resort - try to find a working chrome install
101
+ for binary in ("Google Chrome", "chrome", "chromium", "chromium-browser"):
102
+ binary_path = self.helpers.which(binary)
103
+ if binary_path and Path(binary_path).is_file():
104
+ chrome_test_proc = await self.run_process([str(binary_path), "--version"])
105
+ if getattr(chrome_test_proc, "returncode", 1) == 0:
106
+ self.verbose(f"Found chrome executable at {binary_path}")
107
+ chrome_test_pass = True
108
+ break
109
+
110
+ if not chrome_test_pass:
111
+ return (
112
+ False,
113
+ "Failed to set up Google chrome. Please install manually and set `chrome_path`, or try again with --force-deps.",
114
+ )
74
115
 
75
116
  # fix ubuntu-specific sandbox bug
76
117
  chrome_devel_sandbox = self.helpers.tools_dir / "chrome-linux" / "chrome_sandbox"
77
118
  if chrome_devel_sandbox.is_file():
78
119
  os.environ["CHROME_DEVEL_SANDBOX"] = str(chrome_devel_sandbox)
79
120
 
80
- # make sure we have a working chrome install
81
- chrome_test_pass = False
82
- for binary in ("chrome", "chromium", "chromium-browser", custom_chrome_path):
83
- binary_path = self.helpers.which(binary)
84
- if binary_path and Path(binary_path).is_file():
85
- chrome_test_proc = await self.run_process([binary_path, "--version"])
86
- if getattr(chrome_test_proc, "returncode", 1) == 0:
87
- self.verbose(f"Found chrome executable at {binary_path}")
88
- chrome_test_pass = True
89
- break
90
- if not chrome_test_pass:
91
- return False, "Failed to set up Google chrome. Please install manually or try again with --force-deps."
92
-
93
121
  self.db_path = self.base_path / "gowitness.sqlite3"
94
122
  self.screenshot_path = self.base_path / "screenshots"
95
123
  self.command = self.construct_command()
@@ -21,7 +21,7 @@ class passivetotal(subdomain_enum_apikey):
21
21
 
22
22
  async def ping(self):
23
23
  url = f"{self.base_url}/account/quota"
24
- j = (await self.api_request(url)).json()
24
+ j = (await self.api_request(url, retry_on_http_429=False)).json()
25
25
  limit = j["user"]["limits"]["search_api"]
26
26
  used = j["user"]["counts"]["search_api"]
27
27
  assert used < limit, "No quota remaining"
bbot/modules/zoomeye.py CHANGED
@@ -31,7 +31,7 @@ class zoomeye(subdomain_enum_apikey):
31
31
 
32
32
  async def ping(self):
33
33
  url = f"{self.base_url}/resources-info"
34
- r = await self.api_request(url)
34
+ r = await self.api_request(url, retry_on_http_429=False)
35
35
  assert int(r.json()["quota_info"]["remain_total_quota"]) > 0, "No quota remaining"
36
36
 
37
37
  async def handle_event(self, event):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bbot
3
- Version: 2.5.0.6721rc0
3
+ Version: 2.5.0.6734rc0
4
4
  Summary: OSINT automation for hackers.
5
5
  License: GPL-3.0
6
6
  Keywords: python,cli,automation,osint,threat-intel,intelligence,neo4j,scanner,python-library,hacking,recursion,pentesting,recon,command-line-tool,bugbounty,subdomains,security-tools,subdomain-scanner,osint-framework,attack-surface,subdomain-enumeration,osint-tool
@@ -1,4 +1,4 @@
1
- bbot/__init__.py,sha256=KY10JlAS1VN9gSNZwPChqV9dWla75AO4zXkw0f3qnTc,163
1
+ bbot/__init__.py,sha256=flICKkTgy2b-QXrvY4Rdyf7v8q_ya60puR0OqkTpdAc,163
2
2
  bbot/cli.py,sha256=1QJbANVw9Q3GFM92H2QRV2ds5756ulm08CDZwzwPpeI,11888
3
3
  bbot/core/__init__.py,sha256=l255GJE_DvUnWvrRb0J5lG-iMztJ8zVvoweDOfegGtI,46
4
4
  bbot/core/config/__init__.py,sha256=zYNw2Me6tsEr8hOOkLb4BQ97GB7Kis2k--G81S8vofU,342
@@ -16,7 +16,7 @@ bbot/core/helpers/bloom.py,sha256=gk02rO6x3F5MICa7ZUDsinRudwoGAifsbiyiMCwd0Gs,27
16
16
  bbot/core/helpers/cache.py,sha256=1aMr3HVD45cDtHEG5xlznDUCywRgO9oRFidscrs_5sA,1537
17
17
  bbot/core/helpers/command.py,sha256=UBJa2RInEJtGjZ5e24PUQxPu1aTCIFkcCrrB0ERLdGI,12810
18
18
  bbot/core/helpers/depsinstaller/__init__.py,sha256=C2jF_ymSPIO68F649csYQql37ppPfUjFc8eq8LhgDkQ,66
19
- bbot/core/helpers/depsinstaller/installer.py,sha256=0sEut_B1rJKEnlTJvtk6nsWv1_1hJsbDRsVzylidmYc,19774
19
+ bbot/core/helpers/depsinstaller/installer.py,sha256=i5FPcASDV4OPTUAT_txnbj2mmLr4z7-sigDPNiMUjWo,19816
20
20
  bbot/core/helpers/depsinstaller/sudo_askpass.py,sha256=yGa2OQv30RO75QkMuG1iruKqb7amQxRVRRcHmvIeGhk,1276
21
21
  bbot/core/helpers/diff.py,sha256=X9MnHfz3IjWhD2grYTHzVPYoiWI9ZqjJul2Bp_BRGcE,10841
22
22
  bbot/core/helpers/dns/__init__.py,sha256=SboBeh4o81Xd4mAKhV10QzoRPDH4g28xC5PZVqVmJ28,35
@@ -29,7 +29,7 @@ bbot/core/helpers/files.py,sha256=9tVr3973QvX8l6o3TweD5_MCZiQpuJVffbzW0U7Z30U,57
29
29
  bbot/core/helpers/helper.py,sha256=u-q_Ka9pY1atvC-FChxYpURM7b3_0gaCNIHSG__Wi74,8538
30
30
  bbot/core/helpers/interactsh.py,sha256=VBYYH6-rWBofRsgemndK6iZNmyifOps8vgQOw2mac4k,12624
31
31
  bbot/core/helpers/libmagic.py,sha256=QMHyxjgDLb2jyjBvK1MQ-xt6WkGXhKcHu9ZP1li-sik,3460
32
- bbot/core/helpers/misc.py,sha256=vJOF827mJbq-u7eyk1Tc3NAILSEGdUm1Q1lYs3YKLwU,88735
32
+ bbot/core/helpers/misc.py,sha256=hi5iyzpLc6oFk5XrWQN7leuRDyuZtdWuKVBxTUpQ_RY,88757
33
33
  bbot/core/helpers/names_generator.py,sha256=N74pgt1vEJ8deBzV6eL5HiOEOG_6M7r0_MjbyxnPxfM,10516
34
34
  bbot/core/helpers/ntlm.py,sha256=P2Xj4-GPos2iAzw4dfk0FJp6oGyycGhu2x6sLDVjYjs,2573
35
35
  bbot/core/helpers/process.py,sha256=00uRpLMFi3Pt3uT8qXwAIhsXdoa7h-ifoXh0sGYgwqs,1702
@@ -48,7 +48,7 @@ bbot/core/helpers/wordcloud.py,sha256=QM8Z1N01_hXrRFKQjvRL-IzOOC7ZMKjuSBID3u77Sx
48
48
  bbot/core/helpers/yara_helper.py,sha256=ypwC_H_ovJp9BpOwqgPkIdZEwqWfvqrRdKlwzBLfm8Q,1592
49
49
  bbot/core/modules.py,sha256=G4rRVF1bQzp62kwpgxwMa_FTV4-huWwtcd6HpW9jQf0,31970
50
50
  bbot/core/multiprocess.py,sha256=ocQHanskJ09gHwe7RZmwNdZyCOQyeyUoIHCtLbtvXUk,1771
51
- bbot/core/shared_deps.py,sha256=mCMZeKSt46trzVqQDPGfXfEWg0Zw5YjiJx4BnsIRgHM,7640
51
+ bbot/core/shared_deps.py,sha256=NeJmyakKxQQjN-H3rYGwGuHeVxDiVM_KnDfeVEeIbf4,9498
52
52
  bbot/db/sql/models.py,sha256=SrUdDOBCICzXJBY29p0VvILhMQ1JCuh725bqvIYogX0,4884
53
53
  bbot/defaults.yml,sha256=TTxtlnyE9vPihXjkGMDbBpNRlGa48GhRXS23iFsKUAg,7830
54
54
  bbot/errors.py,sha256=xwQcD26nU9oc7-o0kv5jmEDTInmi8_W8eKAgQZZxdVM,953
@@ -63,7 +63,7 @@ bbot/modules/baddns.py,sha256=ubO3KDfcIMJnMjyZX5FWZ4GWxLSekV_JQV7QvsPjtD0,6693
63
63
  bbot/modules/baddns_direct.py,sha256=hWThpkXP87nnCRTlUh5qBJ1t4eo4l9kUmKNNxVNJI8A,3819
64
64
  bbot/modules/baddns_zone.py,sha256=y1XaBUfFPnRbR2qaTqRyUsPgEL73722v2B8aS5YoGN4,1035
65
65
  bbot/modules/badsecrets.py,sha256=LG37p48Rlxsfc3BmACMpkypsbuFTVvXqNhlP1IEsx0k,5109
66
- bbot/modules/base.py,sha256=qH5nmYRP3Gc9z8ddr0iY1DR7b68tatv4M0IB-SjDobU,78162
66
+ bbot/modules/base.py,sha256=EtFx7IUV-tBXlVt0UxwsmJRCaef20rp4yyWO6ko-KR0,78473
67
67
  bbot/modules/bevigil.py,sha256=0VLIxmeXRUI2-EoR6IzuHJMcX8KCHNNta-WYa3gVlDg,2862
68
68
  bbot/modules/bucket_amazon.py,sha256=mwjYeEAcdfOpjbOa1sD8U9KBMMVY_c8FoHjSGR9GQbg,730
69
69
  bbot/modules/bucket_azure.py,sha256=Jaa9XEL7w7VM0a-WAp05MOGdP5nt7hMpLzBsPq74_IM,1284
@@ -74,8 +74,8 @@ bbot/modules/bucket_google.py,sha256=IHTfWZEy8wsf8QJ8HXUiVlfo9wxBobrPBVzuERDPcvk
74
74
  bbot/modules/bufferoverrun.py,sha256=VTNkT96Escy6Lyt0LCuyNPNp8wCHBtPM95WxPY7rxUk,1824
75
75
  bbot/modules/builtwith.py,sha256=6ZQOc6vmSVc8LsdgsiuMWfDquGm5K0jxwsnL8MsKNWw,5381
76
76
  bbot/modules/bypass403.py,sha256=HyONgOYlZUET61FZ0QWE7zPGG-N6n0x_j9KUGw8kVxQ,6855
77
- bbot/modules/c99.py,sha256=yHT9-eyqRODISV5eTi11uh-xwqX0JG7zey5AgcDYCdI,1448
78
- bbot/modules/censys.py,sha256=J7NhPnSeoCuG_9FkLjFBIg-tqHAB21HjvQUw_6OQNZo,3311
77
+ bbot/modules/c99.py,sha256=l4HpFtKF09zUs5-yZIMmZU4oIUNro6aRcG6DlIeJ6Z0,1473
78
+ bbot/modules/censys.py,sha256=PMf96B3vTwUF0uotitbNtGPgPIlKl1feyDzBJRn14D0,3336
79
79
  bbot/modules/certspotter.py,sha256=qdRGCkGyP07_cP9h2o_AEZwoiQPXtrC-Bel3vgh24x8,905
80
80
  bbot/modules/chaos.py,sha256=JyuwytwE3IRmNbw-uyJ0gCaTnywhhsHzTiZ3OJ15PAw,1573
81
81
  bbot/modules/code_repository.py,sha256=x70Z45VnNNMF8BPkHfGWZXsZXw_fStGB3y0-8jbP1Ns,2078
@@ -101,7 +101,7 @@ bbot/modules/ffuf.py,sha256=94TJ5xvqKwH0JaWmC_t1dLTpRsO8HEy4lnbsu8LF_HY,14965
101
101
  bbot/modules/ffuf_shortnames.py,sha256=y5vnypLPN-KrjpmoG5zlqcX8VwfcLBpNg1yQI7bP9Hg,18737
102
102
  bbot/modules/filedownload.py,sha256=ZQZQCkXYb0lUP4DnEfL__8vc9KRi0m9hfBhClTKwy2U,8906
103
103
  bbot/modules/fingerprintx.py,sha256=rdlR9d64AntAhbS_eJzh8bZCeLPTJPSKdkdKdhH_qAo,3269
104
- bbot/modules/fullhunt.py,sha256=zeehQb9akBSbHW9dF4icH8Vfd8LqoTrpIvnQEEMWes8,1311
104
+ bbot/modules/fullhunt.py,sha256=2ntu1yBh51N4e_l-kpXc1UBoVVcxEE2JPkyaMYCuUb4,1336
105
105
  bbot/modules/generic_ssrf.py,sha256=KFdcHpUV9-Z7oN7emzbirimsNc2xZ_1IFqnsfIkEbcM,9196
106
106
  bbot/modules/git.py,sha256=zmHeI0bn181T1P8C55HSebkdVGLTpzGxPc-LRqiHrbc,1723
107
107
  bbot/modules/git_clone.py,sha256=w-s3O6rZL_I8_BuPKotnAzXKnn7saw159jcQ_R1xtKw,2602
@@ -112,7 +112,7 @@ bbot/modules/github_usersearch.py,sha256=G8knkQBJsn7EKcMhcEaFPiB_Y5S96e2VaseBubs
112
112
  bbot/modules/github_workflows.py,sha256=xKntAFDeGuE4MqbEmhJyYXKbzoSh9tWYlHNlnF37PYA,10040
113
113
  bbot/modules/gitlab.py,sha256=9oWWpBijeHCjuFBfWW4HvNqt7bvJvrBgBjaaz_UPPnE,5964
114
114
  bbot/modules/google_playstore.py,sha256=N4QjzQag_bgDXfX17rytBiiWA-SQtYI2N0J_ZNEOdv0,3701
115
- bbot/modules/gowitness.py,sha256=vcyZl87xJVHWTuRY032d2dORg3ykVKPIBwD2HzSxvYA,11784
115
+ bbot/modules/gowitness.py,sha256=o4nIBbHVX9tYVW9CpwTsaftWDZu41nhxS0KEp4FoiBs,13003
116
116
  bbot/modules/hackertarget.py,sha256=IsKs9PtxUHdLJKZydlRdW_loBE2KphQYi3lKDAd4odc,1029
117
117
  bbot/modules/host_header.py,sha256=uDjwidMdeNPMRfzQ2YW4REEGsZqnGOZHbOS6GgdNd9s,7686
118
118
  bbot/modules/httpx.py,sha256=z0sgnfLqIXyiadM0rKQK2p86lka7rC4pGCfTVUqU5Lk,8118
@@ -174,7 +174,7 @@ bbot/modules/output/websocket.py,sha256=oxMcYu3hIrA3BE3c3aJXe63JmGv_HWjADB2uO470
174
174
  bbot/modules/paramminer_cookies.py,sha256=q1PzftHQpCHLz81_VgLZsO6moia7ZtnU32igfcySi2w,1816
175
175
  bbot/modules/paramminer_getparams.py,sha256=_j6rgaqV5wGJoa8p5-KKbe2YsVGUtmWIanCVtFiF97Y,1893
176
176
  bbot/modules/paramminer_headers.py,sha256=GMErLmTO0w7JRIpJE2VFvRTrjmoux_-jTx3EfaWLdpM,10518
177
- bbot/modules/passivetotal.py,sha256=uGT6c_CUxBNInmClsTg8afIYA2ZykKYYCgjkyzujfHg,1653
177
+ bbot/modules/passivetotal.py,sha256=dHYk9QWIKdO6Z8Bip4IdcButiqy_fr4FrpRUQaiH1a0,1678
178
178
  bbot/modules/pgp.py,sha256=Xu2M9WEIlwTm5-Lv29g7BblI05tD9Dl0XsYSeY6UURs,2065
179
179
  bbot/modules/portfilter.py,sha256=3iu4xqCsHafhVMbA32Mw6K_7Yn576Rz6GxXMevZQEpM,1752
180
180
  bbot/modules/portscan.py,sha256=dmR2H3Wag6vLLIXrwyU_7bvYuLIv3zdJZ2japogwFUU,13076
@@ -216,7 +216,7 @@ bbot/modules/wafw00f.py,sha256=3wmH3xhVI5-fpc9UVsYVRKFUrXvM0gzarcdHEmy83Ao,2536
216
216
  bbot/modules/wappalyzer.py,sha256=ix0JnLEQ4wLfvYuzrOlQuupJZc3AiY8bnGs3ne-qCFA,2190
217
217
  bbot/modules/wayback.py,sha256=9cxd_HfHgLp4AChzA8C0Zjd6DIJ7c3NsJ02W2oLIXuU,3257
218
218
  bbot/modules/wpscan.py,sha256=FVqZpjV3GrejjiowiqdwIb8t_pPl9yMVRtsAMzC-heA,11606
219
- bbot/modules/zoomeye.py,sha256=KZ0P_-xCLyYruXV1tPvhSxNjQ65V80TwMvqXnLlCZUI,2730
219
+ bbot/modules/zoomeye.py,sha256=DYrNAgvHY90HKui3LvEVHBw0M2cpkuzuyVqizBzp6T8,2755
220
220
  bbot/presets/baddns-intense.yml,sha256=FXiNnsf3IIms3UJtS2CwLk82Yp0IXm1OvRM61-CHrno,195
221
221
  bbot/presets/cloud-enum.yml,sha256=U1IuN_Vx4zFSvobQenXwSeEqFxRX28beS1Aek3hNUBg,121
222
222
  bbot/presets/code-enum.yml,sha256=fRThe5_vY8IqO5nZBC0y3JZwA6ynx81bBcIHBB6o9IU,83
@@ -449,8 +449,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ZSIVebs7ptMvHx
449
449
  bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
450
450
  bbot/wordlists/valid_url_schemes.txt,sha256=0B_VAr9Dv7aYhwi6JSBDU-3M76vNtzN0qEC_RNLo7HE,3310
451
451
  bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
452
- bbot-2.5.0.6721rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
453
- bbot-2.5.0.6721rc0.dist-info/METADATA,sha256=8mteCBKAy87_CtgF4xmATBFIl_Lqw2dvxIDPyc3Y4DA,18308
454
- bbot-2.5.0.6721rc0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
455
- bbot-2.5.0.6721rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
456
- bbot-2.5.0.6721rc0.dist-info/RECORD,,
452
+ bbot-2.5.0.6734rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
453
+ bbot-2.5.0.6734rc0.dist-info/METADATA,sha256=qLbgRb7kN8un2arykLWphk55o6fB9K8RANrUKjuCNMs,18308
454
+ bbot-2.5.0.6734rc0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
455
+ bbot-2.5.0.6734rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
456
+ bbot-2.5.0.6734rc0.dist-info/RECORD,,