bbot 2.3.2.5950rc0__tar.gz → 2.3.2.5958rc0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of bbot might be problematic. Click here for more details.
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/PKG-INFO +1 -1
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/__init__.py +1 -1
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/base.py +1 -1
- bbot-2.3.2.5958rc0/bbot/modules/crt.py +66 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/deadly/ffuf.py +6 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ffuf_shortnames.py +3 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/portfilter.py +2 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/scanner.py +1 -0
- bbot-2.3.2.5958rc0/bbot/test/test_step_2/module_tests/test_module_crt.py +25 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/pyproject.toml +1 -1
- bbot-2.3.2.5950rc0/bbot/modules/crt.py +0 -40
- bbot-2.3.2.5950rc0/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -15
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/LICENSE +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/README.md +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/cli.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/config/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/config/files.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/config/logger.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/core.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/engine.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/event/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/event/base.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/event/helpers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/flags.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/async_helpers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/bloom.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/cache.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/command.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/depsinstaller/installer.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/diff.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/brute.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/dns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/engine.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/helpers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/dns/mock.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/files.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/helper.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/interactsh.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/libmagic.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/misc.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/names_generator.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/ntlm.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/process.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/ratelimiter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/regex.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/regexes.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/url.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/validators.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/web/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/web/client.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/web/engine.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/web/web.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/helpers/wordcloud.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/modules.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/multiprocess.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/core/shared_deps.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/db/sql/models.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/defaults.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/errors.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/logger.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ajaxpro.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/anubisdb.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/apkpure.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/azure_realm.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/azure_tenant.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/baddns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/baddns_direct.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/baddns_zone.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/badsecrets.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bevigil.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/binaryedge.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_amazon.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_azure.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_digitalocean.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_file_enum.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_firebase.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bucket_google.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bufferoverrun.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/builtwith.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/bypass403.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/c99.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/censys.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/certspotter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/chaos.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/code_repository.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/credshed.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/deadly/dastardly.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/deadly/nuclei.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/deadly/vhost.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dehashed.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/digitorus.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnsbimi.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnsbrute.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnscaa.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnscommonsrv.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnsdumpster.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dnstlsrpt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/docker_pull.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dockerhub.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/dotnetnuke.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/emailformat.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/extractous.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/filedownload.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/fingerprintx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/fullhunt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/generic_ssrf.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/git.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/git_clone.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/gitdumper.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/github_codesearch.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/github_org.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/github_workflows.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/gitlab.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/google_playstore.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/gowitness.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/hackertarget.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/host_header.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/httpx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/hunt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/hunterio.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/iis_shortnames.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/aggregate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/base.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/cloudcheck.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/dnsresolve.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/excavate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/speculate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internal/unarchive.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/internetdb.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ip2location.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ipneighbor.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ipstack.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/jadx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/leakix.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/myssl.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/newsletters.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/ntlm.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/oauth.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/otx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/asset_inventory.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/base.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/csv.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/discord.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/emails.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/http.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/json.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/mysql.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/neo4j.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/nmap_xml.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/postgres.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/python.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/slack.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/splunk.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/sqlite.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/stdout.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/subdomains.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/teams.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/txt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/web_parameters.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/web_report.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/output/websocket.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/paramminer_cookies.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/paramminer_getparams.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/paramminer_headers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/passivetotal.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/pgp.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/portscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/postman.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/postman_download.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/rapiddns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/report/affiliates.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/report/asn.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/report/base.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/robots.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/securitytrails.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/securitytxt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/shodan_dns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/sitedossier.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/skymem.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/smuggler.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/social.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/sslcert.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/subdomaincenter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/subdomainradar.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/telerik.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/bucket.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/github.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/postman.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/shodan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/sql.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/templates/webhook.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/trickest.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/trufflehog.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/url_manipulation.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/urlscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/viewdns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/virustotal.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/wafw00f.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/wappalyzer.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/wayback.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/wpscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/modules/zoomeye.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/baddns-intense.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/cloud-enum.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/code-enum.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/email-enum.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/fast.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/kitchen-sink.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/nuclei/nuclei-budget.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/nuclei/nuclei-intense.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/nuclei/nuclei-technology.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/nuclei/nuclei.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/spider-intense.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/spider.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/subdomain-enum.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/tech-detect.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web/dirbust-light.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web/dotnet-audit.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web/paramminer.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web-basic.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web-screenshots.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/presets/web-thorough.yml +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/dispatcher.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/manager.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/args.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/conditions.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/environ.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/path.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/preset/preset.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/stats.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scanner/target.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/scripts/docs.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/bbot_fixtures.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/conftest.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/coverage.cfg +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/fastapi_test.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/owasp_mastg.apk +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/run_tests.sh +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test.conf +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_output.ndjson +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_bbot_fastapi.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_cli.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_command.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_config.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_dns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_docs.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_engine.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_events.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_files.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_presets.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_scan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_scope.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_target.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_1/test_web.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_binaryedge.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dastardly.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbimi.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_extractous.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_gitdumper.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_internetdb.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_jadx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_mysql.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_nmap_xml.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_portfilter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_postgres.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_sqlite.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_unarchive.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_web_parameters.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/testsslcert.pem +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/test/testsslkey.pem +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/devops_mutations.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/nameservers.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
- {bbot-2.3.2.5950rc0 → bbot-2.3.2.5958rc0}/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.3.2.
|
|
3
|
+
Version: 2.3.2.5958rc0
|
|
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
|
|
@@ -71,7 +71,7 @@ class BaseModule:
|
|
|
71
71
|
|
|
72
72
|
_qsize (int): Outgoing queue size (0 for infinite). Default is 0.
|
|
73
73
|
|
|
74
|
-
_priority (int): Priority level of
|
|
74
|
+
_priority (int): Priority level of the module. Lower values are higher priority. Default is 3.
|
|
75
75
|
|
|
76
76
|
_name (str): Module name, overridden automatically. Default is 'base'.
|
|
77
77
|
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import time
|
|
2
|
+
import asyncpg
|
|
3
|
+
|
|
4
|
+
from bbot.modules.templates.subdomain_enum import subdomain_enum
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class crt(subdomain_enum):
|
|
8
|
+
flags = ["subdomain-enum", "passive", "safe"]
|
|
9
|
+
watched_events = ["DNS_NAME"]
|
|
10
|
+
produced_events = ["DNS_NAME"]
|
|
11
|
+
meta = {
|
|
12
|
+
"description": "Query crt.sh (certificate transparency) for subdomains",
|
|
13
|
+
"created_date": "2022-05-13",
|
|
14
|
+
"author": "@TheTechromancer",
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
deps_pip = ["asyncpg"]
|
|
18
|
+
|
|
19
|
+
db_host = "crt.sh"
|
|
20
|
+
db_port = 5432
|
|
21
|
+
db_user = "guest"
|
|
22
|
+
db_name = "certwatch"
|
|
23
|
+
reject_wildcards = False
|
|
24
|
+
|
|
25
|
+
async def setup(self):
|
|
26
|
+
self.db_conn = None
|
|
27
|
+
return await super().setup()
|
|
28
|
+
|
|
29
|
+
async def request_url(self, query):
|
|
30
|
+
if not self.db_conn:
|
|
31
|
+
self.db_conn = await asyncpg.connect(
|
|
32
|
+
host=self.db_host, port=self.db_port, user=self.db_user, database=self.db_name
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
sql = """
|
|
36
|
+
WITH ci AS (
|
|
37
|
+
SELECT array_agg(DISTINCT sub.NAME_VALUE) NAME_VALUES
|
|
38
|
+
FROM (
|
|
39
|
+
SELECT DISTINCT cai.CERTIFICATE, cai.NAME_VALUE
|
|
40
|
+
FROM certificate_and_identities cai
|
|
41
|
+
WHERE plainto_tsquery('certwatch', $1) @@ identities(cai.CERTIFICATE)
|
|
42
|
+
AND cai.NAME_VALUE ILIKE ('%.' || $1)
|
|
43
|
+
LIMIT 50000
|
|
44
|
+
) sub
|
|
45
|
+
GROUP BY sub.CERTIFICATE
|
|
46
|
+
)
|
|
47
|
+
SELECT DISTINCT unnest(NAME_VALUES) as name_value FROM ci;
|
|
48
|
+
"""
|
|
49
|
+
start = time.time()
|
|
50
|
+
results = await self.db_conn.fetch(sql, query)
|
|
51
|
+
end = time.time()
|
|
52
|
+
self.verbose(f"SQL query executed in: {end - start} seconds with {len(results):,} results")
|
|
53
|
+
return results
|
|
54
|
+
|
|
55
|
+
async def parse_results(self, results, query):
|
|
56
|
+
domains = set()
|
|
57
|
+
for row in results:
|
|
58
|
+
domain = row["name_value"]
|
|
59
|
+
if domain:
|
|
60
|
+
for d in domain.splitlines():
|
|
61
|
+
domains.add(d.lower())
|
|
62
|
+
return domains
|
|
63
|
+
|
|
64
|
+
async def cleanup(self):
|
|
65
|
+
if self.db_conn:
|
|
66
|
+
await self.db_conn.close()
|
|
@@ -18,6 +18,7 @@ class ffuf(BaseModule):
|
|
|
18
18
|
"max_depth": 0,
|
|
19
19
|
"extensions": "",
|
|
20
20
|
"ignore_case": False,
|
|
21
|
+
"rate": 0,
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
options_desc = {
|
|
@@ -26,6 +27,7 @@ class ffuf(BaseModule):
|
|
|
26
27
|
"max_depth": "the maximum directory depth to attempt to solve",
|
|
27
28
|
"extensions": "Optionally include a list of extensions to extend the keyword with (comma separated)",
|
|
28
29
|
"ignore_case": "Only put lowercase words into the wordlist",
|
|
30
|
+
"rate": "Rate of requests per second (default: 0)",
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
deps_common = ["ffuf"]
|
|
@@ -43,6 +45,7 @@ class ffuf(BaseModule):
|
|
|
43
45
|
self.wordlist = await self.helpers.wordlist(wordlist_url)
|
|
44
46
|
self.wordlist_lines = self.generate_wordlist(self.wordlist)
|
|
45
47
|
self.tempfile, tempfile_len = self.generate_templist()
|
|
48
|
+
self.rate = self.config.get("rate", 0)
|
|
46
49
|
self.verbose(f"Generated dynamic wordlist with length [{str(tempfile_len)}]")
|
|
47
50
|
try:
|
|
48
51
|
self.extensions = self.helpers.chain_lists(self.config.get("extensions", ""), validate=True)
|
|
@@ -245,6 +248,9 @@ class ffuf(BaseModule):
|
|
|
245
248
|
self.debug("invalid mode specified, aborting")
|
|
246
249
|
return
|
|
247
250
|
|
|
251
|
+
if self.rate > 0:
|
|
252
|
+
command += ["-rate", f"{self.rate}"]
|
|
253
|
+
|
|
248
254
|
if self.proxy:
|
|
249
255
|
command += ["-x", self.proxy]
|
|
250
256
|
|
|
@@ -26,6 +26,7 @@ class ffuf_shortnames(ffuf):
|
|
|
26
26
|
"find_delimiters": True,
|
|
27
27
|
"find_subwords": False,
|
|
28
28
|
"max_predictions": 250,
|
|
29
|
+
"rate": 0,
|
|
29
30
|
}
|
|
30
31
|
|
|
31
32
|
options_desc = {
|
|
@@ -38,6 +39,7 @@ class ffuf_shortnames(ffuf):
|
|
|
38
39
|
"find_delimiters": "Attempt to detect common delimiters and make additional ffuf runs against them",
|
|
39
40
|
"find_subwords": "Attempt to detect subwords and make additional ffuf runs against them",
|
|
40
41
|
"max_predictions": "The maximum number of predictions to generate per shortname prefix",
|
|
42
|
+
"rate": "Rate of requests per second (default: 0)",
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
deps_pip = ["numpy"]
|
|
@@ -96,6 +98,7 @@ class ffuf_shortnames(ffuf):
|
|
|
96
98
|
self.ignore_redirects = self.config.get("ignore_redirects")
|
|
97
99
|
self.max_predictions = self.config.get("max_predictions")
|
|
98
100
|
self.find_subwords = self.config.get("find_subwords")
|
|
101
|
+
self.rate = self.config.get("rate", 0)
|
|
99
102
|
|
|
100
103
|
class MinimalWordPredictor:
|
|
101
104
|
def __init__(self):
|
|
@@ -18,6 +18,8 @@ class portfilter(BaseInterceptModule):
|
|
|
18
18
|
"allowed_cdn_ports": "Comma-separated list of ports that are allowed to be scanned for CDNs",
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
+
_priority = 4
|
|
22
|
+
|
|
21
23
|
async def setup(self):
|
|
22
24
|
self.cdn_tags = [t.strip() for t in self.config.get("cdn_tags", "").split(",")]
|
|
23
25
|
self.allowed_cdn_ports = self.config.get("allowed_cdn_ports", "").strip()
|
|
@@ -289,6 +289,7 @@ class Scanner:
|
|
|
289
289
|
|
|
290
290
|
# intercept modules get sewn together like human centipede
|
|
291
291
|
self.intercept_modules = [m for m in self.modules.values() if m._intercept]
|
|
292
|
+
self.intercept_modules.sort(key=lambda x: x.priority)
|
|
292
293
|
for i, intercept_module in enumerate(self.intercept_modules[1:]):
|
|
293
294
|
prev_intercept_module = self.intercept_modules[i]
|
|
294
295
|
self.debug(
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
from .base import ModuleTestBase
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class TestCRT(ModuleTestBase):
|
|
5
|
+
async def setup_after_prep(self, module_test):
|
|
6
|
+
class AsyncMock:
|
|
7
|
+
async def fetch(self, *args, **kwargs):
|
|
8
|
+
print("mock_fetch", args, kwargs)
|
|
9
|
+
return [
|
|
10
|
+
{"name_value": "asdf.blacklanternsecurity.com"},
|
|
11
|
+
{"name_value": "zzzz.blacklanternsecurity.com"},
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
async def close(self):
|
|
15
|
+
pass
|
|
16
|
+
|
|
17
|
+
async def mock_connect(*args, **kwargs):
|
|
18
|
+
print("mock_connect", args, kwargs)
|
|
19
|
+
return AsyncMock()
|
|
20
|
+
|
|
21
|
+
module_test.monkeypatch.setattr("asyncpg.connect", mock_connect)
|
|
22
|
+
|
|
23
|
+
def check(self, module_test, events):
|
|
24
|
+
assert any(e.data == "asdf.blacklanternsecurity.com" for e in events), "Failed to detect subdomain"
|
|
25
|
+
assert any(e.data == "zzzz.blacklanternsecurity.com" for e in events), "Failed to detect subdomain"
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
from bbot.modules.templates.subdomain_enum import subdomain_enum
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class crt(subdomain_enum):
|
|
5
|
-
flags = ["subdomain-enum", "passive", "safe"]
|
|
6
|
-
watched_events = ["DNS_NAME"]
|
|
7
|
-
produced_events = ["DNS_NAME"]
|
|
8
|
-
meta = {
|
|
9
|
-
"description": "Query crt.sh (certificate transparency) for subdomains",
|
|
10
|
-
"created_date": "2022-05-13",
|
|
11
|
-
"author": "@TheTechromancer",
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
base_url = "https://crt.sh"
|
|
15
|
-
reject_wildcards = False
|
|
16
|
-
|
|
17
|
-
async def setup(self):
|
|
18
|
-
self.cert_ids = set()
|
|
19
|
-
return await super().setup()
|
|
20
|
-
|
|
21
|
-
async def request_url(self, query):
|
|
22
|
-
params = {"q": f"%.{query}", "output": "json"}
|
|
23
|
-
url = self.helpers.add_get_params(self.base_url, params).geturl()
|
|
24
|
-
return await self.api_request(url, timeout=self.http_timeout + 30)
|
|
25
|
-
|
|
26
|
-
async def parse_results(self, r, query):
|
|
27
|
-
results = set()
|
|
28
|
-
j = r.json()
|
|
29
|
-
for cert_info in j:
|
|
30
|
-
if not type(cert_info) == dict:
|
|
31
|
-
continue
|
|
32
|
-
cert_id = cert_info.get("id")
|
|
33
|
-
if cert_id:
|
|
34
|
-
if hash(cert_id) not in self.cert_ids:
|
|
35
|
-
self.cert_ids.add(hash(cert_id))
|
|
36
|
-
domain = cert_info.get("name_value")
|
|
37
|
-
if domain:
|
|
38
|
-
for d in domain.splitlines():
|
|
39
|
-
results.add(d.lower())
|
|
40
|
-
return results
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from .base import ModuleTestBase
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class TestCRT(ModuleTestBase):
|
|
5
|
-
async def setup_after_prep(self, module_test):
|
|
6
|
-
module_test.module.abort_if = lambda e: False
|
|
7
|
-
for t in self.targets:
|
|
8
|
-
module_test.httpx_mock.add_response(
|
|
9
|
-
url="https://crt.sh?q=%25.blacklanternsecurity.com&output=json",
|
|
10
|
-
json=[{"id": 1, "name_value": "asdf.blacklanternsecurity.com\nzzzz.blacklanternsecurity.com"}],
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
def check(self, module_test, events):
|
|
14
|
-
assert any(e.data == "asdf.blacklanternsecurity.com" for e in events), "Failed to detect subdomain"
|
|
15
|
-
assert any(e.data == "zzzz.blacklanternsecurity.com" for e in events), "Failed to detect subdomain"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|