Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev -> Stable 2.3.0 #1986

Open
wants to merge 276 commits into
base: stable
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 118 commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
d469faa
add to tips and tricks
invalid-email-address Nov 16, 2024
d71e34a
fix tests
invalid-email-address Nov 16, 2024
9d48030
fix tests again
invalid-email-address Nov 16, 2024
0c5220e
fix wildcard deduplication
invalid-email-address Nov 17, 2024
c873822
allow configurable cdns
invalid-email-address Nov 18, 2024
1c32fd1
Merge branch 'dev' into portscan-cdn-detection
TheTechromancer Nov 18, 2024
b0e5bc9
Merge pull request #1955 from blacklanternsecurity/fix-multiprocess-bug
TheTechromancer Nov 18, 2024
b206ae1
bump version
invalid-email-address Nov 18, 2024
6b9f07f
Merge pull request #1969 from blacklanternsecurity/fix-excavate-bug
TheTechromancer Nov 18, 2024
e3e321a
Merge pull request #1972 from blacklanternsecurity/fix-wildcard-dedup
TheTechromancer Nov 18, 2024
83f8e10
Merge pull request #1962 from blacklanternsecurity/fix-git-bug
TheTechromancer Nov 18, 2024
45fc1f1
Merge pull request #1957 from blacklanternsecurity/better-api-key-rot…
TheTechromancer Nov 18, 2024
9933da7
strict scope reorg
invalid-email-address Oct 18, 2024
7797181
fix conflict
invalid-email-address Oct 29, 2024
154faf4
resolve conflict
invalid-email-address Nov 18, 2024
69ca122
don't use pkg_resources
invalid-email-address Oct 31, 2024
f8e49a5
print detailed thread info
invalid-email-address Oct 31, 2024
88dc5a6
fix
invalid-email-address Oct 31, 2024
a20e07a
don't blanket-mock for basic module tests
invalid-email-address Nov 4, 2024
ce295f6
don't blanket-mock for basic module tests
invalid-email-address Nov 4, 2024
e92eac6
steady work
invalid-email-address Nov 4, 2024
b49c3a4
fix tests
invalid-email-address Nov 13, 2024
e633f87
--proxy and --fast
invalid-email-address Nov 14, 2024
a328640
fix speculate
invalid-email-address Nov 14, 2024
c625d7a
add fast.yml
invalid-email-address Nov 14, 2024
80e48cf
leakix tweak
invalid-email-address Nov 14, 2024
173e71d
fix leakix tests
invalid-email-address Nov 16, 2024
1928939
Merge pull request #1875 from blacklanternsecurity/fast-mode
TheTechromancer Nov 18, 2024
ba4224a
resolve conflict
invalid-email-address Nov 4, 2024
2cd0e4e
add lock
invalid-email-address Nov 4, 2024
a267b6c
steady work
invalid-email-address Oct 30, 2024
8055276
update tags
invalid-email-address Oct 31, 2024
5238929
fix
invalid-email-address Oct 31, 2024
dffe93c
preset tests
invalid-email-address Oct 31, 2024
9bbf31e
more tests
invalid-email-address Nov 1, 2024
70fda2a
bugfixing
invalid-email-address Nov 1, 2024
df9cd27
radixtarget overhaul
invalid-email-address Nov 1, 2024
4d19fe5
add poetry.lock
invalid-email-address Nov 4, 2024
d5da47a
sort arg choices
invalid-email-address Nov 4, 2024
ccb6233
fix dns regex
invalid-email-address Nov 4, 2024
1475df9
fix dastardly tests
invalid-email-address Nov 4, 2024
092a68d
fix host error
invalid-email-address Nov 5, 2024
643269d
fix CSP extractor
invalid-email-address Nov 5, 2024
25d770a
fix tests
invalid-email-address Nov 6, 2024
2e35449
lint
invalid-email-address Nov 6, 2024
fa628fe
documentation, tests for blacklisting by regex
invalid-email-address Nov 6, 2024
99518a1
things
invalid-email-address Nov 6, 2024
bd1cc4d
add log message
invalid-email-address Nov 6, 2024
034cb93
more tests
invalid-email-address Nov 6, 2024
d2797cc
blacked
invalid-email-address Nov 6, 2024
1f3ea4e
fix conflict
invalid-email-address Nov 18, 2024
0d56dcf
add poetry.lock
invalid-email-address Nov 18, 2024
7152663
update docs
invalid-email-address Nov 7, 2024
af6d334
blacked
invalid-email-address Nov 7, 2024
9cd2aa4
fix tests
invalid-email-address Nov 7, 2024
efb2ff1
more tests
invalid-email-address Nov 7, 2024
3fc7ed4
fix bugs, thanks @Sh4d0wHunt3rX :)
invalid-email-address Nov 7, 2024
8b1bd58
fix speculate conflict
invalid-email-address Nov 18, 2024
a410392
fix cli tests
invalid-email-address Nov 17, 2024
fa044f1
update module descriptions
invalid-email-address Nov 17, 2024
211d651
support http_response
invalid-email-address Nov 18, 2024
328a688
Merge pull request #1899 from blacklanternsecurity/update-radixtarget
TheTechromancer Nov 19, 2024
cede3c6
Bump pytest-httpx from 0.30.0 to 0.34.0
dependabot[bot] Nov 19, 2024
a6ab266
fix target docs
invalid-email-address Nov 19, 2024
e15ff50
Merge pull request #1985 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Nov 19, 2024
4c732c5
more precise cloud tags
invalid-email-address Nov 19, 2024
bbee670
blacked
invalid-email-address Nov 19, 2024
afd6f1d
tag updated
invalid-email-address Nov 19, 2024
3ac32bd
update
invalid-email-address Nov 19, 2024
85225c3
Merge pull request #1942 from blacklanternsecurity/postgres
TheTechromancer Nov 19, 2024
644f6b2
Merge pull request #1987 from blacklanternsecurity/bump-version
TheTechromancer Nov 19, 2024
3fed97e
Merge pull request #1988 from blacklanternsecurity/fix-docs
TheTechromancer Nov 19, 2024
ab8dceb
Merge branch 'dev' into nmap-output-module
TheTechromancer Nov 19, 2024
5041c16
organize
invalid-email-address Nov 19, 2024
87b9f75
fix portscan tests
invalid-email-address Nov 19, 2024
820c6e4
fix tests, remove debug statement
invalid-email-address Nov 20, 2024
c760d0b
[create-pull-request] automated change
TheTechromancer Nov 20, 2024
811ef7e
Merge pull request #1975 from blacklanternsecurity/update-docs
TheTechromancer Nov 20, 2024
0fd7102
fix cloudcheck bug
invalid-email-address Nov 20, 2024
cb1b967
fix portscan test
invalid-email-address Nov 20, 2024
1286a94
fix portscan tests
invalid-email-address Nov 20, 2024
b054b15
Update trufflehog
blsaccess Nov 21, 2024
2323594
Merge pull request #1995 from blacklanternsecurity/update-trufflehog
TheTechromancer Nov 21, 2024
0adf09d
Keep GitHub Actions up to date with GitHub's Dependabot
cclauss Nov 21, 2024
a51f0ef
Keep the dict sorted by keys to spot two duplicates
cclauss Nov 21, 2024
7a26960
Merge pull request #1996 from cclauss/patch-3
TheTechromancer Nov 21, 2024
fea0e17
Merge pull request #1998 from cclauss/duplicate-dict-keys-in-libmagic.py
TheTechromancer Nov 21, 2024
46b6799
Update README.md
noob6t5 Nov 21, 2024
aa20fa1
Merge pull request #2000 from noob6t5/patch-1
TheTechromancer Nov 21, 2024
7554de3
fix subdomain enum bug
invalid-email-address Nov 21, 2024
eaef028
fix conflict
invalid-email-address Nov 21, 2024
b10ac30
Merge pull request #2002 from blacklanternsecurity/fix-subdomain-enum…
TheTechromancer Nov 21, 2024
adda860
Merge branch 'dev' into mysql
TheTechromancer Nov 21, 2024
eea7ebb
Merge pull request #1970 from blacklanternsecurity/portscan-cdn-detec…
TheTechromancer Nov 21, 2024
26c54dc
Merge pull request #1991 from blacklanternsecurity/better-cloud-tagging
TheTechromancer Nov 21, 2024
a658c4b
Merge pull request #1982 from blacklanternsecurity/retry-deps
TheTechromancer Nov 21, 2024
d16a885
Merge pull request #1944 from blacklanternsecurity/mysql
TheTechromancer Nov 21, 2024
3b6aaa9
misc small bugfixes
invalid-email-address Nov 21, 2024
76ba77f
Merge pull request #2005 from blacklanternsecurity/misc-small-bugfixes
TheTechromancer Nov 21, 2024
13d87c6
Update nuclei
blsaccess Nov 22, 2024
97b3df7
[create-pull-request] automated change
TheTechromancer Nov 22, 2024
0178346
Merge pull request #2008 from blacklanternsecurity/update-docs
TheTechromancer Nov 22, 2024
b6c96c7
initial release of dnstlsrpt module
colin-stubbs Nov 22, 2024
785fd62
Merge pull request #2006 from blacklanternsecurity/update-nuclei
TheTechromancer Nov 22, 2024
e4ad4a6
Merge pull request #2009 from colin-stubbs/dnstlsrpt
TheTechromancer Nov 22, 2024
835665c
ruff check && ruff format
cclauss Nov 22, 2024
0b18b9a
Update trufflehog
blsaccess Nov 23, 2024
5258751
Merge pull request #2012 from cclauss/ruff-check-and-format
TheTechromancer Nov 23, 2024
5243a6b
[create-pull-request] automated change
TheTechromancer Nov 23, 2024
4118b3a
Merge pull request #2016 from blacklanternsecurity/update-docs
TheTechromancer Nov 23, 2024
0b8a869
Merge pull request #2014 from blacklanternsecurity/update-trufflehog
TheTechromancer Nov 23, 2024
9c55d9e
ruff check --fix --unsafe-fixes
cclauss Nov 21, 2024
1e4ed43
ruff check && ruff format
cclauss Nov 23, 2024
1bf5036
ruff: Fix comprehension and other performance issues
cclauss Nov 23, 2024
3c9117b
poetry remove ruff && poetry add --group=dev ruff
cclauss Nov 23, 2024
5e8148b
Merge pull request #1997 from cclauss/ruff-check--fix
TheTechromancer Nov 23, 2024
15464b6
Merge pull request #2021 from cclauss/ruff-comprehensions-and-perform…
TheTechromancer Nov 23, 2024
1a4488f
[create-pull-request] automated change
TheTechromancer Nov 24, 2024
0984a77
Merge pull request #2023 from blacklanternsecurity/update-docs
TheTechromancer Nov 24, 2024
cbd046a
Fix typos discovered by codespell
cclauss Nov 24, 2024
fa3e629
pyproject.toml Add [tool.codespell] config
cclauss Nov 24, 2024
052b242
version_updater.yml: Update GitHub Actions
cclauss Nov 24, 2024
1f47ce1
Bump uvicorn from 0.32.0 to 0.32.1
dependabot[bot] Nov 25, 2024
78be541
Bump pydantic from 2.9.2 to 2.10.1
dependabot[bot] Nov 25, 2024
916104e
Bump pytest-rerunfailures from 14.0 to 15.0
dependabot[bot] Nov 25, 2024
81e8429
Bump mkdocs-material from 9.5.44 to 9.5.45
dependabot[bot] Nov 25, 2024
697d20e
Merge pull request #2035 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Nov 25, 2024
2a5044f
Merge pull request #2034 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Nov 25, 2024
3f422f5
Merge pull request #2033 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Nov 25, 2024
dff8558
Merge pull request #2032 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Nov 25, 2024
94a0de1
Merge pull request #2029 from cclauss/patch-4
TheTechromancer Nov 25, 2024
691d0c7
Merge pull request #2025 from cclauss/codespell
TheTechromancer Nov 25, 2024
a1f367a
git add .pre-commit-config.yaml
cclauss Nov 23, 2024
8ed0708
Merge pull request #2022 from cclauss/patch-3
TheTechromancer Nov 25, 2024
ecf6d00
Fix ruff rules E711,E712,E713,E731,F541
cclauss Nov 25, 2024
ce1b577
Merge pull request #2037 from cclauss/more-ruff
TheTechromancer Nov 25, 2024
555a4de
fix dnsresolve bug
invalid-email-address Nov 26, 2024
b4c316f
fix tests
invalid-email-address Nov 26, 2024
28c6732
Merge pull request #2040 from blacklanternsecurity/dnsresolve-dedup-fix
TheTechromancer Nov 26, 2024
f8a558c
Bump pydantic from 2.10.1 to 2.10.2
dependabot[bot] Dec 2, 2024
46ea715
Bump ruff from 0.8.0 to 0.8.1
dependabot[bot] Dec 2, 2024
921043d
Bump pyjwt from 2.10.0 to 2.10.1
dependabot[bot] Dec 2, 2024
1794879
Bump mkdocs-material from 9.5.45 to 9.5.47
dependabot[bot] Dec 2, 2024
4ad3323
Merge pull request #2047 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 2, 2024
7d065bc
Merge pull request #2048 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 2, 2024
58d5716
Merge pull request #2049 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 2, 2024
2330d5b
Merge pull request #2051 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 2, 2024
6ac0f81
Bump pytest from 8.3.3 to 8.3.4
dependabot[bot] Dec 2, 2024
e4ba009
dependabot.yml: GitHub Action update PRs target-branch: "dev"
cclauss Nov 26, 2024
0ec9aa9
Merge pull request #2041 from cclauss/patch-3
TheTechromancer Dec 2, 2024
5ea8161
Update nuclei
blsaccess Dec 3, 2024
3afe3e9
Update trufflehog
blsaccess Dec 3, 2024
4d54faf
Merge pull request #2054 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 3, 2024
963acd4
Merge pull request #2053 from blacklanternsecurity/update-nuclei
TheTechromancer Dec 3, 2024
cdbcf54
remove unnecessary log message
invalid-email-address Dec 3, 2024
01c01e3
fix blacklist logging
invalid-email-address Dec 3, 2024
e3525b7
Merge branch 'dev' into nmap-output-module
TheTechromancer Dec 4, 2024
2133597
ruff
invalid-email-address Dec 4, 2024
d52da46
ruff go away
invalid-email-address Dec 4, 2024
865fd17
mysql author/created date
invalid-email-address Dec 4, 2024
6608c9d
amir
invalid-email-address Dec 4, 2024
0b36036
Merge pull request #2057 from blacklanternsecurity/fix-blacklist-logging
TheTechromancer Dec 5, 2024
451742d
Merge pull request #2050 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 5, 2024
3d40f6b
update docker
invalid-email-address Dec 5, 2024
4d08937
better docker documentation
invalid-email-address Dec 5, 2024
4d18c8c
Merge pull request #1971 from blacklanternsecurity/nmap-output-module
TheTechromancer Dec 5, 2024
7e53091
update radixtarget, cloudcheck
invalid-email-address Dec 7, 2024
c56645e
fix extractous bug
invalid-email-address Dec 8, 2024
ffbaf5f
disable cloudcheck HTTP_RESPONSE extraction
invalid-email-address Dec 8, 2024
d970cc3
fix test
invalid-email-address Dec 8, 2024
3b6d22e
httpx orjson
invalid-email-address Dec 8, 2024
319c9c3
httpx performance boost
invalid-email-address Dec 8, 2024
6e38ca7
Merge pull request #2063 from blacklanternsecurity/fix-extractous
TheTechromancer Dec 9, 2024
6423d9f
Merge pull request #2065 from blacklanternsecurity/cloudcheck-temp-fix
TheTechromancer Dec 9, 2024
c3ed71f
[create-pull-request] automated change
TheTechromancer Dec 9, 2024
29c135d
Merge pull request #2039 from blacklanternsecurity/update-docs
TheTechromancer Dec 9, 2024
9dabf00
Bump cloudcheck from 6.0.0.661 to 6.0.0.686
dependabot[bot] Dec 9, 2024
8c27edb
Bump mkdocs-material from 9.5.47 to 9.5.48
dependabot[bot] Dec 9, 2024
c9b52e8
Bump ruff from 0.8.1 to 0.8.2
dependabot[bot] Dec 9, 2024
b21dc18
Bump fastapi from 0.115.5 to 0.115.6
dependabot[bot] Dec 9, 2024
48b8b2c
Merge pull request #2068 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
64a9873
Merge pull request #2069 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
8f27e98
Merge pull request #2070 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
d4381fb
Merge pull request #2072 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
879dc10
Bump radixtarget from 2.0.0.50 to 2.0.0.58
dependabot[bot] Dec 9, 2024
949c046
Bump pydantic from 2.10.2 to 2.10.3
dependabot[bot] Dec 9, 2024
033fa63
Merge pull request #2071 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
e4905f8
Merge pull request #2073 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 9, 2024
3eb2a78
Update trufflehog
blsaccess Dec 12, 2024
2415fdb
Merge pull request #2060 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 13, 2024
85c3c33
Bump uvicorn from 0.32.1 to 0.34.0
dependabot[bot] Dec 16, 2024
6ac53c8
Bump ruff from 0.8.2 to 0.8.3
dependabot[bot] Dec 16, 2024
5bf057b
Merge pull request #2084 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 16, 2024
f86c8cd
Merge pull request #2083 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 16, 2024
a4fae73
Bump pytest-asyncio from 0.24.0 to 0.25.0
dependabot[bot] Dec 16, 2024
05110e4
Merge pull request #2082 from blacklanternsecurity/dependabot/pip/dev…
TheTechromancer Dec 16, 2024
89783c1
[create-pull-request] automated change
TheTechromancer Dec 17, 2024
9b755e4
misc bugfixes
invalid-email-address Dec 17, 2024
da8dc49
Merge pull request #2080 from blacklanternsecurity/update-docs
TheTechromancer Dec 17, 2024
a56c924
update release history
invalid-email-address Dec 17, 2024
9f50136
update release history
invalid-email-address Dec 17, 2024
5bd7682
Merge pull request #2086 from blacklanternsecurity/misc-bugfixes
TheTechromancer Dec 17, 2024
7b8c153
fix deps bug
invalid-email-address Dec 17, 2024
6a10acc
undo testing
invalid-email-address Dec 17, 2024
6aa0e28
fix tests
invalid-email-address Dec 17, 2024
1078d47
Merge pull request #2087 from blacklanternsecurity/misc-bugfixes
TheTechromancer Dec 17, 2024
5365630
Update trufflehog
blsaccess Dec 18, 2024
48c0859
Merge pull request #2088 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 18, 2024
9a30d93
replace secretsdb with trufflehog
invalid-email-address Dec 18, 2024
3407637
fix test
invalid-email-address Dec 18, 2024
9fedf1d
support filesystem, mobile app targets
invalid-email-address Dec 18, 2024
652f1cd
fix trufflehog tests
invalid-email-address Dec 18, 2024
354bf97
install compression tools as core deps
invalid-email-address Dec 18, 2024
9366687
test troubleshooting
invalid-email-address Dec 18, 2024
f854493
fix web report test
invalid-email-address Dec 18, 2024
e47b043
fix preset testsg
invalid-email-address Dec 18, 2024
f1c487e
fix tests
invalid-email-address Dec 18, 2024
53bda48
fix conflict
invalid-email-address Dec 18, 2024
b108fae
add RAW_TEXT support to trufflehog
invalid-email-address Dec 18, 2024
40d1aff
ruffed
invalid-email-address Dec 18, 2024
cab7aaa
fix tests
invalid-email-address Dec 18, 2024
6819411
silence ansible
invalid-email-address Dec 18, 2024
e41b162
Merge pull request #2061 from blacklanternsecurity/update-cloudcheck
TheTechromancer Dec 18, 2024
a7b8c31
Update trufflehog
blsaccess Dec 19, 2024
42eebcd
Merge pull request #2099 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 19, 2024
f8a8e8d
fixing issues with mailto links and parameter extraction
liquidsec Dec 19, 2024
0997b7c
fix gowitness file error
invalid-email-address Dec 19, 2024
5ff59a4
fix filedownload bug
invalid-email-address Dec 19, 2024
5ece164
better debug message
invalid-email-address Dec 19, 2024
c31eb86
add test
invalid-email-address Dec 19, 2024
dc25be3
more testing
invalid-email-address Dec 19, 2024
bfa0def
fix?
invalid-email-address Dec 19, 2024
00c27ea
Merge pull request #2093 from blacklanternsecurity/add-filesystem-tar…
TheTechromancer Dec 19, 2024
06b26df
fix test?
invalid-email-address Dec 19, 2024
22773f7
fix test
invalid-email-address Dec 19, 2024
48bf17b
unrar-free
invalid-email-address Dec 19, 2024
e8f6477
fix test?
invalid-email-address Dec 19, 2024
76c8e77
Update trufflehog
blsaccess Dec 20, 2024
d5ce97c
Merge pull request #2106 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 20, 2024
798670d
Merge pull request #2104 from blacklanternsecurity/tag-attribute-rege…
TheTechromancer Dec 20, 2024
b20c231
Merge pull request #2092 from blacklanternsecurity/delete-secretsdb
TheTechromancer Dec 20, 2024
1b02030
Merge pull request #2096 from blacklanternsecurity/compression-core-deps
TheTechromancer Dec 20, 2024
5db65e1
Merge pull request #2105 from blacklanternsecurity/misc-bugfixes
TheTechromancer Dec 20, 2024
df02ef3
fix https://github.com/blacklanternsecurity/bbot/issues/2102
invalid-email-address Dec 20, 2024
5c2bda1
don't allow events with no data
invalid-email-address Dec 20, 2024
f6fdd79
Merge pull request #2107 from blacklanternsecurity/misc-bugfixes
TheTechromancer Dec 20, 2024
bdce64c
fix cloudcheck bug
invalid-email-address Dec 20, 2024
4bb7993
Update trufflehog
blsaccess Dec 21, 2024
6d2ae67
Merge pull request #2108 from blacklanternsecurity/misc-bugfixes
TheTechromancer Dec 21, 2024
7560ca4
Merge pull request #2109 from blacklanternsecurity/update-trufflehog
TheTechromancer Dec 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,11 @@ updates:
interval: "weekly"
target-branch: "dev"
open-pull-requests-limit: 10
- package-ecosystem: github-actions
directory: /
groups:
github-actions:
patterns:
- "*" # Group all Actions updates into a single larger pull request
schedule:
interval: weekly
10 changes: 5 additions & 5 deletions .github/workflows/distro_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,17 @@ jobs:
if [ "$ID" = "ubuntu" ] || [ "$ID" = "debian" ] || [ "$ID" = "kali" ] || [ "$ID" = "parrotsec" ]; then
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get -y install curl git bash build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
apt-get -y install curl git bash build-essential docker.io libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev
elif [ "$ID" = "alpine" ]; then
apk add --no-cache bash gcc g++ musl-dev libffi-dev curl git make openssl-dev bzip2-dev zlib-dev xz-dev sqlite-dev
apk add --no-cache bash gcc g++ musl-dev libffi-dev docker curl git make openssl-dev bzip2-dev zlib-dev xz-dev sqlite-dev
elif [ "$ID" = "arch" ]; then
pacman -Syu --noconfirm curl git bash base-devel
pacman -Syu --noconfirm curl docker git bash base-devel
elif [ "$ID" = "fedora" ]; then
dnf install -y curl git bash gcc make openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel tk-devel gdbm-devel readline-devel sqlite-devel python3-libdnf5
dnf install -y curl docker git bash gcc make openssl-devel bzip2-devel libffi-devel zlib-devel xz-devel tk-devel gdbm-devel readline-devel sqlite-devel python3-libdnf5
elif [ "$ID" = "gentoo" ]; then
echo "media-libs/libglvnd X" >> /etc/portage/package.use/libglvnd
emerge-webrsync
emerge --update --newuse dev-vcs/git media-libs/mesa curl bash
emerge --update --newuse dev-vcs/git media-libs/mesa curl docker bash
fi
fi

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs_updater.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,5 @@ jobs:
token: ${{ secrets.BBOT_DOCS_UPDATER_PAT }}
branch: update-docs
base: dev
title: "Daily Docs Update"
title: "Automated Docs Update"
body: "This is an automated pull request to update the documentation."
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ jobs:
poetry install
- name: Run tests
run: |
poetry run pytest --exitfirst --reruns 2 -o timeout_func_only=true --timeout 1200 --disable-warnings --log-cli-level=INFO --cov-config=bbot/test/coverage.cfg --cov-report xml:cov.xml --cov=bbot .
poetry run pytest -vv --exitfirst --reruns 2 -o timeout_func_only=true --timeout 1200 --disable-warnings --log-cli-level=INFO --cov-config=bbot/test/coverage.cfg --cov-report xml:cov.xml --cov=bbot .
- name: Upload Debug Logs
uses: actions/upload-artifact@v3
with:
Expand Down
26 changes: 24 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ description: Recursive web spider
modules:
- httpx

