bbot 2.5.0.6721rc0__tar.gz → 2.5.0.6734rc0__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.5.0.6721rc0 → bbot-2.5.0.6734rc0}/PKG-INFO +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/__init__.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/depsinstaller/installer.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/misc.py +2 -2
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/shared_deps.py +38 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/base.py +6 -2
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/c99.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/censys.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/fullhunt.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/gowitness.py +44 -16
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/passivetotal.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/zoomeye.py +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/pyproject.toml +1 -1
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/LICENSE +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/README.md +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/cli.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/config/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/config/files.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/config/logger.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/core.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/engine.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/event/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/event/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/event/helpers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/flags.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/async_helpers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/bloom.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/cache.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/command.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/diff.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/brute.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/dns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/engine.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/helpers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/dns/mock.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/files.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/helper.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/interactsh.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/libmagic.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/names_generator.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/ntlm.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/process.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/ratelimiter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/regex.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/regexes.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/url.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/validators.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/client.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/engine.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/envelopes.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/web/web.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/wordcloud.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/helpers/yara_helper.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/modules.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/core/multiprocess.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/db/sql/models.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/defaults.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/errors.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/logger.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ajaxpro.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/anubisdb.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/apkpure.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/azure_realm.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/azure_tenant.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/baddns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/baddns_direct.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/baddns_zone.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/badsecrets.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bevigil.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_amazon.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_azure.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_digitalocean.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_file_enum.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_firebase.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bucket_google.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bufferoverrun.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/builtwith.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/bypass403.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/certspotter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/chaos.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/code_repository.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/credshed.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/crt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/crt_db.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/deadly/medusa.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dehashed.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/digitorus.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnsbimi.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnsbrute.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnscaa.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnscommonsrv.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnsdumpster.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dnstlsrpt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/docker_pull.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dockerhub.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/dotnetnuke.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/emailformat.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/extractous.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ffuf.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ffuf_shortnames.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/filedownload.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/fingerprintx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/generic_ssrf.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/git.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/git_clone.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/gitdumper.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/github_codesearch.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/github_org.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/github_usersearch.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/github_workflows.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/gitlab.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/google_playstore.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/hackertarget.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/host_header.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/httpx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/hunt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/hunterio.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/iis_shortnames.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/aggregate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/cloudcheck.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/dnsresolve.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/excavate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/speculate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/internal/unarchive.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ip2location.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ipneighbor.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ipstack.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/jadx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/leakix.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/lightfuzz.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/cmdi.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/crypto.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/path.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/serial.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/sqli.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/ssti.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/lightfuzz/submodules/xss.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/myssl.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/newsletters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/ntlm.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/nuclei.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/oauth.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/otx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/asset_inventory.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/csv.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/discord.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/emails.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/http.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/json.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/mysql.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/neo4j.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/nmap_xml.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/postgres.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/python.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/slack.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/splunk.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/sqlite.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/stdout.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/subdomains.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/teams.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/txt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/web_parameters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/web_report.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/output/websocket.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/paramminer_cookies.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/paramminer_getparams.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/paramminer_headers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/pgp.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/portfilter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/portscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/postman.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/postman_download.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/rapiddns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/reflected_parameters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/report/affiliates.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/report/asn.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/report/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/robots.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/securitytrails.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/securitytxt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/shodan_dns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/shodan_idb.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/sitedossier.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/skymem.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/smuggler.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/social.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/sslcert.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/subdomaincenter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/subdomainradar.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/telerik.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/bucket.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/github.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/postman.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/shodan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/sql.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/templates/webhook.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/trickest.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/trufflehog.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/url_manipulation.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/urlscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/vhost.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/viewdns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/virustotal.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/wafw00f.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/wappalyzer.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/wayback.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/modules/wpscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/baddns-intense.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/cloud-enum.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/code-enum.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/email-enum.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/fast.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/kitchen-sink.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/nuclei/nuclei-budget.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/nuclei/nuclei-intense.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/nuclei/nuclei-technology.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/nuclei/nuclei.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/spider-intense.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/spider.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/subdomain-enum.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/tech-detect.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/dirbust-light.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/dotnet-audit.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/lightfuzz-heavy.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/lightfuzz-light.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/lightfuzz-medium.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/lightfuzz-superheavy.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/lightfuzz-xss.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web/paramminer.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web-basic.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web-screenshots.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/presets/web-thorough.yml +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/dispatcher.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/manager.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/args.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/conditions.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/environ.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/path.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/preset/preset.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/scanner.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/stats.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scanner/target.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/scripts/docs.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/bbot_fixtures.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/conftest.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/coverage.cfg +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/fastapi_test.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/owasp_mastg.apk +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/run_tests.sh +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test.conf +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_output.ndjson +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_bbot_fastapi.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_cli.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_command.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_config.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_dns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_docs.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_engine.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_event_seeds.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_events.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_files.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_presets.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_scan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_scope.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_target.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_web.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_1/test_web_envelopes.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_crt_db.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbimi.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_extractous.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_gitdumper.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_github_usersearch.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_jadx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_lightfuzz.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_medusa.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_mysql.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_nmap_xml.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_portfilter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_postgres.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_reflected_parameters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_idb.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_sqlite.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_unarchive.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_web_parameters.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/testsslcert.pem +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/test/testsslkey.pem +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/devops_mutations.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/nameservers.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
- {bbot-2.5.0.6721rc0 → bbot-2.5.0.6734rc0}/bbot/wordlists/wordninja_dns.txt.gz +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bbot
|
|
3
|
-
Version: 2.5.0.
|
|
3
|
+
Version: 2.5.0.6734rc0
|
|
4
4
|
Summary: OSINT automation for hackers.
|
|
5
5
|
License: GPL-3.0
|
|
6
6
|
Keywords: python,cli,automation,osint,threat-intel,intelligence,neo4j,scanner,python-library,hacking,recursion,pentesting,recon,command-line-tool,bugbounty,subdomains,security-tools,subdomain-scanner,osint-framework,attack-surface,subdomain-enumeration,osint-tool
|
|
@@ -196,7 +196,7 @@ class DepsInstaller:
|
|
|
196
196
|
deps_common = preloaded["deps"]["common"]
|
|
197
197
|
if deps_common:
|
|
198
198
|
for dep_common in deps_common:
|
|
199
|
-
if self.setup_status.get(dep_common, False) is True:
|
|
199
|
+
if self.setup_status.get(dep_common, False) is True and self.deps_behavior != "force_install":
|
|
200
200
|
log.debug(
|
|
201
201
|
f'Skipping installation of dependency "{dep_common}" for module "{module}" since it is already installed'
|
|
202
202
|
)
|
|
@@ -1309,7 +1309,7 @@ def make_netloc(host, port=None):
|
|
|
1309
1309
|
return f"{host}:{port}"
|
|
1310
1310
|
|
|
1311
1311
|
|
|
1312
|
-
def which(*executables):
|
|
1312
|
+
def which(*executables, path=None):
|
|
1313
1313
|
"""Finds the full path of the first available executable from a list of executables.
|
|
1314
1314
|
|
|
1315
1315
|
Args:
|
|
@@ -1325,7 +1325,7 @@ def which(*executables):
|
|
|
1325
1325
|
import shutil
|
|
1326
1326
|
|
|
1327
1327
|
for e in executables:
|
|
1328
|
-
location = shutil.which(e)
|
|
1328
|
+
location = shutil.which(e, path=path)
|
|
1329
1329
|
if location:
|
|
1330
1330
|
return location
|
|
1331
1331
|
|
|
@@ -108,6 +108,24 @@ DEP_CHROMIUM = [
|
|
|
108
108
|
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
109
109
|
"ignore_errors": True,
|
|
110
110
|
},
|
|
111
|
+
{
|
|
112
|
+
"name": "Get latest Chromium version (Darwin x86_64)",
|
|
113
|
+
"uri": {
|
|
114
|
+
"url": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac%2FLAST_CHANGE?alt=media",
|
|
115
|
+
"return_content": True,
|
|
116
|
+
},
|
|
117
|
+
"register": "chromium_version_darwin_x86_64",
|
|
118
|
+
"when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'x86_64'",
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "Get latest Chromium version (Darwin arm64)",
|
|
122
|
+
"uri": {
|
|
123
|
+
"url": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac_Arm%2FLAST_CHANGE?alt=media",
|
|
124
|
+
"return_content": True,
|
|
125
|
+
},
|
|
126
|
+
"register": "chromium_version_darwin_arm64",
|
|
127
|
+
"when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'arm64'",
|
|
128
|
+
},
|
|
111
129
|
{
|
|
112
130
|
"name": "Download Chromium (Debian)",
|
|
113
131
|
"unarchive": {
|
|
@@ -119,6 +137,26 @@ DEP_CHROMIUM = [
|
|
|
119
137
|
"when": "ansible_facts['os_family'] == 'Debian'",
|
|
120
138
|
"ignore_errors": True,
|
|
121
139
|
},
|
|
140
|
+
{
|
|
141
|
+
"name": "Download Chromium (Darwin x86_64)",
|
|
142
|
+
"unarchive": {
|
|
143
|
+
"src": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac%2F{{ chromium_version_darwin_x86_64.content }}%2Fchrome-mac.zip?alt=media",
|
|
144
|
+
"remote_src": True,
|
|
145
|
+
"dest": "#{BBOT_TOOLS}",
|
|
146
|
+
"creates": "#{BBOT_TOOLS}/chrome-mac",
|
|
147
|
+
},
|
|
148
|
+
"when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'x86_64'",
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "Download Chromium (Darwin arm64)",
|
|
152
|
+
"unarchive": {
|
|
153
|
+
"src": "https://www.googleapis.com/download/storage/v1/b/chromium-browser-snapshots/o/Mac_Arm%2F{{ chromium_version_darwin_arm64.content }}%2Fchrome-mac.zip?alt=media",
|
|
154
|
+
"remote_src": True,
|
|
155
|
+
"dest": "#{BBOT_TOOLS}",
|
|
156
|
+
"creates": "#{BBOT_TOOLS}/chrome-mac",
|
|
157
|
+
},
|
|
158
|
+
"when": "ansible_facts['os_family'] == 'Darwin' and ansible_facts['architecture'] == 'arm64'",
|
|
159
|
+
},
|
|
122
160
|
# Because Ubuntu is a special snowflake, we have to bend over backwards to fix the chrome sandbox
|
|
123
161
|
# see https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md
|
|
124
162
|
{
|
|
@@ -103,6 +103,8 @@ class BaseModule:
|
|
|
103
103
|
|
|
104
104
|
# disable the module after this many failed attempts in a row
|
|
105
105
|
_api_failure_abort_threshold = 3
|
|
106
|
+
# whether to retry on 429s when first pinging the API at scan start
|
|
107
|
+
_ping_retry_on_http_429 = False
|
|
106
108
|
|
|
107
109
|
default_discovery_context = "{module} discovered {event.type}: {event.data}"
|
|
108
110
|
|
|
@@ -381,8 +383,9 @@ class BaseModule:
|
|
|
381
383
|
"""
|
|
382
384
|
if url is None:
|
|
383
385
|
url = getattr(self, "ping_url", "")
|
|
386
|
+
retry_on_http_429 = getattr(self, "_ping_retry_on_http_429", False)
|
|
384
387
|
if url:
|
|
385
|
-
r = await self.api_request(url)
|
|
388
|
+
r = await self.api_request(url, retry_on_http_429=retry_on_http_429)
|
|
386
389
|
if getattr(r, "status_code", 0) != 200:
|
|
387
390
|
response_text = getattr(r, "text", "no response from server")
|
|
388
391
|
raise ValueError(response_text)
|
|
@@ -1200,6 +1203,7 @@ class BaseModule:
|
|
|
1200
1203
|
- cancelling after too many failed attempts
|
|
1201
1204
|
"""
|
|
1202
1205
|
url = args[0] if args else kwargs.pop("url", "")
|
|
1206
|
+
retry_on_http_429 = kwargs.pop("retry_on_http_429", True)
|
|
1203
1207
|
|
|
1204
1208
|
# loop until we have a successful request
|
|
1205
1209
|
for _ in range(self.api_retries):
|
|
@@ -1225,7 +1229,7 @@ class BaseModule:
|
|
|
1225
1229
|
else:
|
|
1226
1230
|
# sleep for a bit if we're being rate limited
|
|
1227
1231
|
retry_after = self._get_retry_after(r)
|
|
1228
|
-
if retry_after or status_code == 429:
|
|
1232
|
+
if (retry_after or status_code == 429) and retry_on_http_429:
|
|
1229
1233
|
sleep_interval = int(retry_after) if retry_after is not None else self._429_sleep_interval
|
|
1230
1234
|
if retry_after and retry_after > self._429_max_sleep_interval:
|
|
1231
1235
|
self.verbose(
|
|
@@ -19,7 +19,7 @@ class c99(subdomain_enum_apikey):
|
|
|
19
19
|
|
|
20
20
|
async def ping(self):
|
|
21
21
|
url = f"{self.base_url}/randomnumber?key={{api_key}}&between=1,100&json"
|
|
22
|
-
response = await self.api_request(url)
|
|
22
|
+
response = await self.api_request(url, retry_on_http_429=False)
|
|
23
23
|
assert response.json()["success"] is True, getattr(response, "text", "no response from server")
|
|
24
24
|
|
|
25
25
|
async def request_url(self, query):
|
|
@@ -29,7 +29,7 @@ class censys(subdomain_enum_apikey):
|
|
|
29
29
|
|
|
30
30
|
async def ping(self):
|
|
31
31
|
url = f"{self.base_url}/v1/account"
|
|
32
|
-
resp = await self.api_request(url)
|
|
32
|
+
resp = await self.api_request(url, retry_on_http_429=False)
|
|
33
33
|
d = resp.json()
|
|
34
34
|
assert isinstance(d, dict), f"Invalid response from {url}: {resp}"
|
|
35
35
|
quota = d.get("quota", {})
|
|
@@ -22,7 +22,7 @@ class fullhunt(subdomain_enum_apikey):
|
|
|
22
22
|
|
|
23
23
|
async def ping(self):
|
|
24
24
|
url = f"{self.base_url}/auth/status"
|
|
25
|
-
j = (await self.api_request(url)).json()
|
|
25
|
+
j = (await self.api_request(url, retry_on_http_429=False)).json()
|
|
26
26
|
remaining = j["user_credits"]["remaining_credits"]
|
|
27
27
|
assert remaining > 0, "No credits remaining"
|
|
28
28
|
|
|
@@ -2,6 +2,7 @@ import os
|
|
|
2
2
|
import asyncio
|
|
3
3
|
import aiosqlite
|
|
4
4
|
import multiprocessing
|
|
5
|
+
import platform
|
|
5
6
|
from pathlib import Path
|
|
6
7
|
from contextlib import suppress
|
|
7
8
|
from shutil import copyfile, copymode
|
|
@@ -23,6 +24,7 @@ class gowitness(BaseModule):
|
|
|
23
24
|
"output_path": "",
|
|
24
25
|
"social": False,
|
|
25
26
|
"idle_timeout": 1800,
|
|
27
|
+
"chrome_path": "",
|
|
26
28
|
}
|
|
27
29
|
options_desc = {
|
|
28
30
|
"version": "Gowitness version",
|
|
@@ -33,6 +35,7 @@ class gowitness(BaseModule):
|
|
|
33
35
|
"output_path": "Where to save screenshots",
|
|
34
36
|
"social": "Whether to screenshot social media webpages",
|
|
35
37
|
"idle_timeout": "Skip the current gowitness batch if it stalls for longer than this many seconds",
|
|
38
|
+
"chrome_path": "Path to chrome executable",
|
|
36
39
|
}
|
|
37
40
|
deps_common = ["chromium"]
|
|
38
41
|
deps_pip = ["aiosqlite"]
|
|
@@ -67,29 +70,54 @@ class gowitness(BaseModule):
|
|
|
67
70
|
self.base_path = Path(output_path) / "gowitness"
|
|
68
71
|
else:
|
|
69
72
|
self.base_path = self.scan.home / "gowitness"
|
|
73
|
+
|
|
70
74
|
self.chrome_path = None
|
|
71
|
-
|
|
72
|
-
if
|
|
73
|
-
|
|
75
|
+
config_chrome_path = self.config.get("chrome_path")
|
|
76
|
+
if config_chrome_path:
|
|
77
|
+
config_chrome_path = Path(config_chrome_path)
|
|
78
|
+
if not config_chrome_path.is_file():
|
|
79
|
+
return False, f"Could not find custom Chrome path at {config_chrome_path}"
|
|
80
|
+
self.chrome_path = config_chrome_path
|
|
81
|
+
else:
|
|
82
|
+
if platform.system() == "Darwin":
|
|
83
|
+
bbot_chrome_path = (
|
|
84
|
+
self.helpers.tools_dir / "chrome-mac" / "Chromium.app" / "Contents" / "MacOS" / "Chromium"
|
|
85
|
+
)
|
|
86
|
+
else:
|
|
87
|
+
bbot_chrome_path = self.helpers.tools_dir / "chrome-linux" / "chrome"
|
|
88
|
+
if bbot_chrome_path.is_file():
|
|
89
|
+
self.chrome_path = bbot_chrome_path
|
|
90
|
+
|
|
91
|
+
# make sure our chrome path works
|
|
92
|
+
chrome_test_pass = False
|
|
93
|
+
if self.chrome_path and self.chrome_path.is_file():
|
|
94
|
+
chrome_test_proc = await self.run_process([str(self.chrome_path), "--version"])
|
|
95
|
+
if getattr(chrome_test_proc, "returncode", 1) == 0:
|
|
96
|
+
self.verbose(f"Found chrome executable at {self.chrome_path}")
|
|
97
|
+
chrome_test_pass = True
|
|
98
|
+
|
|
99
|
+
if not chrome_test_pass:
|
|
100
|
+
# last resort - try to find a working chrome install
|
|
101
|
+
for binary in ("Google Chrome", "chrome", "chromium", "chromium-browser"):
|
|
102
|
+
binary_path = self.helpers.which(binary)
|
|
103
|
+
if binary_path and Path(binary_path).is_file():
|
|
104
|
+
chrome_test_proc = await self.run_process([str(binary_path), "--version"])
|
|
105
|
+
if getattr(chrome_test_proc, "returncode", 1) == 0:
|
|
106
|
+
self.verbose(f"Found chrome executable at {binary_path}")
|
|
107
|
+
chrome_test_pass = True
|
|
108
|
+
break
|
|
109
|
+
|
|
110
|
+
if not chrome_test_pass:
|
|
111
|
+
return (
|
|
112
|
+
False,
|
|
113
|
+
"Failed to set up Google chrome. Please install manually and set `chrome_path`, or try again with --force-deps.",
|
|
114
|
+
)
|
|
74
115
|
|
|
75
116
|
# fix ubuntu-specific sandbox bug
|
|
76
117
|
chrome_devel_sandbox = self.helpers.tools_dir / "chrome-linux" / "chrome_sandbox"
|
|
77
118
|
if chrome_devel_sandbox.is_file():
|
|
78
119
|
os.environ["CHROME_DEVEL_SANDBOX"] = str(chrome_devel_sandbox)
|
|
79
120
|
|
|
80
|
-
# make sure we have a working chrome install
|
|
81
|
-
chrome_test_pass = False
|
|
82
|
-
for binary in ("chrome", "chromium", "chromium-browser", custom_chrome_path):
|
|
83
|
-
binary_path = self.helpers.which(binary)
|
|
84
|
-
if binary_path and Path(binary_path).is_file():
|
|
85
|
-
chrome_test_proc = await self.run_process([binary_path, "--version"])
|
|
86
|
-
if getattr(chrome_test_proc, "returncode", 1) == 0:
|
|
87
|
-
self.verbose(f"Found chrome executable at {binary_path}")
|
|
88
|
-
chrome_test_pass = True
|
|
89
|
-
break
|
|
90
|
-
if not chrome_test_pass:
|
|
91
|
-
return False, "Failed to set up Google chrome. Please install manually or try again with --force-deps."
|
|
92
|
-
|
|
93
121
|
self.db_path = self.base_path / "gowitness.sqlite3"
|
|
94
122
|
self.screenshot_path = self.base_path / "screenshots"
|
|
95
123
|
self.command = self.construct_command()
|
|
@@ -21,7 +21,7 @@ class passivetotal(subdomain_enum_apikey):
|
|
|
21
21
|
|
|
22
22
|
async def ping(self):
|
|
23
23
|
url = f"{self.base_url}/account/quota"
|
|
24
|
-
j = (await self.api_request(url)).json()
|
|
24
|
+
j = (await self.api_request(url, retry_on_http_429=False)).json()
|
|
25
25
|
limit = j["user"]["limits"]["search_api"]
|
|
26
26
|
used = j["user"]["counts"]["search_api"]
|
|
27
27
|
assert used < limit, "No quota remaining"
|
|
@@ -31,7 +31,7 @@ class zoomeye(subdomain_enum_apikey):
|
|
|
31
31
|
|
|
32
32
|
async def ping(self):
|
|
33
33
|
url = f"{self.base_url}/resources-info"
|
|
34
|
-
r = await self.api_request(url)
|
|
34
|
+
r = await self.api_request(url, retry_on_http_429=False)
|
|
35
35
|
assert int(r.json()["quota_info"]["remain_total_quota"]) > 0, "No quota remaining"
|
|
36
36
|
|
|
37
37
|
async def handle_event(self, event):
|
|
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
|