bbot 2.3.0.5504rc0__tar.gz → 2.3.0.5515rc0__tar.gz
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-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/PKG-INFO +1 -1
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/__init__.py +1 -1
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/event/base.py +4 -1
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/depsinstaller/installer.py +70 -30
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/filedownload.py +3 -1
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/gowitness.py +3 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +25 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +32 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/pyproject.toml +1 -1
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/LICENSE +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/README.md +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/cli.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/config/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/config/files.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/config/logger.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/core.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/engine.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/event/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/event/helpers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/flags.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/async_helpers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/bloom.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/cache.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/command.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/diff.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/brute.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/dns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/engine.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/helpers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/dns/mock.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/files.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/helper.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/interactsh.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/libmagic.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/misc.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/names_generator.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/ntlm.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/process.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/ratelimiter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/regex.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/regexes.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/url.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/validators.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/web/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/web/client.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/web/engine.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/web/web.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/helpers/wordcloud.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/modules.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/multiprocess.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/core/shared_deps.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/db/sql/models.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/defaults.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/errors.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/logger.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ajaxpro.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/anubisdb.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/apkpure.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/azure_realm.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/azure_tenant.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/baddns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/baddns_direct.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/baddns_zone.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/badsecrets.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/base.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bevigil.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/binaryedge.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_amazon.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_azure.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_digitalocean.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_file_enum.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_firebase.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bucket_google.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bufferoverrun.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/builtwith.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/bypass403.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/c99.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/censys.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/certspotter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/chaos.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/code_repository.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/columbus.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/credshed.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/crt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/deadly/dastardly.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/deadly/ffuf.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/deadly/nuclei.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/deadly/vhost.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dehashed.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/digitorus.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnsbimi.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnsbrute.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnscaa.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnscommonsrv.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnsdumpster.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dnstlsrpt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/docker_pull.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dockerhub.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/dotnetnuke.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/emailformat.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/extractous.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ffuf_shortnames.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/fingerprintx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/fullhunt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/generic_ssrf.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/git.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/git_clone.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/github_codesearch.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/github_org.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/github_workflows.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/gitlab.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/google_playstore.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/hackertarget.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/host_header.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/httpx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/hunt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/hunterio.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/iis_shortnames.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/aggregate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/base.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/cloudcheck.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/dnsresolve.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/excavate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internal/speculate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/internetdb.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ip2location.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ipneighbor.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ipstack.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/jadx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/leakix.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/myssl.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/newsletters.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/ntlm.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/oauth.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/otx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/asset_inventory.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/base.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/csv.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/discord.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/emails.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/http.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/json.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/mysql.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/neo4j.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/nmap_xml.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/postgres.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/python.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/slack.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/splunk.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/sqlite.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/stdout.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/subdomains.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/teams.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/txt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/web_report.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/output/websocket.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/paramminer_cookies.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/paramminer_getparams.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/paramminer_headers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/passivetotal.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/pgp.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/portscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/postman.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/postman_download.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/rapiddns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/report/affiliates.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/report/asn.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/report/base.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/robots.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/securitytrails.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/securitytxt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/shodan_dns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/sitedossier.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/skymem.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/smuggler.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/social.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/sslcert.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/subdomaincenter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/subdomainradar.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/telerik.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/bucket.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/github.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/postman.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/shodan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/sql.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/templates/webhook.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/trickest.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/trufflehog.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/url_manipulation.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/urlscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/viewdns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/virustotal.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/wafw00f.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/wappalyzer.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/wayback.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/wpscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/modules/zoomeye.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/baddns-thorough.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/cloud-enum.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/code-enum.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/email-enum.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/fast.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/kitchen-sink.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/spider.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/subdomain-enum.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web/dirbust-light.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web/dotnet-audit.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web/paramminer.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web-basic.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web-screenshots.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/presets/web-thorough.yml +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/dispatcher.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/manager.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/args.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/conditions.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/environ.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/path.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/preset/preset.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/scanner.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/stats.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scanner/target.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/scripts/docs.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/bbot_fixtures.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/conftest.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/coverage.cfg +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/fastapi_test.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/owasp_mastg.apk +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/run_tests.sh +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test.conf +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_output.ndjson +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_bbot_fastapi.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_cli.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_command.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_config.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_dns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_docs.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_engine.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_events.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_files.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_presets.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_scan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_scope.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_target.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_1/test_web.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_binaryedge.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_columbus.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dastardly.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbimi.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_extractous.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_internetdb.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_jadx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_mysql.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_nmap_xml.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_postgres.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_sqlite.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/testsslcert.pem +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/test/testsslkey.pem +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/devops_mutations.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/ffuf_shortname_candidates.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/nameservers.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
- {bbot-2.3.0.5504rc0 → bbot-2.3.0.5515rc0}/bbot/wordlists/wordninja_dns.txt.gz +0 -0
|
@@ -590,7 +590,7 @@ class BaseEvent:
|
|
|
590
590
|
if t in ("spider-danger", "spider-max"):
|
|
591
591
|
self.add_tag(t)
|
|
592
592
|
elif not self._dummy:
|
|
593
|
-
log.warning(f"Tried to set invalid parent on {self}: (got: {parent})")
|
|
593
|
+
log.warning(f"Tried to set invalid parent on {self}: (got: {repr(parent)} ({type(parent)}))")
|
|
594
594
|
|
|
595
595
|
@property
|
|
596
596
|
def parent_id(self):
|
|
@@ -1045,6 +1045,9 @@ class DictPathEvent(DictEvent):
|
|
|
1045
1045
|
blob = None
|
|
1046
1046
|
try:
|
|
1047
1047
|
self._data_path = Path(data["path"])
|
|
1048
|
+
# prepend the scan's home dir if the path is relative
|
|
1049
|
+
if not self._data_path.is_absolute():
|
|
1050
|
+
self._data_path = self.scan.home / self._data_path
|
|
1048
1051
|
if self._data_path.is_file():
|
|
1049
1052
|
self.add_tag("file")
|
|
1050
1053
|
if file_blobs:
|
|
@@ -20,11 +20,43 @@ log = logging.getLogger("bbot.core.helpers.depsinstaller")
|
|
|
20
20
|
|
|
21
21
|
|
|
22
22
|
class DepsInstaller:
|
|
23
|
+
CORE_DEPS = {
|
|
24
|
+
# core BBOT dependencies in the format of binary: package_name
|
|
25
|
+
# each one will only be installed if the binary is not found
|
|
26
|
+
"unzip": "unzip",
|
|
27
|
+
"zipinfo": "unzip",
|
|
28
|
+
"curl": "curl",
|
|
29
|
+
"git": "git",
|
|
30
|
+
"make": "make",
|
|
31
|
+
"gcc": "gcc",
|
|
32
|
+
"bash": "bash",
|
|
33
|
+
"which": "which",
|
|
34
|
+
"unrar": "unrar-free",
|
|
35
|
+
"tar": "tar",
|
|
36
|
+
# debian why are you like this
|
|
37
|
+
"7z": [
|
|
38
|
+
{
|
|
39
|
+
"name": "Install 7zip (Debian)",
|
|
40
|
+
"package": {"name": ["p7zip-full"], "state": "present"},
|
|
41
|
+
"become": True,
|
|
42
|
+
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"name": "Install 7zip (Non-Debian)",
|
|
46
|
+
"package": {"name": ["p7zip"], "state": "present"},
|
|
47
|
+
"become": True,
|
|
48
|
+
"when": "ansible_facts['os_family'] != 'Debian'",
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
}
|
|
52
|
+
|
|
23
53
|
def __init__(self, parent_helper):
|
|
24
54
|
self.parent_helper = parent_helper
|
|
25
55
|
self.preset = self.parent_helper.preset
|
|
26
56
|
self.core = self.preset.core
|
|
27
57
|
|
|
58
|
+
self.os_platform = os_platform()
|
|
59
|
+
|
|
28
60
|
# respect BBOT's http timeout
|
|
29
61
|
self.web_config = self.parent_helper.config.get("web", {})
|
|
30
62
|
http_timeout = self.web_config.get("http_timeout", 30)
|
|
@@ -202,28 +234,32 @@ class DepsInstaller:
|
|
|
202
234
|
"""
|
|
203
235
|
Install packages with the OS's default package manager (apt, pacman, dnf, etc.)
|
|
204
236
|
"""
|
|
205
|
-
|
|
237
|
+
args, kwargs = self._make_apt_ansible_args(packages)
|
|
238
|
+
success, err = self.ansible_run(module="package", args=args, **kwargs)
|
|
239
|
+
if success:
|
|
240
|
+
log.info(f'Successfully installed OS packages "{",".join(sorted(packages))}"')
|
|
241
|
+
else:
|
|
242
|
+
log.warning(
|
|
243
|
+
f"Failed to install OS packages ({err}). Recommend installing the following packages manually:"
|
|
244
|
+
)
|
|
245
|
+
for p in packages:
|
|
246
|
+
log.warning(f" - {p}")
|
|
247
|
+
return success
|
|
248
|
+
|
|
249
|
+
def _make_apt_ansible_args(self, packages):
|
|
250
|
+
packages_str = ",".join(sorted(packages))
|
|
206
251
|
log.info(f"Installing the following OS packages: {packages_str}")
|
|
207
252
|
args = {"name": packages_str, "state": "present"} # , "update_cache": True, "cache_valid_time": 86400}
|
|
208
253
|
kwargs = {}
|
|
209
254
|
# don't sudo brew
|
|
210
|
-
if os_platform
|
|
255
|
+
if self.os_platform != "darwin":
|
|
211
256
|
kwargs = {
|
|
212
257
|
"ansible_args": {
|
|
213
258
|
"ansible_become": True,
|
|
214
259
|
"ansible_become_method": "sudo",
|
|
215
260
|
}
|
|
216
261
|
}
|
|
217
|
-
|
|
218
|
-
if success:
|
|
219
|
-
log.info(f'Successfully installed OS packages "{packages_str}"')
|
|
220
|
-
else:
|
|
221
|
-
log.warning(
|
|
222
|
-
f"Failed to install OS packages ({err}). Recommend installing the following packages manually:"
|
|
223
|
-
)
|
|
224
|
-
for p in packages:
|
|
225
|
-
log.warning(f" - {p}")
|
|
226
|
-
return success
|
|
262
|
+
return args, kwargs
|
|
227
263
|
|
|
228
264
|
def shell(self, module, commands):
|
|
229
265
|
tasks = []
|
|
@@ -269,7 +305,7 @@ class DepsInstaller:
|
|
|
269
305
|
for task in tasks:
|
|
270
306
|
if "package" in task:
|
|
271
307
|
# special case for macos
|
|
272
|
-
if os_platform
|
|
308
|
+
if self.os_platform == "darwin":
|
|
273
309
|
# don't sudo brew
|
|
274
310
|
task["become"] = False
|
|
275
311
|
# brew doesn't support update_cache
|
|
@@ -292,8 +328,8 @@ class DepsInstaller:
|
|
|
292
328
|
},
|
|
293
329
|
module=module,
|
|
294
330
|
module_args=module_args,
|
|
295
|
-
quiet=
|
|
296
|
-
verbosity=
|
|
331
|
+
quiet=True,
|
|
332
|
+
verbosity=0,
|
|
297
333
|
cancel_callback=lambda: None,
|
|
298
334
|
)
|
|
299
335
|
|
|
@@ -303,7 +339,7 @@ class DepsInstaller:
|
|
|
303
339
|
err = ""
|
|
304
340
|
for e in res.events:
|
|
305
341
|
if self.ansible_debug and not success:
|
|
306
|
-
log.debug(json.dumps(e, indent=
|
|
342
|
+
log.debug(json.dumps(e, indent=2))
|
|
307
343
|
if e["event"] == "runner_on_failed":
|
|
308
344
|
err = e["event_data"]["res"]["msg"]
|
|
309
345
|
break
|
|
@@ -347,26 +383,30 @@ class DepsInstaller:
|
|
|
347
383
|
|
|
348
384
|
def install_core_deps(self):
|
|
349
385
|
to_install = set()
|
|
386
|
+
to_install_friendly = set()
|
|
387
|
+
playbook = []
|
|
350
388
|
self._install_sudo_askpass()
|
|
351
389
|
# ensure tldextract data is cached
|
|
352
390
|
self.parent_helper.tldextract("evilcorp.co.uk")
|
|
353
|
-
|
|
354
|
-
core_deps = {
|
|
355
|
-
"unzip": "unzip",
|
|
356
|
-
"zipinfo": "unzip",
|
|
357
|
-
"curl": "curl",
|
|
358
|
-
"git": "git",
|
|
359
|
-
"make": "make",
|
|
360
|
-
"gcc": "gcc",
|
|
361
|
-
"bash": "bash",
|
|
362
|
-
"which": "which",
|
|
363
|
-
}
|
|
364
|
-
for command, package_name in core_deps.items():
|
|
391
|
+
for command, package_name_or_playbook in self.CORE_DEPS.items():
|
|
365
392
|
if not self.parent_helper.which(command):
|
|
366
|
-
|
|
393
|
+
to_install_friendly.add(command)
|
|
394
|
+
if isinstance(package_name_or_playbook, str):
|
|
395
|
+
to_install.add(package_name_or_playbook)
|
|
396
|
+
else:
|
|
397
|
+
playbook.extend(package_name_or_playbook)
|
|
367
398
|
if to_install:
|
|
399
|
+
playbook.append(
|
|
400
|
+
{
|
|
401
|
+
"name": "Install Core BBOT Dependencies",
|
|
402
|
+
"package": {"name": list(to_install), "state": "present"},
|
|
403
|
+
"become": True,
|
|
404
|
+
}
|
|
405
|
+
)
|
|
406
|
+
if playbook:
|
|
407
|
+
log.info(f"Installing core BBOT dependencies: {','.join(sorted(to_install_friendly))}")
|
|
368
408
|
self.ensure_root()
|
|
369
|
-
self.
|
|
409
|
+
self.ansible_run(tasks=playbook)
|
|
370
410
|
|
|
371
411
|
def _setup_sudo_cache(self):
|
|
372
412
|
if not self._sudo_cache_setup:
|
|
@@ -179,7 +179,9 @@ class filedownload(BaseModule):
|
|
|
179
179
|
if extension:
|
|
180
180
|
filename = f"{filename}.{extension}"
|
|
181
181
|
orig_filename = f"{orig_filename}.{extension}"
|
|
182
|
-
|
|
182
|
+
file_destination = self.download_dir / filename
|
|
183
|
+
file_destination = self.helpers.truncate_filename(file_destination)
|
|
184
|
+
return orig_filename, file_destination, base_url
|
|
183
185
|
|
|
184
186
|
async def report(self):
|
|
185
187
|
if self.files_downloaded > 0:
|
|
@@ -142,6 +142,9 @@ class gowitness(BaseModule):
|
|
|
142
142
|
url = screenshot["url"]
|
|
143
143
|
final_url = screenshot["final_url"]
|
|
144
144
|
filename = self.screenshot_path / screenshot["filename"]
|
|
145
|
+
filename = filename.relative_to(self.scan.home)
|
|
146
|
+
# NOTE: this prevents long filenames from causing problems in BBOT, but gowitness will still fail to save it.
|
|
147
|
+
filename = self.helpers.truncate_filename(filename)
|
|
145
148
|
webscreenshot_data = {"path": str(filename), "url": final_url}
|
|
146
149
|
parent_event = event_dict[url]
|
|
147
150
|
await self.emit_event(
|
|
@@ -60,3 +60,28 @@ trailer <</Root 1 0 R>>"""
|
|
|
60
60
|
# we don't want html files
|
|
61
61
|
html_files = list(download_dir.glob("*.html"))
|
|
62
62
|
assert len(html_files) == 0, "HTML files were erroneously downloaded"
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class TestFileDownloadLongFilename(TestFileDownload):
|
|
66
|
+
async def setup_after_prep(self, module_test):
|
|
67
|
+
module_test.set_expect_requests(
|
|
68
|
+
{"uri": "/"},
|
|
69
|
+
{
|
|
70
|
+
"response_data": '<a href="/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity.txt"/>'
|
|
71
|
+
},
|
|
72
|
+
)
|
|
73
|
+
module_test.set_expect_requests(
|
|
74
|
+
{
|
|
75
|
+
"uri": "/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity.txt"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"response_data": "juicy stuff",
|
|
79
|
+
},
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
def check(self, module_test, events):
|
|
83
|
+
filesystem_events = [e for e in events if e.type == "FILESYSTEM"]
|
|
84
|
+
assert len(filesystem_events) == 1
|
|
85
|
+
file_path = Path(filesystem_events[0].data["path"])
|
|
86
|
+
assert file_path.is_file(), f"File not found at {file_path}"
|
|
87
|
+
assert file_path.read_text() == "juicy stuff", f"File at {file_path} does not contain the correct content"
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
1
3
|
from .base import ModuleTestBase
|
|
2
4
|
|
|
3
5
|
|
|
@@ -102,3 +104,33 @@ class TestGoWitnessWithBlob(TestGowitness):
|
|
|
102
104
|
webscreenshots = [e for e in events if e.type == "WEBSCREENSHOT"]
|
|
103
105
|
assert webscreenshots, "failed to raise WEBSCREENSHOT events"
|
|
104
106
|
assert all("blob" in e.data and e.data["blob"] for e in webscreenshots), "blob not found in WEBSCREENSHOT data"
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
class TestGoWitnessLongFilename(TestGowitness):
|
|
110
|
+
"""
|
|
111
|
+
Make sure long filenames are truncated properly
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
targets = [
|
|
115
|
+
"http://127.0.0.1:8888/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity"
|
|
116
|
+
]
|
|
117
|
+
config_overrides = {"file_blobs": True}
|
|
118
|
+
|
|
119
|
+
async def setup_after_prep(self, module_test):
|
|
120
|
+
request_args = {
|
|
121
|
+
"uri": "/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity/blacklanternsecurity"
|
|
122
|
+
}
|
|
123
|
+
respond_args = {
|
|
124
|
+
"response_data": "<html><head><title>BBOT is life</title></head><body>BBOT is life</body></html>",
|
|
125
|
+
"headers": {"Server": "Apache/2.4.41 (Ubuntu)"},
|
|
126
|
+
}
|
|
127
|
+
module_test.set_expect_requests(request_args, respond_args)
|
|
128
|
+
|
|
129
|
+
def check(self, module_test, events):
|
|
130
|
+
webscreenshots = [e for e in events if e.type == "WEBSCREENSHOT"]
|
|
131
|
+
assert webscreenshots, "failed to raise WEBSCREENSHOT events"
|
|
132
|
+
assert len(webscreenshots) == 1
|
|
133
|
+
webscreenshot = webscreenshots[0]
|
|
134
|
+
filename = Path(webscreenshot.data["path"])
|
|
135
|
+
# sadly this file doesn't exist because gowitness doesn't truncate properly
|
|
136
|
+
assert not filename.exists()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|