blacklist:
# Prevent spider from invalidating sessions by logging out
- "RE:/.*(sign|log)[_-]?out"

config:
web:
# how many links to follow in a row
Expand Down Expand Up @@ -191,10 +195,10 @@ flags:

```bash
# everything everywhere all at once
bbot -t evilcorp.com -p kitchen-sink
bbot -t evilcorp.com -p kitchen-sink --allow-deadly

# roughly equivalent to:
bbot -t evilcorp.com -p subdomain-enum cloud-enum code-enum email-enum spider web-basic paramminer dirbust-light web-screenshots
bbot -t evilcorp.com -p subdomain-enum cloud-enum code-enum email-enum spider web-basic paramminer dirbust-light web-screenshots --allow-deadly
```

<!-- BBOT KITCHEN-SINK PRESET EXPANDABLE -->
Expand Down Expand Up @@ -236,6 +240,24 @@ Click the graph below to explore the [inner workings](https://www.blacklanternse

[![image](https://github.com/blacklanternsecurity/bbot/assets/20261699/e55ba6bd-6d97-48a6-96f0-e122acc23513)](https://www.blacklanternsecurity.com/bbot/Stable/how_it_works/)

## Output Modules

- [Neo4j](docs/scanning/output.md#neo4j)
- [Teams](docs/scanning/output.md#teams)
- [Discord](docs/scanning/output.md#discord)
- [Slack](docs/scanning/output.md#slack)
- [Postgres](docs/scanning/output.md#postgres)
- [MySQL](docs/scanning/output.md#mysql)
- [SQLite](docs/scanning/output.md#sqlite)
- [Splunk](docs/scanning/output.md#splunk)
- [Elasticsearch](docs/scanning/output.md#elasticsearch)
- [CSV](docs/scanning/output.md#csv)
- [JSON](docs/scanning/output.md#json)
- [HTTP](docs/scanning/output.md#http)
- [Websocket](docs/scanning/output.md#websocket)

...and [more](docs/scanning/output.md)!

## BBOT as a Python Library

#### Synchronous
Expand Down
2 changes: 1 addition & 1 deletion bbot/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ async def _main():
if sys.stdin.isatty():

# warn if any targets belong directly to a cloud provider
for event in scan.target.events:
for event in scan.target.seeds.events:
if event.type == "DNS_NAME":
cloudcheck_result = scan.helpers.cloudcheck(event.host)
if cloudcheck_result:
Expand Down
9 changes: 6 additions & 3 deletions bbot/core/config/logger.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import os
import sys
import atexit
import logging
Expand All @@ -9,6 +10,7 @@

from ..helpers.misc import mkdir, error_and_exit
from ...logger import colorize, loglevel_mapping
from ..multiprocess import SHARED_INTERPRETER_STATE


debug_format = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s %(filename)s:%(lineno)s %(message)s")
Expand Down Expand Up @@ -65,8 +67,9 @@ def __init__(self, core):

self.listener = None

self.process_name = multiprocessing.current_process().name
if self.process_name == "MainProcess":
# if we haven't set up logging yet, do it now
if not "_BBOT_LOGGING_SETUP" in os.environ:
os.environ["_BBOT_LOGGING_SETUP"] = "1"
self.queue = multiprocessing.Queue()
self.setup_queue_handler()
# Start the QueueListener
Expand Down Expand Up @@ -113,7 +116,7 @@ def setup_queue_handler(self, logging_queue=None, log_level=logging.DEBUG):

self.core_logger.setLevel(log_level)
# disable asyncio logging for child processes
if self.process_name != "MainProcess":
if not SHARED_INTERPRETER_STATE.is_main_process:
logging.getLogger("asyncio").setLevel(logging.ERROR)

def addLoggingLevel(self, levelName, levelNum, methodName=None):
Expand Down
23 changes: 20 additions & 3 deletions bbot/core/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from omegaconf import OmegaConf

from bbot.errors import BBOTError
from .multiprocess import SHARED_INTERPRETER_STATE


DEFAULT_CONFIG = None
Expand Down Expand Up @@ -41,9 +42,23 @@ def __init__(self):
self.logger
self.log = logging.getLogger("bbot.core")

self._prep_multiprocessing()

def _prep_multiprocessing(self):
import multiprocessing
from .helpers.process import BBOTProcess

if SHARED_INTERPRETER_STATE.is_main_process:
# if this is the main bbot process, set the logger and queue for the first time
from functools import partialmethod

self.process_name = multiprocessing.current_process().name
BBOTProcess.__init__ = partialmethod(
BBOTProcess.__init__, log_level=self.logger.log_level, log_queue=self.logger.queue
)

# this makes our process class the default for process pools, etc.
mp_context = multiprocessing.get_context("spawn")
mp_context.Process = BBOTProcess

@property
def home(self):
Expand Down Expand Up @@ -187,12 +202,14 @@ def create_process(self, *args, **kwargs):
if os.environ.get("BBOT_TESTING", "") == "True":
process = self.create_thread(*args, **kwargs)
else:
if self.process_name == "MainProcess":
if SHARED_INTERPRETER_STATE.is_scan_process:
from .helpers.process import BBOTProcess

process = BBOTProcess(*args, **kwargs)
else:
raise BBOTError(f"Tried to start server from process {self.process_name}")
import multiprocessing

raise BBOTError(f"Tried to start server from process {multiprocessing.current_process().name}")
process.daemon = True
return process

Expand Down
10 changes: 5 additions & 5 deletions bbot/core/engine.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@
import contextlib
import contextvars
import zmq.asyncio
import multiprocessing
from pathlib import Path
from concurrent.futures import CancelledError
from contextlib import asynccontextmanager, suppress

from bbot.core import CORE
from bbot.errors import BBOTEngineError
from bbot.core.helpers.async_helpers import get_event_loop
from bbot.core.multiprocess import SHARED_INTERPRETER_STATE
from bbot.core.helpers.misc import rand_string, in_exception_chain


Expand Down Expand Up @@ -264,10 +266,8 @@ def available_commands(self):
return [s for s in self.CMDS if isinstance(s, str)]

def start_server(self):
import multiprocessing

process_name = multiprocessing.current_process().name
if process_name == "MainProcess":
if SHARED_INTERPRETER_STATE.is_scan_process:
kwargs = dict(self.server_kwargs)
# if we're in tests, we use a single event loop to avoid weird race conditions
# this allows us to more easily mock http, etc.
Expand Down Expand Up @@ -641,7 +641,7 @@ async def finished_tasks(self, tasks, timeout=None):
except BaseException as e:
if isinstance(e, (TimeoutError, asyncio.exceptions.TimeoutError)):
self.log.warning(f"{self.name}: Timeout after {timeout:,} seconds in finished_tasks({tasks})")
for task in tasks:
for task in list(tasks):
task.cancel()
self._await_cancelled_task(task)
else:
Expand Down Expand Up @@ -683,5 +683,5 @@ async def cancel_all_tasks(self):
for client_id in list(self.tasks):
await self.cancel_task(client_id)
for client_id, tasks in self.child_tasks.items():
for task in tasks:
for task in list(tasks):
await self._await_cancelled_task(task)
53 changes: 39 additions & 14 deletions bbot/core/event/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,21 @@ def host_original(self):
return self.host
return self._host_original

@property
def host_filterable(self):
"""
A string version of the event that's used for regex-based blacklisting.

For example, the user can specify "REGEX:.*.evilcorp.com" in their blacklist, and this regex
will be applied against this property.
"""
parsed_url = getattr(self, "parsed_url", None)
if parsed_url is not None:
return parsed_url.geturl()
if self.host is not None:
return str(self.host)
return ""

@property
def port(self):
self.host
Expand Down Expand Up @@ -1003,13 +1018,15 @@ def __init__(self, *args, **kwargs):
if parent_url is not None:
self.data["url"] = parent_url.geturl()
# inherit closest path
if not "path" in self.data and isinstance(parent.data, dict):
if not "path" in self.data and isinstance(parent.data, dict) and not parent.type == "HTTP_RESPONSE":
parent_path = parent.data.get("path", None)
if parent_path is not None:
self.data["path"] = parent_path
# inherit closest host
if parent.host:
self.data["host"] = str(parent.host)
# we do this to refresh the hash
self.data = self.data
break
# die if we still haven't found a host
if not self.host:
Expand Down Expand Up @@ -1112,8 +1129,7 @@ def __init__(self, *args, **kwargs):
class IP_RANGE(DnsEvent):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
net = ipaddress.ip_network(self.data, strict=False)
self.add_tag(f"ipv{net.version}")
self.add_tag(f"ipv{self.host.version}")

def sanitize_data(self, data):
return str(ipaddress.ip_network(str(data), strict=False))
Expand Down Expand Up @@ -1559,6 +1575,8 @@ def __init__(self, *args, **kwargs):
self.add_tag("compressed")
self.add_tag(f"{compression}-archive")
self.data["compression"] = compression
# refresh hash
self.data = self.data


class RAW_DNS_RECORD(DictHostEvent, DnsEvent):
Expand Down Expand Up @@ -1639,23 +1657,23 @@ def make_event(
tags = set(tags)

if is_event(data):
data = copy(data)
if scan is not None and not data.scan:
data.scan = scan
if scans is not None and not data.scans:
data.scans = scans
event = copy(data)
if scan is not None and not event.scan:
event.scan = scan
if scans is not None and not event.scans:
event.scans = scans
if module is not None:
data.module = module
event.module = module
if parent is not None:
data.parent = parent
event.parent = parent
if context is not None:
data.discovery_context = context
event.discovery_context = context
if internal == True:
data.internal = True
event.internal = True
if tags:
data.tags = tags.union(data.tags)
event.tags = tags.union(event.tags)
event_type = data.type
return data
return event
else:
if event_type is None:
event_type, data = get_event_type(data)
Expand Down Expand Up @@ -1685,6 +1703,13 @@ def make_event(
if event_type == "USERNAME" and validators.soft_validate(data, "email"):
event_type = "EMAIL_ADDRESS"
tags.add("affiliate")
# Convert single-host IP_RANGE to IP_ADDRESS
if event_type == "IP_RANGE":
with suppress(Exception):
net = ipaddress.ip_network(data, strict=False)
if net.prefixlen == net.max_prefixlen:
event_type = "IP_ADDRESS"
data = net.network_address

event_class = globals().get(event_type, DefaultEvent)

Expand Down
9 changes: 8 additions & 1 deletion bbot/core/helpers/bloom.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,15 @@ def _fnv1a_hash(self, data):
hash = (hash * 0x01000193) % 2**32 # 16777619
return hash

def __del__(self):
def close(self):
"""Explicitly close the memory-mapped file."""
self.mmap_file.close()

def __del__(self):
try:
self.close()
except Exception:
pass

def __contains__(self, item):
return self.check(item)
7 changes: 4 additions & 3 deletions bbot/core/helpers/command.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,10 @@ async def _write_proc_line(proc, chunk):
return True
except Exception as e:
proc_args = [str(s) for s in getattr(proc, "args", [])]
command = " ".join(proc_args)
log.warning(f"Error writing line to stdin for command: {command}: {e}")
log.trace(traceback.format_exc())
command = " ".join(proc_args).strip()
if command:
log.warning(f"Error writing line to stdin for command: {command}: {e}")
log.trace(traceback.format_exc())
return False


Expand Down
Loading
Loading