bbot 2.3.0.5354rc0__py3-none-any.whl → 2.3.0.5364rc0__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,4 +1,4 @@
1
1
  # version placeholder (replaced by poetry-dynamic-versioning)
2
- __version__ = "v2.3.0.5354rc"
2
+ __version__ = "v2.3.0.5364rc"
3
3
 
4
4
  from .scanner import Scanner, Preset
@@ -49,7 +49,8 @@ class DepsInstaller:
49
49
  self.minimal_git_config.touch()
50
50
  os.environ["GIT_CONFIG_GLOBAL"] = str(self.minimal_git_config)
51
51
 
52
- self.deps_behavior = self.parent_helper.config.get("deps_behavior", "abort_on_failure").lower()
52
+ self.deps_config = self.parent_helper.config.get("deps", {})
53
+ self.deps_behavior = self.deps_config.get("behavior", "abort_on_failure").lower()
53
54
  self.ansible_debug = self.core.logger.log_level <= logging.DEBUG
54
55
  self.venv = ""
55
56
  if sys.prefix != sys.base_prefix:
@@ -41,10 +41,13 @@ class DNSBrute:
41
41
  type = "A"
42
42
  type = str(type).strip().upper()
43
43
 
44
- wildcard_rdtypes = await self.parent_helper.dns.is_wildcard_domain(domain, (type, "CNAME"))
45
- if wildcard_rdtypes:
44
+ wildcard_domains = await self.parent_helper.dns.is_wildcard_domain(domain, (type, "CNAME"))
45
+ wildcard_rdtypes = set()
46
+ for domain, rdtypes in wildcard_domains.items():
47
+ wildcard_rdtypes.update(rdtypes)
48
+ if wildcard_domains:
46
49
  self.log.hugewarning(
47
- f"Aborting massdns on {domain} because it's a wildcard domain ({','.join(wildcard_rdtypes)})"
50
+ f"Aborting massdns on {domain} because it's a wildcard domain ({','.join(sorted(wildcard_rdtypes))})"
48
51
  )
49
52
  return []
50
53
 
bbot/db/sql/models.py CHANGED
@@ -141,8 +141,8 @@ class Target(BBOTBaseModel, table=True):
141
141
  seeds: List = Field(default=[], sa_type=JSON)
142
142
  whitelist: List = Field(default=None, sa_type=JSON)
143
143
  blacklist: List = Field(default=[], sa_type=JSON)
144
- hash: str = Field(sa_column=Column("hash", String, unique=True, primary_key=True, index=True))
145
- scope_hash: str = Field(sa_column=Column("scope_hash", String, index=True))
146
- seed_hash: str = Field(sa_column=Column("seed_hashhash", String, index=True))
147
- whitelist_hash: str = Field(sa_column=Column("whitelist_hash", String, index=True))
148
- blacklist_hash: str = Field(sa_column=Column("blacklist_hash", String, index=True))
144
+ hash: str = Field(sa_column=Column("hash", String(length=255), unique=True, primary_key=True, index=True))
145
+ scope_hash: str = Field(sa_column=Column("scope_hash", String(length=255), index=True))
146
+ seed_hash: str = Field(sa_column=Column("seed_hashhash", String(length=255), index=True))
147
+ whitelist_hash: str = Field(sa_column=Column("whitelist_hash", String(length=255), index=True))
148
+ blacklist_hash: str = Field(sa_column=Column("blacklist_hash", String(length=255), index=True))
bbot/defaults.yml CHANGED
@@ -112,6 +112,13 @@ engine:
112
112
  deps:
113
113
  ffuf:
114
114
  version: "2.1.0"
115
+ # How to handle installation of module dependencies
116
+ # Choices are:
117
+ # - abort_on_failure (default) - if a module dependency fails to install, abort the scan
118
+ # - retry_failed - try again to install failed dependencies
119
+ # - ignore_failed - run the scan regardless of what happens with dependency installation
120
+ # - disable - completely disable BBOT's dependency system (you are responsible for installing tools, pip packages, etc.)
121
+ behavior: abort_on_failure
115
122
 
116
123
  ### ADVANCED OPTIONS ###
117
124
 
@@ -129,14 +136,6 @@ dnsresolve: True
129
136
  # Cloud provider tagging
130
137
  cloudcheck: True
131
138
 
