bbot 2.1.0.5078rc0__tar.gz → 2.1.0.5097rc0__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.
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/PKG-INFO +1 -1
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/__init__.py +1 -1
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/config/logger.py +0 -2
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/depsinstaller/installer.py +9 -1
- bbot-2.1.0.5097rc0/bbot/modules/bufferoverrun.py +48 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/gowitness.py +1 -1
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/wpscan.py +8 -2
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/conftest.py +23 -9
- bbot-2.1.0.5097rc0/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +35 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/pyproject.toml +1 -1
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/LICENSE +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/README.md +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/cli.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/config/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/config/files.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/core.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/engine.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/event/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/event/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/event/helpers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/flags.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/async_helpers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/bloom.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/cache.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/command.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/diff.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/brute.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/dns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/engine.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/helpers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/dns/mock.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/files.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/helper.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/interactsh.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/misc.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/names_generator.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/ntlm.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/process.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/ratelimiter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/regex.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/regexes.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/url.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/validators.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/web/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/web/client.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/web/engine.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/web/web.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/helpers/wordcloud.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/modules.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/core/shared_deps.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/defaults.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/errors.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/logger.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ajaxpro.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/anubisdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/apkpure.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/azure_realm.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/azure_tenant.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/baddns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/baddns_direct.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/baddns_zone.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/badsecrets.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bevigil.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/binaryedge.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_amazon.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_azure.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_digitalocean.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_file_enum.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_firebase.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bucket_google.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/builtwith.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/bypass403.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/c99.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/censys.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/certspotter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/chaos.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/code_repository.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/columbus.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/credshed.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/crt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/deadly/dastardly.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/deadly/ffuf.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/deadly/nuclei.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/deadly/vhost.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dehashed.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/digitorus.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dnsbrute.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dnscaa.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dnscommonsrv.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dnsdumpster.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/docker_pull.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dockerhub.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/dotnetnuke.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/emailformat.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ffuf_shortnames.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/filedownload.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/fingerprintx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/fullhunt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/generic_ssrf.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/git.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/git_clone.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/github_codesearch.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/github_org.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/github_workflows.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/gitlab.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/google_playstore.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/hackertarget.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/host_header.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/httpx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/hunt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/hunterio.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/iis_shortnames.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/aggregate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/cloudcheck.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/dnsresolve.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/excavate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internal/speculate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/internetdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ip2location.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ipneighbor.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ipstack.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/leakix.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/myssl.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/newsletters.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/ntlm.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/oauth.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/otx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/asset_inventory.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/csv.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/discord.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/emails.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/http.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/json.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/neo4j.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/python.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/slack.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/splunk.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/stdout.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/subdomains.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/teams.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/txt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/web_report.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/output/websocket.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/paramminer_cookies.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/paramminer_getparams.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/paramminer_headers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/passivetotal.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/pgp.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/portscan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/postman.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/postman_download.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/rapiddns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/report/affiliates.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/report/asn.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/report/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/robots.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/secretsdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/securitytrails.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/securitytxt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/shodan_dns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/sitedossier.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/skymem.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/smuggler.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/social.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/sslcert.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/subdomaincenter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/subdomainradar.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/telerik.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/bucket.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/github.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/postman.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/shodan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/templates/webhook.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/trickest.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/trufflehog.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/unstructured.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/url_manipulation.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/urlscan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/viewdns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/virustotal.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/wafw00f.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/wappalyzer.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/wayback.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/modules/zoomeye.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/baddns-thorough.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/cloud-enum.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/code-enum.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/email-enum.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/kitchen-sink.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/spider.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/subdomain-enum.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web/dirbust-light.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web/dotnet-audit.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web/paramminer.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web-basic.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web-screenshots.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/presets/web-thorough.yml +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/dispatcher.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/manager.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/args.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/conditions.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/environ.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/path.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/preset/preset.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/scanner.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/stats.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scanner/target.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/scripts/docs.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/bbot_fixtures.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/coverage.cfg +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/owasp_mastg.apk +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/run_tests.sh +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test.conf +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_output.ndjson +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_cli.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_command.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_config.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_dns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_docs.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_engine.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_events.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_files.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_presets.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_scan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_scope.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_target.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_1/test_web.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_binaryedge.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_columbus.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dastardly.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_internetdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_secretsdb.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_unstructured.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/testsslcert.pem +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/test/testsslkey.pem +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/devops_mutations.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/ffuf_shortname_candidates.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/nameservers.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
- {bbot-2.1.0.5078rc0 → bbot-2.1.0.5097rc0}/bbot/wordlists/wordninja_dns.txt.gz +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import sys
|
|
2
|
-
import atexit
|
|
3
2
|
import logging
|
|
4
3
|
from copy import copy
|
|
5
4
|
import multiprocessing
|
|
@@ -71,7 +70,6 @@ class BBOTLogger:
|
|
|
71
70
|
# Start the QueueListener
|
|
72
71
|
self.listener = logging.handlers.QueueListener(self.queue, *self.log_handlers.values())
|
|
73
72
|
self.listener.start()
|
|
74
|
-
atexit.register(self.listener.stop)
|
|
75
73
|
|
|
76
74
|
self.log_level = logging.INFO
|
|
77
75
|
|
|
@@ -342,7 +342,15 @@ class DepsInstaller:
|
|
|
342
342
|
# ensure tldextract data is cached
|
|
343
343
|
self.parent_helper.tldextract("evilcorp.co.uk")
|
|
344
344
|
# command: package_name
|
|
345
|
-
core_deps = {
|
|
345
|
+
core_deps = {
|
|
346
|
+
"unzip": "unzip",
|
|
347
|
+
"zipinfo": "unzip",
|
|
348
|
+
"curl": "curl",
|
|
349
|
+
"git": "git",
|
|
350
|
+
"make": "make",
|
|
351
|
+
"gcc": "gcc",
|
|
352
|
+
"bash": "bash",
|
|
353
|
+
}
|
|
346
354
|
for command, package_name in core_deps.items():
|
|
347
355
|
if not self.parent_helper.which(command):
|
|
348
356
|
to_install.add(package_name)
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
from bbot.modules.templates.subdomain_enum import subdomain_enum_apikey
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class BufferOverrun(subdomain_enum_apikey):
|
|
5
|
+
watched_events = ["DNS_NAME"]
|
|
6
|
+
produced_events = ["DNS_NAME"]
|
|
7
|
+
flags = ["subdomain-enum", "passive", "safe"]
|
|
8
|
+
meta = {
|
|
9
|
+
"description": "Query BufferOverrun's TLS API for subdomains",
|
|
10
|
+
"created_date": "2024-10-23",
|
|
11
|
+
"author": "@TheTechromancer",
|
|
12
|
+
"auth_required": True,
|
|
13
|
+
}
|
|
14
|
+
options = {"api_key": "", "commercial": False}
|
|
15
|
+
options_desc = {"api_key": "BufferOverrun API key", "commercial": "Use commercial API"}
|
|
16
|
+
|
|
17
|
+
base_url = "https://tls.bufferover.run/dns"
|
|
18
|
+
commercial_base_url = "https://bufferover-run-tls.p.rapidapi.com/ipv4/dns"
|
|
19
|
+
|
|
20
|
+
async def setup(self):
|
|
21
|
+
self.commercial = self.config.get("commercial", False)
|
|
22
|
+
return await super().setup()
|
|
23
|
+
|
|
24
|
+
def prepare_api_request(self, url, kwargs):
|
|
25
|
+
if self.commercial:
|
|
26
|
+
kwargs["headers"]["x-rapidapi-host"] = "bufferover-run-tls.p.rapidapi.com"
|
|
27
|
+
kwargs["headers"]["x-rapidapi-key"] = self.api_key
|
|
28
|
+
else:
|
|
29
|
+
kwargs["headers"]["x-api-key"] = self.api_key
|
|
30
|
+
return url, kwargs
|
|
31
|
+
|
|
32
|
+
async def request_url(self, query):
|
|
33
|
+
url = f"{self.commercial_base_url if self.commercial else self.base_url}?q=.{query}"
|
|
34
|
+
return await self.api_request(url)
|
|
35
|
+
|
|
36
|
+
def parse_results(self, r, query):
|
|
37
|
+
j = r.json()
|
|
38
|
+
subdomains_set = set()
|
|
39
|
+
if isinstance(j, dict):
|
|
40
|
+
results = j.get("Results", [])
|
|
41
|
+
for result in results:
|
|
42
|
+
parts = result.split(",")
|
|
43
|
+
if len(parts) > 4:
|
|
44
|
+
subdomain = parts[4].strip()
|
|
45
|
+
if subdomain and subdomain.endswith(f".{query}"):
|
|
46
|
+
subdomains_set.add(subdomain)
|
|
47
|
+
for subdomain in subdomains_set:
|
|
48
|
+
yield subdomain
|
|
@@ -72,7 +72,7 @@ class gowitness(BaseModule):
|
|
|
72
72
|
|
|
73
73
|
# make sure we have a working chrome install
|
|
74
74
|
chrome_test_pass = False
|
|
75
|
-
for binary in ("chrome", "chromium", custom_chrome_path):
|
|
75
|
+
for binary in ("chrome", "chromium", "chromium-browser", custom_chrome_path):
|
|
76
76
|
binary_path = self.helpers.which(binary)
|
|
77
77
|
if binary_path and Path(binary_path).is_file():
|
|
78
78
|
chrome_test_proc = await self.run_process([binary_path, "--version"])
|
|
@@ -33,7 +33,7 @@ class wpscan(BaseModule):
|
|
|
33
33
|
deps_apt = ["curl", "make", "gcc"]
|
|
34
34
|
deps_ansible = [
|
|
35
35
|
{
|
|
36
|
-
"name": "Install Ruby Deps (Debian
|
|
36
|
+
"name": "Install Ruby Deps (Debian)",
|
|
37
37
|
"package": {"name": ["ruby-rubygems", "ruby-dev"], "state": "present"},
|
|
38
38
|
"become": True,
|
|
39
39
|
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
@@ -48,7 +48,13 @@ class wpscan(BaseModule):
|
|
|
48
48
|
"name": "Install Ruby Deps (Fedora)",
|
|
49
49
|
"package": {"name": ["rubygems", "ruby-devel"], "state": "present"},
|
|
50
50
|
"become": True,
|
|
51
|
-
"when": "ansible_facts['os_family'] == '
|
|
51
|
+
"when": "ansible_facts['os_family'] == 'RedHat'",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "Install Ruby Deps (Alpine)",
|
|
55
|
+
"package": {"name": ["ruby-dev", "ruby-bundler"], "state": "present"},
|
|
56
|
+
"become": True,
|
|
57
|
+
"when": "ansible_facts['os_family'] == 'Alpine'",
|
|
52
58
|
},
|
|
53
59
|
{
|
|
54
60
|
"name": "Install wpscan gem",
|
|
@@ -13,17 +13,31 @@ from bbot.core import CORE
|
|
|
13
13
|
from bbot.core.helpers.misc import execute_sync_or_async
|
|
14
14
|
from bbot.core.helpers.interactsh import server_list as interactsh_servers
|
|
15
15
|
|
|
16
|
+
# silence stdout + trace
|
|
17
|
+
root_logger = logging.getLogger()
|
|
18
|
+
pytest_debug_file = Path(__file__).parent.parent.parent / "pytest_debug.log"
|
|
19
|
+
print(f"pytest_debug_file: {pytest_debug_file}")
|
|
20
|
+
debug_handler = logging.FileHandler(pytest_debug_file)
|
|
21
|
+
debug_handler.setLevel(logging.DEBUG)
|
|
22
|
+
debug_format = logging.Formatter("%(asctime)s [%(levelname)s] %(name)s %(filename)s:%(lineno)s %(message)s")
|
|
23
|
+
debug_handler.setFormatter(debug_format)
|
|
24
|
+
root_logger.addHandler(debug_handler)
|
|
16
25
|
|
|
17
26
|
test_config = OmegaConf.load(Path(__file__).parent / "test.conf")
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
|
|
28
|
+
os.environ["BBOT_DEBUG"] = "True"
|
|
29
|
+
CORE.logger.log_level = logging.DEBUG
|
|
30
|
+
|
|
31
|
+
# silence all stderr output:
|
|
32
|
+
stderr_handler = CORE.logger.log_handlers["stderr"]
|
|
33
|
+
stderr_handler.setLevel(logging.CRITICAL)
|
|
34
|
+
handlers = list(CORE.logger.listener.handlers)
|
|
35
|
+
handlers.remove(stderr_handler)
|
|
36
|
+
CORE.logger.listener.handlers = tuple(handlers)
|
|
37
|
+
|
|
38
|
+
for h in root_logger.handlers:
|
|
39
|
+
h.addFilter(lambda x: x.levelname not in ("STDOUT", "TRACE"))
|
|
40
|
+
|
|
27
41
|
|
|
28
42
|
CORE.merge_default(test_config)
|
|
29
43
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from .base import ModuleTestBase
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class TestBufferOverrun(ModuleTestBase):
|
|
5
|
+
config_overrides = {"modules": {"bufferoverrun": {"api_key": "asdf", "commercial": False}}}
|
|
6
|
+
|
|
7
|
+
async def setup_before_prep(self, module_test):
|
|
8
|
+
# Mock response for non-commercial API
|
|
9
|
+
module_test.httpx_mock.add_response(
|
|
10
|
+
url="https://tls.bufferover.run/dns?q=.blacklanternsecurity.com",
|
|
11
|
+
match_headers={"x-api-key": "asdf"},
|
|
12
|
+
json={"Results": ["1.2.3.4,example.com,*,*,sub.blacklanternsecurity.com"]},
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
def check(self, module_test, events):
|
|
16
|
+
assert any(e.data == "sub.blacklanternsecurity.com" for e in events), "Failed to detect subdomain for free API"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class TestBufferOverrunCommercial(ModuleTestBase):
|
|
20
|
+
modules_overrides = ["bufferoverrun"]
|
|
21
|
+
module_name = "bufferoverrun"
|
|
22
|
+
config_overrides = {"modules": {"bufferoverrun": {"api_key": "asdf", "commercial": True}}}
|
|
23
|
+
|
|
24
|
+
async def setup_before_prep(self, module_test):
|
|
25
|
+
# Mock response for commercial API
|
|
26
|
+
module_test.httpx_mock.add_response(
|
|
27
|
+
url="https://bufferover-run-tls.p.rapidapi.com/ipv4/dns?q=.blacklanternsecurity.com",
|
|
28
|
+
match_headers={"x-rapidapi-host": "bufferover-run-tls.p.rapidapi.com", "x-rapidapi-key": "asdf"},
|
|
29
|
+
json={"Results": ["5.6.7.8,blacklanternsecurity.com,*,*,sub.blacklanternsecurity.com"]},
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
def check(self, module_test, events):
|
|
33
|
+
assert any(
|
|
34
|
+
e.data == "sub.blacklanternsecurity.com" for e in events
|
|
35
|
+
), "Failed to detect subdomain for commercial API"
|
|
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
|
|
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
|