bbot 2.3.0.5370rc0__tar.gz → 2.3.0.5376rc0__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.

Files changed (420) hide show
  1. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/PKG-INFO +1 -1
  2. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/__init__.py +1 -1
  3. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/cli.py +0 -4
  4. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/config/files.py +0 -1
  5. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/event/base.py +0 -3
  6. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/dns.py +0 -1
  7. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/engine.py +0 -2
  8. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/mock.py +0 -1
  9. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/libmagic.py +0 -1
  10. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/process.py +0 -2
  11. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/validators.py +0 -1
  12. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/web/engine.py +0 -1
  13. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/web/web.py +0 -1
  14. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/modules.py +0 -1
  15. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/db/sql/models.py +0 -1
  16. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/baddns.py +0 -2
  17. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/baddns_direct.py +0 -1
  18. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dotnetnuke.py +0 -2
  19. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/excavate.py +18 -21
  20. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/paramminer_headers.py +1 -4
  21. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/trufflehog.py +1 -1
  22. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/args.py +0 -1
  23. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/environ.py +0 -1
  24. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_asset_inventory.py +0 -1
  25. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute.py +0 -1
  26. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbrute_mutations.py +0 -1
  27. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnscommonsrv.py +0 -1
  28. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dotnetnuke.py +0 -2
  29. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_excavate.py +0 -20
  30. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_cookies.py +0 -1
  31. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_getparams.py +0 -6
  32. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_paramminer_headers.py +0 -7
  33. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_portscan.py +0 -1
  34. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/pyproject.toml +4 -3
  35. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/LICENSE +0 -0
  36. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/README.md +0 -0
  37. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/__init__.py +0 -0
  38. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/config/__init__.py +0 -0
  39. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/config/logger.py +0 -0
  40. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/core.py +0 -0
  41. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/engine.py +0 -0
  42. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/event/__init__.py +0 -0
  43. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/event/helpers.py +0 -0
  44. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/flags.py +0 -0
  45. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/__init__.py +0 -0
  46. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/async_helpers.py +0 -0
  47. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/bloom.py +0 -0
  48. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/cache.py +0 -0
  49. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/command.py +0 -0
  50. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/depsinstaller/__init__.py +0 -0
  51. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/depsinstaller/installer.py +0 -0
  52. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/depsinstaller/sudo_askpass.py +0 -0
  53. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/diff.py +0 -0
  54. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/__init__.py +0 -0
  55. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/brute.py +0 -0
  56. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/dns/helpers.py +0 -0
  57. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/files.py +0 -0
  58. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/helper.py +0 -0
  59. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/interactsh.py +0 -0
  60. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/misc.py +0 -0
  61. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/names_generator.py +0 -0
  62. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/ntlm.py +0 -0
  63. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/ratelimiter.py +0 -0
  64. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/regex.py +0 -0
  65. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/regexes.py +0 -0
  66. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/url.py +0 -0
  67. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/web/__init__.py +0 -0
  68. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/web/client.py +0 -0
  69. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/web/ssl_context.py +0 -0
  70. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/helpers/wordcloud.py +0 -0
  71. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/multiprocess.py +0 -0
  72. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/core/shared_deps.py +0 -0
  73. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/defaults.yml +0 -0
  74. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/errors.py +0 -0
  75. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/logger.py +0 -0
  76. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/__init__.py +0 -0
  77. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ajaxpro.py +0 -0
  78. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/anubisdb.py +0 -0
  79. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/apkpure.py +0 -0
  80. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/azure_realm.py +0 -0
  81. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/azure_tenant.py +0 -0
  82. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/baddns_zone.py +0 -0
  83. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/badsecrets.py +0 -0
  84. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/base.py +0 -0
  85. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bevigil.py +0 -0
  86. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/binaryedge.py +0 -0
  87. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_amazon.py +0 -0
  88. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_azure.py +0 -0
  89. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_digitalocean.py +0 -0
  90. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_file_enum.py +0 -0
  91. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_firebase.py +0 -0
  92. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bucket_google.py +0 -0
  93. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bufferoverrun.py +0 -0
  94. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/builtwith.py +0 -0
  95. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/bypass403.py +0 -0
  96. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/c99.py +0 -0
  97. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/censys.py +0 -0
  98. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/certspotter.py +0 -0
  99. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/chaos.py +0 -0
  100. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/code_repository.py +0 -0
  101. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/columbus.py +0 -0
  102. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/credshed.py +0 -0
  103. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/crt.py +0 -0
  104. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/deadly/dastardly.py +0 -0
  105. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/deadly/ffuf.py +0 -0
  106. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/deadly/nuclei.py +0 -0
  107. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/deadly/vhost.py +0 -0
  108. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dehashed.py +0 -0
  109. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/digitorus.py +0 -0
  110. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnsbimi.py +0 -0
  111. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnsbrute.py +0 -0
  112. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnsbrute_mutations.py +0 -0
  113. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnscaa.py +0 -0
  114. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnscommonsrv.py +0 -0
  115. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnsdumpster.py +0 -0
  116. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dnstlsrpt.py +0 -0
  117. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/docker_pull.py +0 -0
  118. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/dockerhub.py +0 -0
  119. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/emailformat.py +0 -0
  120. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/extractous.py +0 -0
  121. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ffuf_shortnames.py +0 -0
  122. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/filedownload.py +0 -0
  123. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/fingerprintx.py +0 -0
  124. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/fullhunt.py +0 -0
  125. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/generic_ssrf.py +0 -0
  126. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/git.py +0 -0
  127. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/git_clone.py +0 -0
  128. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/github_codesearch.py +0 -0
  129. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/github_org.py +0 -0
  130. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/github_workflows.py +0 -0
  131. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/gitlab.py +0 -0
  132. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/google_playstore.py +0 -0
  133. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/gowitness.py +0 -0
  134. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/hackertarget.py +0 -0
  135. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/host_header.py +0 -0
  136. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/httpx.py +0 -0
  137. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/hunt.py +0 -0
  138. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/hunterio.py +0 -0
  139. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/iis_shortnames.py +0 -0
  140. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/__init__.py +0 -0
  141. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/aggregate.py +0 -0
  142. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/base.py +0 -0
  143. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/cloudcheck.py +0 -0
  144. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/dnsresolve.py +0 -0
  145. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internal/speculate.py +0 -0
  146. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/internetdb.py +0 -0
  147. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ip2location.py +0 -0
  148. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ipneighbor.py +0 -0
  149. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ipstack.py +0 -0
  150. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/jadx.py +0 -0
  151. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/leakix.py +0 -0
  152. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/myssl.py +0 -0
  153. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/newsletters.py +0 -0
  154. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/ntlm.py +0 -0
  155. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/oauth.py +0 -0
  156. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/otx.py +0 -0
  157. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/__init__.py +0 -0
  158. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/asset_inventory.py +0 -0
  159. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/base.py +0 -0
  160. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/csv.py +0 -0
  161. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/discord.py +0 -0
  162. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/emails.py +0 -0
  163. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/http.py +0 -0
  164. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/json.py +0 -0
  165. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/mysql.py +0 -0
  166. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/neo4j.py +0 -0
  167. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/postgres.py +0 -0
  168. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/python.py +0 -0
  169. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/slack.py +0 -0
  170. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/splunk.py +0 -0
  171. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/sqlite.py +0 -0
  172. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/stdout.py +0 -0
  173. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/subdomains.py +0 -0
  174. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/teams.py +0 -0
  175. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/txt.py +0 -0
  176. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/web_report.py +0 -0
  177. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/output/websocket.py +0 -0
  178. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/paramminer_cookies.py +0 -0
  179. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/paramminer_getparams.py +0 -0
  180. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/passivetotal.py +0 -0
  181. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/pgp.py +0 -0
  182. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/portscan.py +0 -0
  183. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/postman.py +0 -0
  184. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/postman_download.py +0 -0
  185. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/rapiddns.py +0 -0
  186. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/report/affiliates.py +0 -0
  187. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/report/asn.py +0 -0
  188. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/report/base.py +0 -0
  189. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/robots.py +0 -0
  190. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/secretsdb.py +0 -0
  191. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/securitytrails.py +0 -0
  192. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/securitytxt.py +0 -0
  193. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/shodan_dns.py +0 -0
  194. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/sitedossier.py +0 -0
  195. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/skymem.py +0 -0
  196. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/smuggler.py +0 -0
  197. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/social.py +0 -0
  198. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/sslcert.py +0 -0
  199. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/subdomaincenter.py +0 -0
  200. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/subdomainradar.py +0 -0
  201. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/telerik.py +0 -0
  202. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/bucket.py +0 -0
  203. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/github.py +0 -0
  204. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/postman.py +0 -0
  205. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/shodan.py +0 -0
  206. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/sql.py +0 -0
  207. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/subdomain_enum.py +0 -0
  208. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/templates/webhook.py +0 -0
  209. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/trickest.py +0 -0
  210. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/url_manipulation.py +0 -0
  211. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/urlscan.py +0 -0
  212. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/viewdns.py +0 -0
  213. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/virustotal.py +0 -0
  214. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/wafw00f.py +0 -0
  215. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/wappalyzer.py +0 -0
  216. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/wayback.py +0 -0
  217. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/wpscan.py +0 -0
  218. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/modules/zoomeye.py +0 -0
  219. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/baddns-thorough.yml +0 -0
  220. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/cloud-enum.yml +0 -0
  221. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/code-enum.yml +0 -0
  222. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/email-enum.yml +0 -0
  223. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/fast.yml +0 -0
  224. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/kitchen-sink.yml +0 -0
  225. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/spider.yml +0 -0
  226. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/subdomain-enum.yml +0 -0
  227. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web/dirbust-heavy.yml +0 -0
  228. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web/dirbust-light.yml +0 -0
  229. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web/dotnet-audit.yml +0 -0
  230. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web/iis-shortnames.yml +0 -0
  231. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web/paramminer.yml +0 -0
  232. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web-basic.yml +0 -0
  233. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web-screenshots.yml +0 -0
  234. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/presets/web-thorough.yml +0 -0
  235. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/__init__.py +0 -0
  236. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/dispatcher.py +0 -0
  237. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/manager.py +0 -0
  238. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/__init__.py +0 -0
  239. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/conditions.py +0 -0
  240. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/path.py +0 -0
  241. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/preset/preset.py +0 -0
  242. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/scanner.py +0 -0
  243. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/stats.py +0 -0
  244. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scanner/target.py +0 -0
  245. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/scripts/docs.py +0 -0
  246. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/__init__.py +0 -0
  247. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/bbot_fixtures.py +0 -0
  248. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/conftest.py +0 -0
  249. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/coverage.cfg +0 -0
  250. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/fastapi_test.py +0 -0
  251. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/owasp_mastg.apk +0 -0
  252. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/run_tests.sh +0 -0
  253. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test.conf +0 -0
  254. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_output.ndjson +0 -0
  255. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/__init__.py +0 -0
  256. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test__module__tests.py +0 -0
  257. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_bbot_fastapi.py +0 -0
  258. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_bloom_filter.py +0 -0
  259. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_cli.py +0 -0
  260. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_command.py +0 -0
  261. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_config.py +0 -0
  262. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_depsinstaller.py +0 -0
  263. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_dns.py +0 -0
  264. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_docs.py +0 -0
  265. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_engine.py +0 -0
  266. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_events.py +0 -0
  267. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_files.py +0 -0
  268. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_helpers.py +0 -0
  269. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_manager_deduplication.py +0 -0
  270. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_manager_scope_accuracy.py +0 -0
  271. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_modules_basic.py +0 -0
  272. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_presets.py +0 -0
  273. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_python_api.py +0 -0
  274. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_regexes.py +0 -0
  275. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_scan.py +0 -0
  276. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_scope.py +0 -0
  277. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_target.py +0 -0
  278. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_1/test_web.py +0 -0
  279. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/__init__.py +0 -0
  280. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/__init__.py +0 -0
  281. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/base.py +0 -0
  282. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_affiliates.py +0 -0
  283. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_aggregate.py +0 -0
  284. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ajaxpro.py +0 -0
  285. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_anubisdb.py +0 -0
  286. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_apkpure.py +0 -0
  287. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_asn.py +0 -0
  288. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_azure_realm.py +0 -0
  289. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_azure_tenant.py +0 -0
  290. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_baddns.py +0 -0
  291. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_direct.py +0 -0
  292. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_baddns_zone.py +0 -0
  293. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_badsecrets.py +0 -0
  294. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bevigil.py +0 -0
  295. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_binaryedge.py +0 -0
  296. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_amazon.py +0 -0
  297. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_azure.py +0 -0
  298. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_digitalocean.py +0 -0
  299. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_file_enum.py +0 -0
  300. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_firebase.py +0 -0
  301. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bucket_google.py +0 -0
  302. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bufferoverrun.py +0 -0
  303. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_builtwith.py +0 -0
  304. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_bypass403.py +0 -0
  305. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_c99.py +0 -0
  306. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_censys.py +0 -0
  307. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_certspotter.py +0 -0
  308. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_chaos.py +0 -0
  309. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_cloudcheck.py +0 -0
  310. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_code_repository.py +0 -0
  311. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_columbus.py +0 -0
  312. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_credshed.py +0 -0
  313. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_crt.py +0 -0
  314. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_csv.py +0 -0
  315. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dastardly.py +0 -0
  316. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dehashed.py +0 -0
  317. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_digitorus.py +0 -0
  318. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_discord.py +0 -0
  319. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnsbimi.py +0 -0
  320. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnscaa.py +0 -0
  321. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnsdumpster.py +0 -0
  322. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnsresolve.py +0 -0
  323. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dnstlsrpt.py +0 -0
  324. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_docker_pull.py +0 -0
  325. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_dockerhub.py +0 -0
  326. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_emailformat.py +0 -0
  327. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_emails.py +0 -0
  328. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_extractous.py +0 -0
  329. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf.py +0 -0
  330. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ffuf_shortnames.py +0 -0
  331. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_filedownload.py +0 -0
  332. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_fingerprintx.py +0 -0
  333. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_fullhunt.py +0 -0
  334. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_generic_ssrf.py +0 -0
  335. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_git.py +0 -0
  336. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_git_clone.py +0 -0
  337. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_github_codesearch.py +0 -0
  338. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_github_org.py +0 -0
  339. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_github_workflows.py +0 -0
  340. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_gitlab.py +0 -0
  341. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_google_playstore.py +0 -0
  342. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_gowitness.py +0 -0
  343. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_hackertarget.py +0 -0
  344. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_host_header.py +0 -0
  345. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_http.py +0 -0
  346. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_httpx.py +0 -0
  347. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_hunt.py +0 -0
  348. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_hunterio.py +0 -0
  349. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_iis_shortnames.py +0 -0
  350. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_internetdb.py +0 -0
  351. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ip2location.py +0 -0
  352. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ipneighbor.py +0 -0
  353. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ipstack.py +0 -0
  354. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_jadx.py +0 -0
  355. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_json.py +0 -0
  356. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_leakix.py +0 -0
  357. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_mysql.py +0 -0
  358. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_myssl.py +0 -0
  359. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_neo4j.py +0 -0
  360. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_newsletters.py +0 -0
  361. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_ntlm.py +0 -0
  362. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_nuclei.py +0 -0
  363. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_oauth.py +0 -0
  364. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_otx.py +0 -0
  365. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_passivetotal.py +0 -0
  366. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_pgp.py +0 -0
  367. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_postgres.py +0 -0
  368. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_postman.py +0 -0
  369. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_postman_download.py +0 -0
  370. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_python.py +0 -0
  371. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_rapiddns.py +0 -0
  372. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_robots.py +0 -0
  373. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_secretsdb.py +0 -0
  374. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_securitytrails.py +0 -0
  375. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_securitytxt.py +0 -0
  376. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_shodan_dns.py +0 -0
  377. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_sitedossier.py +0 -0
  378. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_skymem.py +0 -0
  379. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_slack.py +0 -0
  380. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_smuggler.py +0 -0
  381. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_social.py +0 -0
  382. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_speculate.py +0 -0
  383. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_splunk.py +0 -0
  384. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_sqlite.py +0 -0
  385. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_sslcert.py +0 -0
  386. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_stdout.py +0 -0
  387. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_subdomaincenter.py +0 -0
  388. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_subdomainradar.py +0 -0
  389. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_subdomains.py +0 -0
  390. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_teams.py +0 -0
  391. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_telerik.py +0 -0
  392. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_trickest.py +0 -0
  393. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_trufflehog.py +0 -0
  394. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_txt.py +0 -0
  395. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_url_manipulation.py +0 -0
  396. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_urlscan.py +0 -0
  397. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_vhost.py +0 -0
  398. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_viewdns.py +0 -0
  399. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_virustotal.py +0 -0
  400. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_wafw00f.py +0 -0
  401. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_wappalyzer.py +0 -0
  402. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_wayback.py +0 -0
  403. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_web_report.py +0 -0
  404. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_websocket.py +0 -0
  405. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_wpscan.py +0 -0
  406. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/module_tests/test_module_zoomeye.py +0 -0
  407. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/template_tests/__init__.py +0 -0
  408. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/test_step_2/template_tests/test_template_subdomain_enum.py +0 -0
  409. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/testsslcert.pem +0 -0
  410. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/test/testsslkey.pem +0 -0
  411. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/devops_mutations.txt +0 -0
  412. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/ffuf_shortname_candidates.txt +0 -0
  413. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/ms_on_prem_subdomains.txt +0 -0
  414. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/nameservers.txt +0 -0
  415. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/paramminer_headers.txt +0 -0
  416. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/paramminer_parameters.txt +0 -0
  417. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/raft-small-extensions-lowercase_CLEANED.txt +0 -0
  418. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/top_open_ports_nmap.txt +0 -0
  419. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/valid_url_schemes.txt +0 -0
  420. {bbot-2.3.0.5370rc0 → bbot-2.3.0.5376rc0}/bbot/wordlists/wordninja_dns.txt.gz +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: bbot
