bbot 2.1.2.5140rc0__py3-none-any.whl → 2.1.2.5149rc0__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 +1 -1
- bbot/modules/internal/speculate.py +2 -23
- bbot/test/test_step_2/module_tests/test_module_git_clone.py +1 -1
- {bbot-2.1.2.5140rc0.dist-info → bbot-2.1.2.5149rc0.dist-info}/METADATA +1 -1
- {bbot-2.1.2.5140rc0.dist-info → bbot-2.1.2.5149rc0.dist-info}/RECORD +8 -8
- {bbot-2.1.2.5140rc0.dist-info → bbot-2.1.2.5149rc0.dist-info}/LICENSE +0 -0
- {bbot-2.1.2.5140rc0.dist-info → bbot-2.1.2.5149rc0.dist-info}/WHEEL +0 -0
- {bbot-2.1.2.5140rc0.dist-info → bbot-2.1.2.5149rc0.dist-info}/entry_points.txt +0 -0
bbot/__init__.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import random
|
|
2
2
|
import ipaddress
|
|
3
|
-
from pathlib import Path
|
|
4
3
|
|
|
5
4
|
from bbot.core.helpers import validators
|
|
6
5
|
from bbot.modules.internal.base import BaseInternalModule
|
|
@@ -24,9 +23,8 @@ class speculate(BaseInternalModule):
|
|
|
24
23
|
"SOCIAL",
|
|
25
24
|
"AZURE_TENANT",
|
|
26
25
|
"USERNAME",
|
|
27
|
-
"FILESYSTEM",
|
|
28
26
|
]
|
|
29
|
-
produced_events = ["DNS_NAME", "OPEN_TCP_PORT", "IP_ADDRESS", "FINDING", "ORG_STUB"
|
|
27
|
+
produced_events = ["DNS_NAME", "OPEN_TCP_PORT", "IP_ADDRESS", "FINDING", "ORG_STUB"]
|
|
30
28
|
flags = ["passive"]
|
|
31
29
|
meta = {
|
|
32
30
|
"description": "Derive certain event types from others by common sense",
|
|
@@ -34,11 +32,10 @@ class speculate(BaseInternalModule):
|
|
|
34
32
|
"author": "@liquidsec",
|
|
35
33
|
}
|
|
36
34
|
|
|
37
|
-
options = {"max_hosts": 65536, "ports": "80,443"
|
|
35
|
+
options = {"max_hosts": 65536, "ports": "80,443"}
|
|
38
36
|
options_desc = {
|
|
39
37
|
"max_hosts": "Max number of IP_RANGE hosts to convert into IP_ADDRESS events",
|
|
40
38
|
"ports": "The set of ports to speculate on",
|
|
41
|
-
"ignore_folders": "Subfolders to ignore when crawling downloaded folders",
|
|
42
39
|
}
|
|
43
40
|
scope_distance_modifier = 1
|
|
44
41
|
_priority = 4
|
|
@@ -75,13 +72,6 @@ class speculate(BaseInternalModule):
|
|
|
75
72
|
self.hugewarning(f'Enabling the "portscan" module is highly recommended')
|
|
76
73
|
self.range_to_ip = False
|
|
77
74
|
|
|
78
|
-
self.ignored_folders = self.config.get("ignore_folders", [])
|
|
79
|
-
|
|
80
|
-
return True
|
|
81
|
-
|
|
82
|
-
async def filter_event(self, event):
|
|
83
|
-
if event.type == "FILESYSTEM" and "folder" not in event.tags:
|
|
84
|
-
return False, "Event is not a folder"
|
|
85
75
|
return True
|
|
86
76
|
|
|
87
77
|
async def handle_event(self, event):
|
|
@@ -205,14 +195,3 @@ class speculate(BaseInternalModule):
|
|
|
205
195
|
email_event = self.make_event(email, "EMAIL_ADDRESS", parent=event, tags=["affiliate"])
|
|
206
196
|
if email_event:
|
|
207
197
|
await self.emit_event(email_event, context="detected {event.type}: {event.data}")
|
|
208
|
-
|
|
209
|
-
# FILESYSTEM (folder) --> FILESYSTEM (files)
|
|
210
|
-
if event.type == "FILESYSTEM":
|
|
211
|
-
folder_path = Path(event.data["path"])
|
|
212
|
-
for file_path in folder_path.rglob("*"):
|
|
213
|
-
# If the file is not in an ignored folder and if it has an allowed extension raise it as a FILESYSTEM event
|
|
214
|
-
if not any(ignored_folder in str(file_path) for ignored_folder in self.ignored_folders):
|
|
215
|
-
file_event = self.make_event(
|
|
216
|
-
{"path": str(file_path)}, "FILESYSTEM", tags=["parsed_folder", "file"], parent=event
|
|
217
|
-
)
|
|
218
|
-
await self.emit_event(file_event)
|
|
@@ -215,7 +215,7 @@ class TestGit_CloneWithBlob(TestGit_Clone):
|
|
|
215
215
|
config_overrides = {"folder_blobs": True}
|
|
216
216
|
|
|
217
217
|
def check(self, module_test, events):
|
|
218
|
-
filesystem_events = [e for e in events if e.type == "FILESYSTEM"
|
|
218
|
+
filesystem_events = [e for e in events if e.type == "FILESYSTEM"]
|
|
219
219
|
assert len(filesystem_events) == 1
|
|
220
220
|
assert all(["blob" in e.data for e in filesystem_events])
|
|
221
221
|
filesystem_event = filesystem_events[0]
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bbot/__init__.py,sha256=
|
|
1
|
+
bbot/__init__.py,sha256=M8dRAlxqT9v9iWm-h4ZlPFnAXrXctEDVIzWu0s_0LUg,130
|
|
2
2
|
bbot/cli.py,sha256=7S3a4eB-Dl8yodc5WC-927Z30CNlLl9EXimGvIVypJo,10434
|
|
3
3
|
bbot/core/__init__.py,sha256=l255GJE_DvUnWvrRb0J5lG-iMztJ8zVvoweDOfegGtI,46
|
|
4
4
|
bbot/core/config/__init__.py,sha256=zYNw2Me6tsEr8hOOkLb4BQ97GB7Kis2k--G81S8vofU,342
|
|
@@ -118,7 +118,7 @@ bbot/modules/internal/base.py,sha256=BXO4Hc7XKaAOaLzolF3krJX1KibPxtek2GTQUgnCHk0
|
|
|
118
118
|
bbot/modules/internal/cloudcheck.py,sha256=kkD5DC5Y7EPCiVTdEspZktkflArU3unx--9ciBikxHo,4099
|
|
119
119
|
bbot/modules/internal/dnsresolve.py,sha256=rmXBb6r8MNYrHlnTbES1ok5M9q3JD3Oj6AOx6d0Bawc,14558
|
|
120
120
|
bbot/modules/internal/excavate.py,sha256=1kPiaUlpJVT_xgPgmzqhpf04uanIe9ZayQsWANbzhd4,51238
|
|
121
|
-
bbot/modules/internal/speculate.py,sha256=
|
|
121
|
+
bbot/modules/internal/speculate.py,sha256=qT9tQWiSZ1bhAt-CeehRztVo_DP5eOqdbpPVVxGktTg,8765
|
|
122
122
|
bbot/modules/internetdb.py,sha256=Edg0Z84dH8dPTZMd7RlzvYBYNq8JHs_ns_ldnFxwRKo,5415
|
|
123
123
|
bbot/modules/ip2location.py,sha256=yGivX9fzvwvLpnqmYCP2a8SPjTarzrZxfRluog-nkME,2628
|
|
124
124
|
bbot/modules/ipneighbor.py,sha256=Gr-HGtyZRDp_fPjpw-Mq1al7ocFdiZbKsAoAit-EUlA,1591
|
|
@@ -309,7 +309,7 @@ bbot/test/test_step_2/module_tests/test_module_fingerprintx.py,sha256=nU3jxbkGcm
|
|
|
309
309
|
bbot/test/test_step_2/module_tests/test_module_fullhunt.py,sha256=NblfNHQrE82j-cESvm66hpN-ooKZwR1kEwJDTk_BXac,1946
|
|
310
310
|
bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py,sha256=w8FHR88mRIIr0-H_tK3ymmpJwymOb_kj2B4tcFi5kic,2155
|
|
311
311
|
bbot/test/test_step_2/module_tests/test_module_git.py,sha256=gyBS3vZUWAyatGlcY26mGOYeqXSqJA5pbhJWgTmLqNo,1656
|
|
312
|
-
bbot/test/test_step_2/module_tests/test_module_git_clone.py,sha256=
|
|
312
|
+
bbot/test/test_step_2/module_tests/test_module_git_clone.py,sha256=1hdudaW_ShcNz1o4wSENSO2lNRQgS-llx2kyRazNbso,13202
|
|
313
313
|
bbot/test/test_step_2/module_tests/test_module_github_codesearch.py,sha256=yWQoGV0v43Eikt8Hr0xavxyUI96ogGloUZJ8txpxflg,3774
|
|
314
314
|
bbot/test/test_step_2/module_tests/test_module_github_org.py,sha256=5tKO6NH4TPBeIdeTf7Bz9PUZ1pcvKsjrG0nFhc3YgT0,25458
|
|
315
315
|
bbot/test/test_step_2/module_tests/test_module_github_workflows.py,sha256=o_teEaskm3H22QEKod5KJayFvvcgOQoG4eItGWv8C8E,38006
|
|
@@ -395,8 +395,8 @@ bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt,sha256=ruUQwVfia1_m2u
|
|
|
395
395
|
bbot/wordlists/top_open_ports_nmap.txt,sha256=LmdFYkfapSxn1pVuQC2LkOIY2hMLgG-Xts7DVtYzweM,42727
|
|
396
396
|
bbot/wordlists/valid_url_schemes.txt,sha256=VciB-ww0y-O8Ii1wpTR6rJzGDiC2r-dhVsIJApS1ZYU,3309
|
|
397
397
|
bbot/wordlists/wordninja_dns.txt.gz,sha256=DYHvvfW0TvzrVwyprqODAk4tGOxv5ezNmCPSdPuDUnQ,570241
|
|
398
|
-
bbot-2.1.2.
|
|
399
|
-
bbot-2.1.2.
|
|
400
|
-
bbot-2.1.2.
|
|
401
|
-
bbot-2.1.2.
|
|
402
|
-
bbot-2.1.2.
|
|
398
|
+
bbot-2.1.2.5149rc0.dist-info/LICENSE,sha256=GzeCzK17hhQQDNow0_r0L8OfLpeTKQjFQwBQU7ZUymg,32473
|
|
399
|
+
bbot-2.1.2.5149rc0.dist-info/METADATA,sha256=Yy_VIlKuBonbmCRZGmuEyOx7YQl-vfPYRasrLFjw8cM,16964
|
|
400
|
+
bbot-2.1.2.5149rc0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
|
401
|
+
bbot-2.1.2.5149rc0.dist-info/entry_points.txt,sha256=cWjvcU_lLrzzJgjcjF7yeGuRA_eDS8pQ-kmPUAyOBfo,38
|
|
402
|
+
bbot-2.1.2.5149rc0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|