132
- # How to handle installation of module dependencies
133
- # Choices are:
134
- # - abort_on_failure (default) - if a module dependency fails to install, abort the scan
135
- # - retry_failed - try again to install failed dependencies
136
- # - ignore_failed - run the scan regardless of what happens with dependency installation
137
- # - disable - completely disable BBOT's dependency system (you are responsible for installing tools, pip packages, etc.)
138
- deps_behavior: abort_on_failure
139
-
140
139
  # Strip querystring from URLs by default
141
140
  url_querystring_remove: True
142
141
  # When query string is retained, by default collapse parameter values down to a single value per parameter
@@ -50,9 +50,10 @@ class github_codesearch(github, subdomain_enum):
50
50
  break
51
51
  status_code = getattr(r, "status_code", 0)
52
52
  if status_code == 429:
53
- "Github is rate-limiting us (HTTP status: 429)"
53
+ self.info("Github is rate-limiting us (HTTP status: 429)")
54
54
  break
55
55
  if status_code != 200:
56
+ self.info(f"Unexpected response (HTTP status: {status_code})")
56
57
  break
57
58
  try:
58
59
  j = r.json()
@@ -0,0 +1,51 @@
1
+ from bbot.modules.templates.sql import SQLTemplate
2
+
3
+
4
+ class MySQL(SQLTemplate):
5
+ watched_events = ["*"]
6
+ meta = {"description": "Output scan data to a MySQL database"}
7
+ options = {
8
+ "username": "root",
9
+ "password": "bbotislife",
10
+ "host": "localhost",
11
+ "port": 3306,
12
+ "database": "bbot",
13
+ }
14
+ options_desc = {
15
+ "username": "The username to connect to MySQL",
16
+ "password": "The password to connect to MySQL",
17
+ "host": "The server running MySQL",
18
+ "port": "The port to connect to MySQL",
19
+ "database": "The database name to connect to",
20
+ }
21
+ deps_pip = ["sqlmodel", "aiomysql"]
22
+ protocol = "mysql+aiomysql"
23
+
24
+ async def create_database(self):
25
+ from sqlalchemy import text
26
+ from sqlalchemy.ext.asyncio import create_async_engine
27
+
28
+ # Create the engine for the initial connection to the server
29
+ initial_engine = create_async_engine(self.connection_string().rsplit("/", 1)[0])
30
+
31
+ async with initial_engine.connect() as conn:
32
+ # Check if the database exists
33
+ result = await conn.execute(text(f"SHOW DATABASES LIKE '{self.database}'"))
34
+ database_exists = result.scalar() is not None
35
+
36
+ # Create the database if it does not exist
37
+ if not database_exists:
38
+ # Use aiomysql directly to create the database
39
+ import aiomysql
40
+
41
+ raw_conn = await aiomysql.connect(
42
+ user=self.username,
43
+ password=self.password,
44
+ host=self.host,
45
+ port=self.port,
46
+ )
47
+ try:
48
+ async with raw_conn.cursor() as cursor:
49
+ await cursor.execute(f"CREATE DATABASE {self.database}")
50
+ finally:
51
+ await raw_conn.ensure_closed()
@@ -1,3 +1,4 @@
1
+ from contextlib import suppress
1
2
  from sqlmodel import SQLModel
2
3
  from sqlalchemy.orm import sessionmaker
3
4
  from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession
@@ -88,3 +89,7 @@ class SQLTemplate(BaseOutputModule):
88
89
  if self.database:
89
90
  connection_string += f"/{self.database}"
90
91
  return connection_string
92
+
93
+ async def cleanup(self):
94
+ with suppress(Exception):
95
+ await self.engine.dispose()
bbot/test/test.conf CHANGED
@@ -36,6 +36,8 @@ dns:
36
36
  - example.com
37
37
  - evilcorp.com
38
38
  - one
39
+ deps:
40
+ behavior: retry_failed
39
41
  engine:
40
42
  debug: true
41
43
  agent_url: ws://127.0.0.1:8765