3
- Version: 2.3.0.5370rc0
3
+ Version: 2.3.0.5376rc0
4
4
  Summary: OSINT automation for hackers.
5
5
  Home-page: https://github.com/blacklanternsecurity/bbot
6
6
  License: GPL-3.0
@@ -1,4 +1,4 @@
1
1
  # version placeholder (replaced by poetry-dynamic-versioning)
2
- __version__ = "v2.3.0.5370rc"
2
+ __version__ = "v2.3.0.5376rc"
3
3
 
4
4
  from .scanner import Scanner, Preset
@@ -29,7 +29,6 @@ scan_name = ""
29
29
 
30
30
 
31
31
  async def _main():
32
-
33
32
  import asyncio
34
33
  import traceback
35
34
  from contextlib import suppress
@@ -45,7 +44,6 @@ async def _main():
45
44
  global scan_name
46
45
 
47
46
  try:
48
-
49
47
  # start by creating a default scan preset
50
48
  preset = Preset(_log=True, name="bbot_cli_main")
51
49
  # parse command line arguments and merge into preset
@@ -81,7 +79,6 @@ async def _main():
81
79
 
82
80
  # if we're listing modules or their options
83
81
  if options.list_modules or options.list_module_options:
84
-
85
82
  # if no modules or flags are specified, enable everything
