bbot 2.5.0.6719rc0__py3-none-any.whl → 2.5.0.6730rc0__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.6719rc"
2
+ __version__ = "v2.5.0.6730rc"
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/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()
@@ -14,7 +14,7 @@ class trufflehog(BaseModule):
14
14
  }
15
15
 
16
16
  options = {
17
- "version": "3.88.34",
17
+ "version": "3.89.0",
18
18
  "config": "",
19
19
  "only_verified": True,
20
20
  "concurrency": 8,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bbot
3
- Version: 2.5.0.6719rc0
3
+ Version: 2.5.0.6730rc0
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=FMEKOd7NciU5-Upvm6cWBUHB7ba5VOQQd5iHMtR9kgs,163
1
+ bbot/__init__.py,sha256=WqBatiW2cL1ucLF3Om8PN3W_CWUYJOzUTd07U4kF1_M,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
@@ -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
@@ -206,7 +206,7 @@ bbot/modules/templates/sql.py,sha256=o-CdyyoJvHJdJBKkj3CIGXYxUta4w2AB_2Vr-k7cDDU
206
206
  bbot/modules/templates/subdomain_enum.py,sha256=epyKSly08jqaINV_AMMWbNafIeQjJqvd3aj63KD0Mck,8402
207
207
  bbot/modules/templates/webhook.py,sha256=uGFmcJ81GzGN1UI2k2O7nQF_fyh4ehLDEg2NSXaPnhk,3373
208
208
  bbot/modules/trickest.py,sha256=MRgLW0YiDWzlWdAjyqfPPLFb-a51r-Ffn_dphiJI_gA,1550
209
- bbot/modules/trufflehog.py,sha256=TA8TVj9he12I9TtVvHdH_WJwDqLK97mATwtkuSi3l2g,8703
209
+ bbot/modules/trufflehog.py,sha256=63gfyljjo5iymhr0BbKo-35Pj00h_T5wLg8Eon6SPlM,8702
210
210
  bbot/modules/url_manipulation.py,sha256=4J3oFkqTSJPPmbKEKAHJg2Q2w4QNKtQhiN03ZJq5VtI,4326
211
211
  bbot/modules/urlscan.py,sha256=-w_3Bm6smyG2GLQyIbnMUkKmeQVauo-V6F4_kJDYG7s,3740
212
212
  bbot/modules/vhost.py,sha256=cirOe0HR4M0TEBN8JdXo2l0s2flc8ZSdxggGm79blT8,5459
@@ -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.6719rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
453
- bbot-2.5.0.6719rc0.dist-info/METADATA,sha256=GjrkRjRG81KdmlYH76ToKPJWXj9nIDscPrnqMN4cIgo,18308
454
- bbot-2.5.0.6719rc0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
455
- bbot-2.5.0.6719rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
456
- bbot-2.5.0.6719rc0.dist-info/RECORD,,
452
+ bbot-2.5.0.6730rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
453
+ bbot-2.5.0.6730rc0.dist-info/METADATA,sha256=EiOc-7dymmDaTYCIFEe0xNDokNbPgrWLetRAq8ORtDo,18308
454
+ bbot-2.5.0.6730rc0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
455
+ bbot-2.5.0.6730rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
456
+ bbot-2.5.0.6730rc0.dist-info/RECORD,,