@@ -0,0 +1,76 @@
1
+ import asyncio
2
+ import time
3
+
4
+ from .base import ModuleTestBase
5
+
6
+
7
+ class TestMySQL(ModuleTestBase):
8
+ targets = ["evilcorp.com"]
9
+ skip_distro_tests = True
10
+
11
+ async def setup_before_prep(self, module_test):
12
+ process = await asyncio.create_subprocess_exec(
13
+ "docker",
14
+ "run",
15
+ "--name",
16
+ "bbot-test-mysql",
17
+ "--rm",
18
+ "-e",
19
+ "MYSQL_ROOT_PASSWORD=bbotislife",
20
+ "-e",
21
+ "MYSQL_DATABASE=bbot",
22
+ "-p",
23
+ "3306:3306",
24
+ "-d",
25
+ "mysql",
26
+ stdout=asyncio.subprocess.PIPE,
27
+ stderr=asyncio.subprocess.PIPE,
28
+ )
29
+ stdout, stderr = await process.communicate()
30
+
31
+ import aiomysql
32
+
33
+ # wait for the container to start
34
+ start_time = time.time()
35
+ while True:
36
+ try:
37
+ conn = await aiomysql.connect(user="root", password="bbotislife", db="bbot", host="localhost")
38
+ conn.close()
39
+ break
40
+ except Exception as e:
41
+ if time.time() - start_time > 60: # timeout after 60 seconds
42
+ self.log.error("MySQL server did not start in time.")
43
+ raise e
44
+ await asyncio.sleep(1)
45
+
46
+ if process.returncode != 0:
47
+ self.log.error(f"Failed to start MySQL server: {stderr.decode()}")
48
+
49
+ async def check(self, module_test, events):
50
+ import aiomysql
51
+
52
+ # Connect to the MySQL database
53
+ conn = await aiomysql.connect(user="root", password="bbotislife", db="bbot", host="localhost")
54
+
55
+ try:
56
+ async with conn.cursor() as cur:
57
+ await cur.execute("SELECT * FROM event")
58
+ events = await cur.fetchall()
59
+ assert len(events) == 3, "No events found in MySQL database"
60
+
61
+ await cur.execute("SELECT * FROM scan")
62
+ scans = await cur.fetchall()
63
+ assert len(scans) == 1, "No scans found in MySQL database"
64
+
65
+ await cur.execute("SELECT * FROM target")
66
+ targets = await cur.fetchall()
67
+ assert len(targets) == 1, "No targets found in MySQL database"
68
+ finally:
69
+ conn.close()
70
+ process = await asyncio.create_subprocess_exec(
71
+ "docker", "stop", "bbot-test-mysql", stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE
72
+ )
73
+ stdout, stderr = await process.communicate()
74
+
75
+ if process.returncode != 0:
76
+ raise Exception(f"Failed to stop MySQL server: {stderr.decode()}")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bbot
3
- Version: 2.3.0.5354rc0
3
+ Version: 2.3.0.5364rc0
4
4
  Summary: OSINT automation for hackers.
5
5
  Home-page: https://github.com/blacklanternsecurity/bbot
6
6
  License: GPL-3.0