86
83
  if not (options.modules or options.output_modules or options.flags):
87
84
  for module, preloaded in preset.module_loader.preloaded().items():
@@ -172,7 +169,6 @@ async def _main():
172
169
  log.trace(f"Command: {' '.join(sys.argv)}")
173
170
 
174
171
  if sys.stdin.isatty():
175
-
176
172
  # warn if any targets belong directly to a cloud provider
177
173
  for event in scan.target.seeds.events:
178
174
  if event.type == "DNS_NAME":
@@ -10,7 +10,6 @@ bbot_code_dir = Path(__file__).parent.parent.parent
10
10
 
11
11
 
12
12
  class BBOTConfigFiles:
13
-
14
13
  config_dir = (Path.home() / ".config" / "bbot").resolve()
15
14
  defaults_filename = (bbot_code_dir / "defaults.yml").resolve()
16
15
  config_filename = (config_dir / "bbot.yml").resolve()
@@ -1180,7 +1180,6 @@ class URL_UNVERIFIED(BaseEvent):
1180
1180
  self.num_redirects = getattr(self.parent, "num_redirects", 0)
1181
1181
 
1182
1182
  def _data_id(self):
1183
-
1184
1183
  data = super()._data_id()
1185
1184
 
1186
1185
  # remove the querystring for URL/URL_UNVERIFIED events, because we will conditionally add it back in (based on settings)