@@ -294,6 +294,24 @@ Click the graph below to explore the [inner workings](https://www.blacklanternse
294
294
 
295
295
  [![image](https://github.com/blacklanternsecurity/bbot/assets/20261699/e55ba6bd-6d97-48a6-96f0-e122acc23513)](https://www.blacklanternsecurity.com/bbot/Stable/how_it_works/)
296
296
 
297
+ ## Output Modules
298
+
299
+ - [Neo4j](docs/scanning/output.md#neo4j)
300
+ - [Teams](docs/scanning/output.md#teams)
301
+ - [Discord](docs/scanning/output.md#discord)
302
+ - [Slack](docs/scanning/output.md#slack)
303
+ - [Postgres](docs/scanning/output.md#postgres)
304
+ - [MySQL](docs/scanning/output.md#mysql)
305
+ - [SQLite](docs/scanning/output.md#sqlite)
306
+ - [Splunk](docs/scanning/output.md#splunk)
307
+ - [Elasticsearch](docs/scanning/output.md#elasticsearch)
308
+ - [CSV](docs/scanning/output.md#csv)
309
+ - [JSON](docs/scanning/output.md#json)
310
+ - [HTTP](docs/scanning/output.md#http)
311
+ - [Websocket](docs/scanning/output.md#websocket)
312
+
313
+ ...and [more](docs/scanning/output.md)!
314
+
297
315
  ## BBOT as a Python Library
298
316
 
299
317
  #### Synchronous
@@ -1,4 +1,4 @@
1
- bbot/__init__.py,sha256=-FTJivANQg1DxYPRW-_-j0E66PFIwvSBnASvwTEpp_g,130
1
+ bbot/__init__.py,sha256=M7k_R43Aq4i4MJZlqrBLYyCYFZgSUh4EgEO6rIYhYyo,130
2
2
  bbot/cli.py,sha256=-9d6yCAYZaP0lIOCja-fSk3MiNclc-kbEgos10jYNUQ,10440
3
3
  bbot/core/__init__.py,sha256=l255GJE_DvUnWvrRb0J5lG-iMztJ8zVvoweDOfegGtI,46
4
4
  bbot/core/config/__init__.py,sha256=zYNw2Me6tsEr8hOOkLb4BQ97GB7Kis2k--G81S8vofU,342
@@ -16,11 +16,11 @@ bbot/core/helpers/bloom.py,sha256=JjAbHhV_q-ObLYKW87xgoYAcCZXZBEhn7IbKN-0afG4,27
16
16
  bbot/core/helpers/cache.py,sha256=1aMr3HVD45cDtHEG5xlznDUCywRgO9oRFidscrs_5sA,1537
17
17
  bbot/core/helpers/command.py,sha256=2i0hz-uo6zUV9oGtXf-9erh_g3SazDtYeh6pETlfPPA,12810
18
18
  bbot/core/helpers/depsinstaller/__init__.py,sha256=2mx1nYylSyvwl0GCM9YDHqrFEt2_5dSWAjP1RmhmbQg,37
19
- bbot/core/helpers/depsinstaller/installer.py,sha256=1YQfPNSYKSgDVUtOCMiTECTqZuA5U1whI2IlSiSVZF8,17125
19
+ bbot/core/helpers/depsinstaller/installer.py,sha256=5SR6xYBqyx-h1fj_pDC2REg8HhxFNUpjAZ94yAAeaNE,17180
20
20
  bbot/core/helpers/depsinstaller/sudo_askpass.py,sha256=yGa2OQv30RO75QkMuG1iruKqb7amQxRVRRcHmvIeGhk,1276
21
21
  bbot/core/helpers/diff.py,sha256=7waBeHFGnAKn-R-sBd-wc3yjwxT_umwy4YxfE7JFd6w,10599
22
22
  bbot/core/helpers/dns/__init__.py,sha256=2JK8P0BUfPlh4CTuuOWQCOacwL7NEtGFYPJsxbA0Zwo,27
23
- bbot/core/helpers/dns/brute.py,sha256=DjbEexRdKcBuuMav7g_4pzUcLjLU15UDmdbgfg_nGis,6847
23
+ bbot/core/helpers/dns/brute.py,sha256=sTlgFabHVL5rNaD8Pef0kXap1gM4LFpc71kdR9j7pdE,6990
24
24
  bbot/core/helpers/dns/dns.py,sha256=Lp-_W2_ViihQI960wGFHsQGbQvFy4HdtzAlgMe5yiag,8437
25
25
  bbot/core/helpers/dns/engine.py,sha256=3LMwgqrFaLwAwF1OfGUtT4GkJHJv-ZieE3G5j7fcKSk,28749
26
26
  bbot/core/helpers/dns/helpers.py,sha256=aQroIuz5TxrCZ4zoplOaqLj3ZNgOgDRKn0xM8GKz2dA,8505
@@ -47,8 +47,8 @@ bbot/core/helpers/wordcloud.py,sha256=WdQwboCNcCxcUdLuB6MMMDQBL4ZshFM_f6GW7nUZEB
47
47
  bbot/core/modules.py,sha256=OOUSncr-EM6bJBrI3iH5wvfnpTXKQ-A8OL8UMvkL0CU,31432
48
48
  bbot/core/multiprocess.py,sha256=ocQHanskJ09gHwe7RZmwNdZyCOQyeyUoIHCtLbtvXUk,1771
49
49
  bbot/core/shared_deps.py,sha256=A3vrI62uPTTayNIHhWAj6xz43cj--oXWC4prmDlgJnw,6958
50
- bbot/db/sql/models.py,sha256=mrC8-Okp1iDcJ3d2hOZsCb8Xg6HHFfCWA3LDu4kRS-4,4825
51
- bbot/defaults.yml,sha256=v6YZ2g-nnUZQdhD-rhod4LZiYciI-cMDFz4JF7Kh5Lk,6213
50
+ bbot/db/sql/models.py,sha256=Y_Bx-BT51lEGZEuadKaeXHM9hcECUTSsbGf3ZnIxZ0g,4885
51
+ bbot/defaults.yml,sha256=d1uVZOWzaJ7IM5YF-Zpambb8Gdbas-aCInqoWElxsEw,6221
52
52
  bbot/errors.py,sha256=xwQcD26nU9oc7-o0kv5jmEDTInmi8_W8eKAgQZZxdVM,953
53
53
  bbot/logger.py,sha256=rLcLzNDvfR8rFj7_tZ-f5QB3Z8T0RVroact3W0ogjpA,1408
54
54
  bbot/modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -105,7 +105,7 @@ bbot/modules/fullhunt.py,sha256=zeehQb9akBSbHW9dF4icH8Vfd8LqoTrpIvnQEEMWes8,1311
105
105
  bbot/modules/generic_ssrf.py,sha256=FZ7XZ2RbBk5PVwa7wHasSkEsatUFWvCH70ZvPbg-EQA,7946
106
106
  bbot/modules/git.py,sha256=CMDarsmBemZEzZSeQTzB70XD8IRdwdG39zXpwDdgZbw,1383
107
107
  bbot/modules/git_clone.py,sha256=XFZXx0k97EMY3E5PZzdNvqQzZddOfRMaVp5ol2gk11s,2468
108
- bbot/modules/github_codesearch.py,sha256=VbzSsnJKL1SWSl6rB88qWl26bAgszM7Gbo4HCOl6XUU,3540
108
+ bbot/modules/github_codesearch.py,sha256=6B0TjiRgDwBT8y5f45NCApjzl22NnHGxsnS1801v5G4,3634
109
109
  bbot/modules/github_org.py,sha256=O1VBn65sYJaPWBDjssyQSnlEh6XQgLEF7gKDzWj64qc,9164
110
110
  bbot/modules/github_workflows.py,sha256=GvEVEa2vp5FnpKIthyMIkMmV84Sgh9whxpCcdFY1PB0,9555
111
111
  bbot/modules/gitlab.py,sha256=9oWWpBijeHCjuFBfWW4HvNqt7bvJvrBgBjaaz_UPPnE,5964
@@ -143,6 +143,7 @@ bbot/modules/output/discord.py,sha256=BzZW0T-DgZHo3xwaQbZ6DAA59wKIvCDV1LK82ev7A2
143
143
  bbot/modules/output/emails.py,sha256=mzZideMCNfB8-naQANO5g8Y9HdgviAihRsdY_xPQjbQ,1095
144
144
  bbot/modules/output/http.py,sha256=4UWKpbQx3EHpi24VIem6oSvXr0W0NZ3lDpJOmQ3Mwik,2582
145
145
  bbot/modules/output/json.py,sha256=zvM2NwWScGk3pN4wF0mm-OqVW_0ADYy95Am4T02VVD4,1289
146
+ bbot/modules/output/mysql.py,sha256=iq_VRvuarEZJHR8_OWB2Z76-yQrxWqNGfPrPHOi9oiI,1884
146
147
  bbot/modules/output/neo4j.py,sha256=u950eUwu8YMql_WaBA38TN2bUhx7xnZdIIvYfR3xVcY,6114
147
148
  bbot/modules/output/postgres.py,sha256=2JdEF6mU-VmVqPrgEh5L2MGv-s0BoNwoz8EnG5i3u2s,1847
148
149
  bbot/modules/output/python.py,sha256=RvK2KN-Zp0Vy_1zGSNioE5eeL5hIh6Z_riFtaTymyIM,270
@@ -184,7 +185,7 @@ bbot/modules/templates/bucket.py,sha256=x-c_iAeMILux6wRm0xkUUJkc2P69hYWS6DxqD7g5
184
185
  bbot/modules/templates/github.py,sha256=ENnDWpzzmZBsTisDx6Cg9V_NwJKyVyPIOpGAPktigdI,1455
185
186
  bbot/modules/templates/postman.py,sha256=oxwVusW2EdNotVX7xnnxCTnWtj3xNPbfs8aff9s4phs,614
186
187
  bbot/modules/templates/shodan.py,sha256=BfI0mNPbqkykGmjMtARhmCGKmk1uq7yTlZoPgzzJ040,1175
187
- bbot/modules/templates/sql.py,sha256=bn8ZbTC0RkrA5wYOQ7RtSHfIywBm03L3mY344xH1Ue4,3417
188
+ bbot/modules/templates/sql.py,sha256=o-CdyyoJvHJdJBKkj3CIGXYxUta4w2AB_2Vr-k7cDDU,3553
188
189
  bbot/modules/templates/subdomain_enum.py,sha256=54prHdg_wgTBHIJLPLbDWBqq2x978NDfDOGG7R5A6fQ,8403
189
190
  bbot/modules/templates/webhook.py,sha256=MYhKWrNYrsfM0a4PR6yVotudLyyCwgmy2eI-l9LvpBs,3706
190
191
  bbot/modules/trickest.py,sha256=MRgLW0YiDWzlWdAjyqfPPLFb-a51r-Ffn_dphiJI_gA,1550
@@ -234,7 +235,7 @@ bbot/test/coverage.cfg,sha256=ko9RacAYsJxWJCL8aEuNtkAOtP9lexYiDbeFWe8Tp8Y,31
234
235
  bbot/test/fastapi_test.py,sha256=9OhOFRyagXTshMsnuzuKIcR4uzS6VW65m7h9KgB4jSA,381
235
236
  bbot/test/owasp_mastg.apk,sha256=Hai_V9JmEJ-aB8Ab9xEaGXXOAfGQudkUvNOuPb75byE,66651
236
237
  bbot/test/run_tests.sh,sha256=0oprBl970NAqXS4YQa8nRUtKljPeS_WNSvd-QmO5FNY,945
237
- bbot/test/test.conf,sha256=HrE7z3O91wg2MeauqIP-rwq10FAB5K6WrHJrX1eN7oc,963
238
+ bbot/test/test.conf,sha256=JX0-Wl7N7VN6x_hhkFL-RF4TDAHgL9OfNNdujfD7tHo,994
238
239
  bbot/test/test_output.ndjson,sha256=Jfor8nUJ3QTEwXxD6UULrFXM4zhP5wflWo_UNekM3V8,323
239
240
  bbot/test/test_step_1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
241
  bbot/test/test_step_1/test__module__tests.py,sha256=RpD4yuVuQRgbbUkfuasxUlyoVxhTm6TeDyi87y_AaK0,1461
@@ -343,6 +344,7 @@ bbot/test/test_step_2/module_tests/test_module_ipstack.py,sha256=BgCeE9Bef2RM6ak
343
344
  bbot/test/test_step_2/module_tests/test_module_jadx.py,sha256=qTBfDc_Iv03n8iGdyLm6kBaKeEdSxFYeKj5xL1PmyF0,2391
344
345
  bbot/test/test_step_2/module_tests/test_module_json.py,sha256=gmlqge5ZJpjVMGs7OLZBsNlSFTTrKnKjIZMIU23o8VQ,3350
345
346
  bbot/test/test_step_2/module_tests/test_module_leakix.py,sha256=Pg1vbmi5z6xIHV1X0z0VCqfpgxksCycrJI5p2ogiIpQ,1819
347
+ bbot/test/test_step_2/module_tests/test_module_mysql.py,sha256=4wAPjbjhlxmOkEhQnIQIBC2BLEaE57TX6lChGZ3zLsU,2630
346
348
  bbot/test/test_step_2/module_tests/test_module_myssl.py,sha256=dweSmwUYEcC3DapozRSpHvvvdbw54HVlc_L2pC7ILew,1532
347
349
  bbot/test/test_step_2/module_tests/test_module_neo4j.py,sha256=PaKSQWKJKY-5tQhDCGNu_uALlIJwjCVrEtv2grMK9wo,1332
348
350
  bbot/test/test_step_2/module_tests/test_module_newsletters.py,sha256=4u2RghHpxlsOy859Fd-4_9EbRL9pupUDubHDJ6ym7YI,2305
@@ -410,8 +412,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ruUQwVfia1_m2u
410
412
  bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
411
413
  bbot/wordlists/valid_url_schemes.txt,sha256=VciB-ww0y-O8Ii1wpTR6rJzGDiC2r-dhVsIJApS1ZYU,3309
412
414
  bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
413
- bbot-2.3.0.5354rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
414
- bbot-2.3.0.5354rc0.dist-info/METADATA,sha256=1KTziVaVMXu5AycEu82eUZLY-mIQcs_0pqrsDJpcchA,17269
415
- bbot-2.3.0.5354rc0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
416
- bbot-2.3.0.5354rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
417
- bbot-2.3.0.5354rc0.dist-info/RECORD,,
415
+ bbot-2.3.0.5364rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
416
+ bbot-2.3.0.5364rc0.dist-info/METADATA,sha256=2fTfVrrWm7qQev-Q0uIKaSz2fbq3FyaaWB6UajkaGCA,17893
417
+ bbot-2.3.0.5364rc0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
418
+ bbot-2.3.0.5364rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
419
+ bbot-2.3.0.5364rc0.dist-info/RECORD,,