@@ -1267,7 +1266,6 @@ class URL_UNVERIFIED(BaseEvent):
1267
1266
 
1268
1267
 
1269
1268
  class URL(URL_UNVERIFIED):
1270
-
1271
1269
  def __init__(self, *args, **kwargs):
1272
1270
  super().__init__(*args, **kwargs)
1273
1271
 
@@ -1309,7 +1307,6 @@ class URL_HINT(URL_UNVERIFIED):
1309
1307
 
1310
1308
 
1311
1309
  class WEB_PARAMETER(DictHostEvent):
1312
-
1313
1310
  def _data_id(self):
1314
1311
  # dedupe by url:name:param_type
1315
1312
  url = self.data.get("url", "")
@@ -16,7 +16,6 @@ log = logging.getLogger("bbot.core.helpers.dns")
16
16
 
17
17
 
18
18
  class DNSHelper(EngineClient):
19
-
20
19
  SERVER_CLASS = DNSEngine
21
20
  ERROR_CLASS = DNSError
22
21
 
@@ -24,7 +24,6 @@ all_rdtypes = ["A", "AAAA", "SRV", "MX", "NS", "SOA", "CNAME", "TXT"]
24
24
 
25
25
 
26
26
  class DNSEngine(EngineServer):
27
-
28
27
  CMDS = {
29
28
  0: "resolve",
30
29
  1: "resolve_raw",
@@ -476,7 +475,6 @@ class DNSEngine(EngineServer):
476
475
  # for every parent domain, starting with the shortest
477
476
  parents = list(domain_parents(query))
478
477
  for parent in parents[::-1]:
479
-
480
478
  # check if the parent domain is set up with wildcards
481
479
  wildcard_results = await self.is_wildcard_domain(parent, rdtypes_to_check)
482
480
 
@@ -5,7 +5,6 @@ log = logging.getLogger("bbot.core.helpers.dns.mock")
5
5
 
6
6
 
7
7
  class MockResolver:
8
-
9
8
  def __init__(self, mock_data=None, custom_lookup_fn=None):
10
9
  self.mock_data = mock_data if mock_data else {}
11
10
  self._custom_lookup_fn = custom_lookup_fn
@@ -2,7 +2,6 @@ import puremagic
2
2
 
3
3
 
4
4
  def get_magic_info(file):
5
-
6
5
  magic_detections = puremagic.magic_file(file)
7
6
  if magic_detections:
8
7
  magic_detections.sort(key=lambda x: x.confidence, reverse=True)
@@ -7,7 +7,6 @@ from .misc import in_exception_chain
7
7
 
8
8
 
9
9
  class BBOTThread(threading.Thread):
10
-
11
10
  default_name = "default bbot thread"
12
11
 
13
12
  def __init__(self, *args, **kwargs):
@@ -24,7 +23,6 @@ class BBOTThread(threading.Thread):
24
23
 
25
24
 
26
25
  class BBOTProcess(SpawnProcess):
27
-
28
26
  default_name = "bbot process pool"
29
27
 
30
28
  def __init__(self, *args, **kwargs):
@@ -299,7 +299,6 @@ def is_email(email):
299
299
 
300
300
 
301
301
  class Validators:
302
-
303
302
  def __init__(self, parent_helper):
304
303
  self.parent_helper = parent_helper
305
304
 
@@ -14,7 +14,6 @@ log = logging.getLogger("bbot.core.helpers.web.engine")
14
14
 
15
15
 
16
16
  class HTTPEngine(EngineServer):
17
-
18
17
  CMDS = {
19
18
  0: "request",
20
19
  1: "request_batch",
@@ -19,7 +19,6 @@ log = logging.getLogger("bbot.core.helpers.web")
19
19
 
20
20
 
21
21
  class WebHelper(EngineClient):
22
-
23
22
  SERVER_CLASS = HTTPEngine
24
23
  ERROR_CLASS = WebError
25
24
 
@@ -337,7 +337,6 @@ class ModuleLoader:
337
337
  # look for classes
338
338
  if type(root_element) == ast.ClassDef:
339
339
  for class_attr in root_element.body:
340
-
341
340
  # class attributes that are dictionaries
342
341
  if type(class_attr) == ast.Assign and type(class_attr.value) == ast.Dict:
343
342
  # module options
@@ -69,7 +69,6 @@ class BBOTBaseModel(SQLModel):
69
69
 
70
70
 
71
71
  class Event(BBOTBaseModel, table=True):
72
-
73
72
  def __init__(self, *args, **kwargs):
74
73
  super().__init__(*args, **kwargs)
75
74
  data = self._get_data(self.data, self.type)
@@ -55,7 +55,6 @@ class baddns(BaseModule):
55
55
  return True
56
56
 
57
57
  async def handle_event(self, event):
58
-
59
58
  tasks = []
60
59
  for ModuleClass in self.select_modules():
61
60
  kwargs = {
@@ -75,7 +74,6 @@ class baddns(BaseModule):
75
74
  tasks.append((module_instance, task))
76
75
 
77
76
  async for completed_task in self.helpers.as_completed([task for _, task in tasks]):
78
-
79
77
  module_instance = next((m for m, t in tasks if t == completed_task), None)
80
78
  try:
81
79
  task_result = await completed_task
@@ -51,7 +51,6 @@ class baddns_direct(BaseModule):
51
51
 
52
52
  CNAME_direct_instance = CNAME_direct_module(event.host, **kwargs)
53
53
  if await CNAME_direct_instance.dispatch():
54
-
55
54
  results = CNAME_direct_instance.analyze()
56
55
  if results and len(results) > 0:
57
56
  for r in results:
@@ -32,7 +32,6 @@ class dotnetnuke(BaseModule):
32
32
  self.interactsh_instance = None
33
33
 
34
34
  if self.scan.config.get("interactsh_disable", False) == False:
35
-
36
35
  try:
37
36
  self.interactsh_instance = self.helpers.interactsh()
38
37
  self.interactsh_domain = await self.interactsh_instance.register(callback=self.interactsh_callback)
@@ -114,7 +113,6 @@ class dotnetnuke(BaseModule):
114
113
  )
115
114
 
116
115
  if "endpoint" not in event.tags:
117
-
118
116
  # NewsArticlesSlider ImageHandler.ashx File Read
119
117
  result = await self.helpers.request(
120
118
  f'{event.data["url"]}/DesktopModules/dnnUI_NewsArticlesSlider/ImageHandler.ashx?img=~/web.config'
@@ -62,7 +62,6 @@ def _exclude_key(original_dict, key_to_exclude):
62
62
 
63
63
 
64
64
  def extract_params_url(parsed_url):
65
-
66
65
  params = parse_qs(parsed_url.query)
67
66
  flat_params = {k: v[0] for k, v in params.items()}
68
67
 
@@ -94,7 +93,6 @@ def extract_params_location(location_header_value, original_parsed_url):
94
93
 
95
94
 
96
95
  class YaraRuleSettings:
97
-
98
96
  def __init__(self, description, tags, emit_match):
99
97
  self.description = description
100
98
  self.tags = tags
@@ -263,7 +261,6 @@ class ExcavateRule:
263
261
 
264
262
 
265
263
  class CustomExtractor(ExcavateRule):
266
-
267
264
  def __init__(self, excavate):
268
265
  super().__init__(excavate)
269
266
 
@@ -358,7 +355,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
358
355
  )
359
356
 
360
357
  class ParameterExtractor(ExcavateRule):
361
-
362
358
  yara_rules = {}
363
359
 
364
360
  class ParameterExtractorRule:
@@ -372,7 +368,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
372
368
  self.result = result
373
369
 
374
370
  class GetJquery(ParameterExtractorRule):
375
-
376
371
  name = "GET jquery"
377
372
  discovery_regex = r"/\$.get\([^\)].+\)/ nocase"
378
373
  extraction_regex = re.compile(r"\$.get\([\'\"](.+)[\'\"].+(\{.+\})\)")
@@ -393,8 +388,12 @@ class excavate(BaseInternalModule, BaseInterceptModule):
393
388
  for action, extracted_parameters in extracted_results:
394
389
  extracted_parameters_dict = self.convert_to_dict(extracted_parameters)
395
390
  for parameter_name, original_value in extracted_parameters_dict.items():
396
- yield self.output_type, parameter_name, original_value, action, _exclude_key(
397
- extracted_parameters_dict, parameter_name
391
+ yield (
392
+ self.output_type,
393
+ parameter_name,
394
+ original_value,
395
+ action,
396
+ _exclude_key(extracted_parameters_dict, parameter_name),
398
397
  )
399
398
 
400
399
  class PostJquery(GetJquery):
@@ -418,8 +417,12 @@ class excavate(BaseInternalModule, BaseInterceptModule):
418
417
  k: v[0] if isinstance(v, list) and len(v) == 1 else v for k, v in query_strings.items()
419
418
  }
420
419
  for parameter_name, original_value in query_strings_dict.items():
421
- yield self.output_type, parameter_name, original_value, url, _exclude_key(
422
- query_strings_dict, parameter_name
420
+ yield (
421
+ self.output_type,
422
+ parameter_name,
423
+ original_value,
424
+ url,
425
+ _exclude_key(query_strings_dict, parameter_name),
423
426
  )
424
427
 
425
428
  class GetForm(ParameterExtractorRule):
@@ -444,8 +447,12 @@ class excavate(BaseInternalModule, BaseInterceptModule):
444
447
  form_parameters[parameter_name] = original_value
445
448
 
446
449
  for parameter_name, original_value in form_parameters.items():
447
- yield self.output_type, parameter_name, original_value, form_action, _exclude_key(
448
- form_parameters, parameter_name
450
+ yield (
451
+ self.output_type,
452
+ parameter_name,
453
+ original_value,
454
+ form_action,
455
+ _exclude_key(form_parameters, parameter_name),
449
456
  )
450
457
 
451
458
  class PostForm(GetForm):
@@ -485,7 +492,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
485
492
  endpoint,
486
493
  additional_params,
487
494
  ) in extracted_params:
488
-
489
495
  self.excavate.debug(
490
496
  f"Found Parameter [{parameter_name}] in [{parameterExtractorSubModule.name}] ParameterExtractor Submodule"
491
497
  )
@@ -497,7 +503,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
497
503
  )
498
504
 
499
505
  if self.excavate.helpers.validate_parameter(parameter_name, parameter_type):
500
-
501
506
  if self.excavate.in_bl(parameter_name) == False:
502
507
  parsed_url = urlparse(url)
503
508
  description = f"HTTP Extracted Parameter [{parameter_name}] ({parameterExtractorSubModule.name} Submodule)"
@@ -532,7 +537,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
532
537
  await self.report(domain, event, yara_rule_settings, discovery_context, event_type="DNS_NAME")
533
538
 
534
539
  class EmailExtractor(ExcavateRule):
535
-
536
540
  yara_rules = {
537
541
  "email": 'rule email { meta: description = "contains email address" strings: $email = /[^\\W_][\\w\\-\\.\\+\']{0,100}@[a-zA-Z0-9\\-]{1,100}(\\.[a-zA-Z0-9\\-]{1,100})*\\.[a-zA-Z]{2,63}/ nocase fullword condition: $email }',
538
542
  }
@@ -551,7 +555,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
551
555
  }
552
556
 
553
557
  class ErrorExtractor(ExcavateRule):
554
-
555
558
  signatures = {
556
559
  "PHP_1": r"/\.php on line [0-9]+/",
557
560
  "PHP_2": r"/\.php<\/b> on line <b>[0-9]+/",
@@ -589,7 +592,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
589
592
  await self.report(event_data, event, yara_rule_settings, discovery_context, event_type="FINDING")
590
593
 
591
594
  class SerializationExtractor(ExcavateRule):
592
-
593
595
  regexes = {
594
596
  "Java": re.compile(r"[^a-zA-Z0-9\/+]rO0[a-zA-Z0-9+\/]+={0,2}"),
595
597
  "DOTNET": re.compile(r"[^a-zA-Z0-9\/+]AAEAAAD\/\/[a-zA-Z0-9\/+]+={0,2}"),
@@ -619,7 +621,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
619
621
  await self.report(event_data, event, yara_rule_settings, discovery_context, event_type="FINDING")
620
622
 
621
623
  class FunctionalityExtractor(ExcavateRule):
622
-
623
624
  yara_rules = {
624
625
  "File_Upload_Functionality": r'rule File_Upload_Functionality { meta: description = "contains file upload functionality" strings: $fileuploadfunc = /<input[^>]+type=["\']?file["\']?[^>]+>/ nocase condition: $fileuploadfunc }',
625
626
  "Web_Service_WSDL": r'rule Web_Service_WSDL { meta: emit_match = "True" description = "contains a web service WSDL URL" strings: $wsdl = /https?:\/\/[^\s]*\.(wsdl)/ nocase condition: $wsdl }',
@@ -704,7 +705,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
704
705
  tag_attribute_regex = bbot_regexes.tag_attribute_regex
705
706
 
706
707
  async def process(self, yara_results, event, yara_rule_settings, discovery_context):
707
-
708
708
  for identifier, results in yara_results.items():
709
709
  urls_found = 0
710
710
  final_url = ""
@@ -897,7 +897,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
897
897
  decoded_data = await self.helpers.re.recursive_decode(data)
898
898
 
899
899
  if self.parameter_extraction:
900
-
901
900
  content_type_lower = content_type.lower() if content_type else ""
902
901
  extraction_map = {
903
902
  "json": self.helpers.extract_params_json,
@@ -934,7 +933,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
934
933
  self.hugewarning(f"YARA Rule {rule_name} not found in pre-compiled rules")
935
934
 
936
935
  async def handle_event(self, event):
937
-
938
936
  if event.type == "HTTP_RESPONSE":
939
937
  # Harvest GET parameters from URL, if it came directly from the target, and parameter extraction is enabled
940
938
  if (
@@ -1023,7 +1021,6 @@ class excavate(BaseInternalModule, BaseInterceptModule):
1023
1021
 
1024
1022
  # Try to extract parameters from the redirect URL
1025
1023
  if self.parameter_extraction:
1026
-
1027
1024
  for (
1028
1025
  method,
1029
1026
  parsed_url,
@@ -82,7 +82,6 @@ class paramminer_headers(BaseModule):
82
82
  header_regex = re.compile(r"^[!#$%&\'*+\-.^_`|~0-9a-zA-Z]+: [^\r\n]+$")
83
83
 
84
84
  async def setup(self):
85
-
86
85
  self.recycle_words = self.config.get("recycle_words", True)
87
86
  self.event_dict = {}
88
87
  self.already_checked = set()
@@ -157,7 +156,6 @@ class paramminer_headers(BaseModule):
157
156
  )
158
157
 
159
158
  async def handle_event(self, event):
160
-
161
159
  # If recycle words is enabled, we will collect WEB_PARAMETERS we find to build our list in finish()
162
160
  # We also collect any parameters of type "SPECULATIVE"
163
161
  if event.type == "WEB_PARAMETER":
@@ -201,7 +199,7 @@ class paramminer_headers(BaseModule):
201
199
  return
202
200
  for count, args, kwargs in self.gen_count_args(url):
203
201
  r = await self.helpers.request(*args, **kwargs)
204
- if r is not None and not ((str(r.status_code)[0] in ("4", "5"))):
202
+ if r is not None and not (str(r.status_code)[0] in ("4", "5")):
205
203
  return count
206
204
 
207
205
  def gen_count_args(self, url):
@@ -240,7 +238,6 @@ class paramminer_headers(BaseModule):
240
238
  return await compare_helper.compare(url, headers=test_headers, check_reflection=(len(header_list) == 1))
241
239
 
242
240
  async def finish(self):
243
-
244
241
  untested_matches = sorted(list(self.extracted_words_master.copy()))
245
242
  for url, (event, batch_size) in list(self.event_dict.items()):
246
243
  try:
@@ -13,7 +13,7 @@ class trufflehog(BaseModule):
13
13
  }
14
14
 
15
15
  options = {
16
- "version": "3.84.0",
16
+ "version": "3.84.1",
17
17
  "config": "",
18
18
  "only_verified": True,
19
19
  "concurrency": 8,
@@ -10,7 +10,6 @@ log = logging.getLogger("bbot.presets.args")
10
10
 
11
11
 
12
12
  class BBOTArgs:
13
-
14
13
  # module config options to exclude from validation
15
14
  exclude_from_validation = re.compile(r".*modules\.[a-z0-9_]+\.(?:batch_size|module_threads)$")
16
15
 
@@ -65,7 +65,6 @@ omegaconf.OmegaConf.register_new_resolver("env", env_resolver)
65
65
 
66
66
 
67
67
  class BBOTEnviron:
68
-
69
68
  def __init__(self, preset):
70
69
  self.preset = preset
71
70
 
@@ -10,7 +10,6 @@ class TestAsset_Inventory(ModuleTestBase):
10
10
  masscan_output = """{ "ip": "127.0.0.1", "timestamp": "1680197558", "ports": [ {"port": 9999, "proto": "tcp", "status": "open", "reason": "syn-ack", "ttl": 54} ] }"""
11
11
 
12
12
  async def setup_before_prep(self, module_test):
13
-
14
13
  async def run_masscan(command, *args, **kwargs):
15
14
  if "masscan" in command[:2]:
16
15
  targets = open(command[11]).read().splitlines()
@@ -7,7 +7,6 @@ class TestDnsbrute(ModuleTestBase):
7
7
  config_overrides = {"modules": {"dnsbrute": {"wordlist": str(subdomain_wordlist), "max_depth": 3}}}
8
8
 
9
9
  async def setup_after_prep(self, module_test):
10
-
11
10
  old_run_live = module_test.scan.helpers.run_live
12
11
 
13
12
  async def new_run_live(*command, check=False, text=True, **kwargs):
@@ -11,7 +11,6 @@ class TestDnsbrute_mutations(ModuleTestBase):
11
11
  ]
12
12
 
13
13
  async def setup_after_prep(self, module_test):
14
-
15
14
  old_run_live = module_test.scan.helpers.run_live
16
15
 
17
16
  async def new_run_live(*command, check=False, text=True, **kwargs):
@@ -8,7 +8,6 @@ class TestDNSCommonSRV(ModuleTestBase):
8
8
  config_overrides = {"dns": {"minimal": False}}
9
9
 
10
10
  async def setup_after_prep(self, module_test):
11
-
12
11
  old_run_live = module_test.scan.helpers.run_live
13
12
 
14
13
  async def new_run_live(*command, check=False, text=True, **kwargs):
@@ -146,14 +146,12 @@ class TestDotnetnuke_blindssrf(ModuleTestBase):
146
146
  return Response("alive", status=200)
147
147
 
148
148
  async def setup_before_prep(self, module_test):
149
-
150
149
  self.interactsh_mock_instance = module_test.mock_interactsh("dotnetnuke_blindssrf")
151
150
  module_test.monkeypatch.setattr(
152
151
  module_test.scan.helpers, "interactsh", lambda *args, **kwargs: self.interactsh_mock_instance
153
152
  )
154
153
 
155
154
  async def setup_after_prep(self, module_test):
156
-
157
155
  # Simulate DotNetNuke Instance
158
156
  expect_args = {"method": "GET", "uri": "/"}
159
157
  respond_args = {"response_data": dotnetnuke_http_response}
@@ -13,7 +13,6 @@ class TestExcavate(ModuleTestBase):
13
13
  config_overrides = {"web": {"spider_distance": 1, "spider_depth": 1}}
14
14
 
15
15
  async def setup_before_prep(self, module_test):
16
-
17
16
  response_data = """
18
17
  ftp://ftp.test.notreal
19
18
  \\nhttps://www1.test.notreal
@@ -181,7 +180,6 @@ class TestExcavateRedirect(TestExcavate):
181
180
  module_test.httpserver.no_handler_status_code = 404
182
181
 
183
182
  def check(self, module_test, events):
184
-
185
183
  assert 1 == len(
186
184
  [
187
185
  e
@@ -332,7 +330,6 @@ class TestExcavateMaxLinksPerPage(TestExcavate):
332
330
 
333
331
 
334
332
  class TestExcavateCSP(TestExcavate):
335
-
336
333
  csp_test_header = "default-src 'self'; script-src asdf.test.notreal; object-src 'none';"
337
334
 
338
335
  async def setup_before_prep(self, module_test):
@@ -356,7 +353,6 @@ class TestExcavateURL(TestExcavate):
356
353
 
357
354
 
358
355
  class TestExcavateURL_IP(TestExcavate):
359
-
360
356
  targets = ["http://127.0.0.1:8888/", "127.0.0.2"]
361
357
 
362
358
  async def setup_before_prep(self, module_test):
@@ -405,7 +401,6 @@ class TestExcavateSerializationPositive(TestExcavate):
405
401
 
406
402
 
407
403
  class TestExcavateNonHttpScheme(TestExcavate):
408
-
409
404
  targets = ["http://127.0.0.1:8888/", "test.notreal"]
410
405
 
411
406
  non_http_scheme_html = """
@@ -425,7 +420,6 @@ class TestExcavateNonHttpScheme(TestExcavate):
425
420
  module_test.httpserver.expect_request("/").respond_with_data(self.non_http_scheme_html)
426
421
 
427
422
  def check(self, module_test, events):
428
-
429
423
  found_hxxp_url = False
430
424
  found_ftp_url = False
431
425
  found_nonsense_url = False
@@ -540,7 +534,6 @@ class TestExcavateParameterExtraction(TestExcavate):
540
534
 
541
535
 
542
536
  class TestExcavateParameterExtraction_getparam(ModuleTestBase):
543
-
544
537
  targets = ["http://127.0.0.1:8888/"]
545
538
 
546
539
  # hunt is added as parameter extraction is only activated by one or more modules that consume WEB_PARAMETER
@@ -554,11 +547,9 @@ class TestExcavateParameterExtraction_getparam(ModuleTestBase):
554
547
  module_test.set_expect_requests(respond_args=respond_args)
555
548
 
556
549
  def check(self, module_test, events):
557
-
558
550
  excavate_getparam_extraction = False
559
551
  for e in events:
560
552
  if e.type == "WEB_PARAMETER":
561
-
562
553
  if "HTTP Extracted Parameter [hack] (HTML Tags Submodule)" in e.data["description"]:
563
554
  excavate_getparam_extraction = True
564
555
  assert excavate_getparam_extraction, "Excavate failed to extract web parameter"
@@ -626,7 +617,6 @@ class excavateTestRule(ExcavateRule):
626
617
 
627
618
 
628
619
  class TestExcavateYara(TestExcavate):
629
-
630
620
  targets = ["http://127.0.0.1:8888/"]
631
621
  yara_test_html = """
632
622
  <html>
@@ -641,12 +631,10 @@ class TestExcavateYara(TestExcavate):
641
631
  """
642
632
 
643
633
  async def setup_before_prep(self, module_test):
644
-
645
634
  self.modules_overrides = ["excavate", "httpx"]
646
635
  module_test.httpserver.expect_request("/").respond_with_data(self.yara_test_html)
647
636
 
648
637
  async def setup_after_prep(self, module_test):
649
-
650
638
  excavate_module = module_test.scan.modules["excavate"]
651
639
  excavateruleinstance = excavateTestRule(excavate_module)
652
640
  excavate_module.add_yara_rule(
@@ -665,7 +653,6 @@ class TestExcavateYara(TestExcavate):
665
653
  found_yara_string_1 = False
666
654
  found_yara_string_2 = False
667
655
  for e in events:
668
-
669
656
  if e.type == "FINDING":
670
657
  if e.data["description"] == "HTTP response (body) Contains the text AAAABBBBCCCC":
671
658
  found_yara_string_1 = True
@@ -677,7 +664,6 @@ class TestExcavateYara(TestExcavate):
677
664
 
678
665
 
679
666
  class TestExcavateYaraCustom(TestExcavateYara):
680
-
681
667
  rule_file = [
682
668
  'rule SearchForText { meta: description = "Contains the text AAAABBBBCCCC" strings: $text = "AAAABBBBCCCC" condition: $text }',
683
669
  'rule SearchForText2 { meta: description = "Contains the text DDDDEEEEFFFF" strings: $text2 = "DDDDEEEEFFFF" condition: $text2 }',
@@ -711,7 +697,6 @@ class TestExcavateSpiderDedupe(ModuleTestBase):
711
697
  module_test.httpserver.expect_request("/spider").respond_with_data("hi")
712
698
 
713
699
  def check(self, module_test, events):
714
-
715
700
  found_url_unverified_spider_max = False
716
701
  found_url_unverified_dummy = False
717
702
  found_url_event = False
@@ -803,7 +788,6 @@ class TestExcavate_retain_querystring(ModuleTestBase):
803
788
 
804
789
 
805
790
  class TestExcavate_retain_querystring_not(TestExcavate_retain_querystring):
806
-
807
791
  config_overrides = {
808
792
  "url_querystring_remove": False,
809
793
  "url_querystring_collapse": False,
@@ -827,7 +811,6 @@ class TestExcavate_retain_querystring_not(TestExcavate_retain_querystring):
827
811
 
828
812
 
829
813
  class TestExcavate_webparameter_outofscope(ModuleTestBase):
830
-
831
814
  html_body = "<html><a class=button href='https://socialmediasite.com/send?text=foo'><a class=button href='https://outofscope.com/send?text=foo'></html>"
832
815
 
833
816
  targets = ["http://127.0.0.1:8888", "socialmediasite.com"]
@@ -858,13 +841,11 @@ class TestExcavate_webparameter_outofscope(ModuleTestBase):
858
841
 
859
842
 
860
843
  class TestExcavateHeaders(ModuleTestBase):
861
-
862
844
  targets = ["http://127.0.0.1:8888/"]
863
845
  modules_overrides = ["excavate", "httpx", "hunt"]
864
846
  config_overrides = {"web": {"spider_distance": 1, "spider_depth": 1}}
865
847
 
866
848
  async def setup_before_prep(self, module_test):
867
-
868
849
  module_test.httpserver.expect_request("/").respond_with_data(
869
850
  "<html><p>test</p></html>",
870
851
  status=200,
@@ -877,7 +858,6 @@ class TestExcavateHeaders(ModuleTestBase):
877
858
  )
878
859
 
879
860
  def check(self, module_test, events):
880
-
881
861
  found_first_cookie = False
882
862
  found_second_cookie = False
883
863
 
@@ -36,7 +36,6 @@ class TestParamminer_Cookies(Paramminer_Headers):
36
36
  module_test.set_expect_requests(respond_args=respond_args)
37
37
 
38
38
  def check(self, module_test, events):
39
-
40
39
  found_reflected_cookie = False
41
40
  false_positive_match = False
42
41