souleyez 2.24.0__tar.gz → 2.25.0__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.
Files changed (396) hide show
  1. {souleyez-2.24.0 → souleyez-2.25.0}/BETA_README.md +12 -1
  2. {souleyez-2.24.0/souleyez.egg-info → souleyez-2.25.0}/PKG-INFO +13 -2
  3. {souleyez-2.24.0 → souleyez-2.25.0}/pyproject.toml +1 -1
  4. souleyez-2.25.0/souleyez/__init__.py +1 -0
  5. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/tool_chaining.py +2 -11
  6. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/README.md +1 -1
  7. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/installation.md +11 -0
  8. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/background.py +17 -1
  9. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/main.py +1 -1
  10. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/nuclei.py +41 -17
  11. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/interactive.py +96 -4
  12. {souleyez-2.24.0 → souleyez-2.25.0/souleyez.egg-info}/PKG-INFO +13 -2
  13. souleyez-2.24.0/souleyez/__init__.py +0 -1
  14. {souleyez-2.24.0 → souleyez-2.25.0}/LICENSE +0 -0
  15. {souleyez-2.24.0 → souleyez-2.25.0}/MANIFEST.in +0 -0
  16. {souleyez-2.24.0 → souleyez-2.25.0}/README.md +0 -0
  17. {souleyez-2.24.0 → souleyez-2.25.0}/setup.cfg +0 -0
  18. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/__init__.py +0 -0
  19. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/action_mapper.py +0 -0
  20. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/chain_advisor.py +0 -0
  21. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/claude_provider.py +0 -0
  22. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/context_builder.py +0 -0
  23. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/executor.py +0 -0
  24. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/feedback_handler.py +0 -0
  25. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/llm_factory.py +0 -0
  26. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/llm_provider.py +0 -0
  27. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/ollama_provider.py +0 -0
  28. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/ollama_service.py +0 -0
  29. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/path_scorer.py +0 -0
  30. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/recommender.py +0 -0
  31. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/report_context.py +0 -0
  32. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/report_prompts.py +0 -0
  33. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/report_service.py +0 -0
  34. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/result_parser.py +0 -0
  35. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ai/safety.py +0 -0
  36. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/__init__.py +0 -0
  37. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/audit.py +0 -0
  38. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/engagement_access.py +0 -0
  39. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/permissions.py +0 -0
  40. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/session_manager.py +0 -0
  41. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/auth/user_manager.py +0 -0
  42. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/__init__.py +0 -0
  43. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/audit.py +0 -0
  44. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/auth.py +0 -0
  45. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/deliverables.py +0 -0
  46. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/engagement.py +0 -0
  47. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/license.py +0 -0
  48. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/screenshots.py +0 -0
  49. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/commands/user.py +0 -0
  50. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/config.py +0 -0
  51. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/__init__.py +0 -0
  52. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/credential_tester.py +0 -0
  53. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/cve_mappings.py +0 -0
  54. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/cve_matcher.py +0 -0
  55. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_auto_mapper.py +0 -0
  56. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_chain_engine.py +0 -0
  57. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_database.py +0 -0
  58. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_integration.py +0 -0
  59. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_rpc_client.py +0 -0
  60. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_rpc_manager.py +0 -0
  61. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/msf_sync_manager.py +0 -0
  62. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/network_utils.py +0 -0
  63. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/parser_handler.py +0 -0
  64. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/pending_chains.py +0 -0
  65. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/templates.py +0 -0
  66. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/version_utils.py +0 -0
  67. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/vuln_correlation.py +0 -0
  68. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/core/web_utils.py +0 -0
  69. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/README.md +0 -0
  70. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/active_directory.json +0 -0
  71. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
  72. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/cloud_security.json +0 -0
  73. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
  74. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/external_network.json +0 -0
  75. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/ffiec_cat.json +0 -0
  76. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/gdpr_article32.json +0 -0
  77. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/glba_safeguards.json +0 -0
  78. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/hipaa_security.json +0 -0
  79. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/hitrust_csf.json +0 -0
  80. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/internal_network.json +0 -0
  81. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/iso27001.json +0 -0
  82. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/nerc_cip.json +0 -0
  83. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/nist_csf.json +0 -0
  84. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
  85. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
  86. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/ptes_standard.json +0 -0
  87. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/red_team.json +0 -0
  88. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/soc2_type2.json +0 -0
  89. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/templates/webapp_advanced.json +0 -0
  90. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/README.md +0 -0
  91. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/all_users.txt +0 -0
  92. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
  93. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
  94. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/macos_users.txt +0 -0
  95. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
  96. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/router_users.txt +0 -0
  97. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
  98. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/soul_users.txt +0 -0
  99. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
  100. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/top100.txt +0 -0
  101. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
  102. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
  103. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
  104. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
  105. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
  106. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/detection/__init__.py +0 -0
  107. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/detection/attack_signatures.py +0 -0
  108. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/detection/mitre_mappings.py +0 -0
  109. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/detection/validator.py +0 -0
  110. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/devtools.py +0 -0
  111. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
  112. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
  113. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
  114. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
  115. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
  116. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
  117. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
  118. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
  119. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/architecture/overview.md +0 -0
  120. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
  121. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/database/SCHEMA.md +0 -0
  122. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
  123. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
  124. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
  125. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/images/README.md +0 -0
  126. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/security/best-practices.md +0 -0
  127. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/security/credential-encryption.md +0 -0
  128. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/security/password-protected-commands.md +0 -0
  129. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/security/secure-defaults.md +0 -0
  130. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/security/threat-model.md +0 -0
  131. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
  132. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
  133. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
  134. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/configuration.md +0 -0
  135. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
  136. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/dependencies.md +0 -0
  137. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
  138. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
  139. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/getting-started.md +0 -0
  140. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
  141. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/rbac.md +0 -0
  142. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/report-generation.md +0 -0
  143. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
  144. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
  145. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
  146. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/uninstall.md +0 -0
  147. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/worker-management.md +0 -0
  148. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/docs/user-guide/workflows.md +0 -0
  149. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/__init__.py +0 -0
  150. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/base.py +0 -0
  151. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/job_status.py +0 -0
  152. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/loader.py +0 -0
  153. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/log_sanitizer.py +0 -0
  154. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/manager.py +0 -0
  155. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/result_handler.py +0 -0
  156. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/engine/worker_manager.py +0 -0
  157. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/export/__init__.py +0 -0
  158. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/export/evidence_bundle.py +0 -0
  159. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/feature_flags/__init__.py +0 -0
  160. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/feature_flags/features.py +0 -0
  161. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/feature_flags.py +0 -0
  162. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/history.py +0 -0
  163. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/importers/__init__.py +0 -0
  164. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/importers/msf_importer.py +0 -0
  165. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/importers/smart_importer.py +0 -0
  166. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/__init__.py +0 -0
  167. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/__init__.py +0 -0
  168. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/base.py +0 -0
  169. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/elastic.py +0 -0
  170. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/factory.py +0 -0
  171. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
  172. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
  173. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/sentinel.py +0 -0
  174. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/splunk.py +0 -0
  175. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/siem/wazuh.py +0 -0
  176. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/wazuh/__init__.py +0 -0
  177. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/wazuh/client.py +0 -0
  178. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/wazuh/config.py +0 -0
  179. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
  180. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/integrations/wazuh/sync.py +0 -0
  181. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/__init__.py +0 -0
  182. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
  183. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
  184. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
  185. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/gap_analyzer.py +0 -0
  186. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/gap_detector.py +0 -0
  187. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/sensitive_tables.py +0 -0
  188. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/service_parser.py +0 -0
  189. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/surface_analyzer.py +0 -0
  190. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/intelligence/target_parser.py +0 -0
  191. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/licensing/__init__.py +0 -0
  192. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/licensing/validator.py +0 -0
  193. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/log_config.py +0 -0
  194. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/migrations/__init__.py +0 -0
  195. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/migrations/fix_job_counter.py +0 -0
  196. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/__init__.py +0 -0
  197. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/bloodhound_parser.py +0 -0
  198. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/crackmapexec_parser.py +0 -0
  199. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/dalfox_parser.py +0 -0
  200. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/dnsrecon_parser.py +0 -0
  201. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/enum4linux_parser.py +0 -0
  202. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/ffuf_parser.py +0 -0
  203. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/gobuster_parser.py +0 -0
  204. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/hashcat_parser.py +0 -0
  205. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/hydra_parser.py +0 -0
  206. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/impacket_parser.py +0 -0
  207. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/john_parser.py +0 -0
  208. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/msf_parser.py +0 -0
  209. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/nikto_parser.py +0 -0
  210. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/nmap_parser.py +0 -0
  211. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/nuclei_parser.py +0 -0
  212. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/responder_parser.py +0 -0
  213. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/searchsploit_parser.py +0 -0
  214. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/smbmap_parser.py +0 -0
  215. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/sqlmap_parser.py +0 -0
  216. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/theharvester_parser.py +0 -0
  217. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/whois_parser.py +0 -0
  218. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/parsers/wpscan_parser.py +0 -0
  219. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/__init__.py +0 -0
  220. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/afp.py +0 -0
  221. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/afp_brute.py +0 -0
  222. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/ard.py +0 -0
  223. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/bloodhound.py +0 -0
  224. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/crackmapexec.py +0 -0
  225. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/dalfox.py +0 -0
  226. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/dns_hijack.py +0 -0
  227. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/dnsrecon.py +0 -0
  228. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/enum4linux.py +0 -0
  229. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/ffuf.py +0 -0
  230. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/firmware_extract.py +0 -0
  231. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/gobuster.py +0 -0
  232. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/hashcat.py +0 -0
  233. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/hydra.py +0 -0
  234. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
  235. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/impacket_psexec.py +0 -0
  236. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
  237. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/impacket_smbclient.py +0 -0
  238. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/john.py +0 -0
  239. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/macos_ssh.py +0 -0
  240. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/mdns.py +0 -0
  241. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/msf_auxiliary.py +0 -0
  242. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/msf_exploit.py +0 -0
  243. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/nikto.py +0 -0
  244. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/nmap.py +0 -0
  245. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/plugin_base.py +0 -0
  246. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/plugin_template.py +0 -0
  247. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/responder.py +0 -0
  248. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/router_http_brute.py +0 -0
  249. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/router_ssh_brute.py +0 -0
  250. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/router_telnet_brute.py +0 -0
  251. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/routersploit.py +0 -0
  252. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/routersploit_exploit.py +0 -0
  253. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/searchsploit.py +0 -0
  254. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/smbmap.py +0 -0
  255. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/sqlmap.py +0 -0
  256. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/theharvester.py +0 -0
  257. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/tr069.py +0 -0
  258. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/upnp.py +0 -0
  259. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/upnp_abuse.py +0 -0
  260. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/vnc_access.py +0 -0
  261. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/vnc_brute.py +0 -0
  262. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/whois.py +0 -0
  263. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/plugins/wpscan.py +0 -0
  264. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/__init__.py +0 -0
  265. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/attack_chain.py +0 -0
  266. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/charts.py +0 -0
  267. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/compliance_mappings.py +0 -0
  268. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/detection_report.py +0 -0
  269. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/formatters.py +0 -0
  270. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/generator.py +0 -0
  271. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/reporting/metrics.py +0 -0
  272. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/scanner.py +0 -0
  273. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/security/__init__.py +0 -0
  274. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/security/validation.py +0 -0
  275. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/security.py +0 -0
  276. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/__init__.py +0 -0
  277. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/credentials.py +0 -0
  278. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/crypto.py +0 -0
  279. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/database.py +0 -0
  280. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/db.py +0 -0
  281. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/deliverable_evidence.py +0 -0
  282. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/deliverable_exporter.py +0 -0
  283. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/deliverable_templates.py +0 -0
  284. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/deliverables.py +0 -0
  285. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/engagements.py +0 -0
  286. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/evidence.py +0 -0
  287. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/execution_log.py +0 -0
  288. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/exploit_attempts.py +0 -0
  289. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/exploits.py +0 -0
  290. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/findings.py +0 -0
  291. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/hosts.py +0 -0
  292. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrate_to_engagements.py +0 -0
  293. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
  294. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
  295. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
  296. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
  297. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
  298. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
  299. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
  300. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
  301. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
  302. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
  303. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
  304. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
  305. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
  306. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
  307. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
  308. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
  309. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
  310. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
  311. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
  312. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
  313. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
  314. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
  315. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
  316. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
  317. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/__init__.py +0 -0
  318. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/migrations/migration_manager.py +0 -0
  319. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/msf_sessions.py +0 -0
  320. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/osint.py +0 -0
  321. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/recommendation_engine.py +0 -0
  322. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/schema.sql +0 -0
  323. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/screenshots.py +0 -0
  324. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/smb_shares.py +0 -0
  325. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/sqlmap_data.py +0 -0
  326. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/team_collaboration.py +0 -0
  327. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/timeline_tracker.py +0 -0
  328. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/wazuh_vulns.py +0 -0
  329. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/storage/web_paths.py +0 -0
  330. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/testing/__init__.py +0 -0
  331. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/testing/credential_tester.py +0 -0
  332. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/__init__.py +0 -0
  333. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/ai_quotes.py +0 -0
  334. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/attack_surface.py +0 -0
  335. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/chain_rules_view.py +0 -0
  336. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/correlation_view.py +0 -0
  337. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/dashboard.py +0 -0
  338. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/deliverables_view.py +0 -0
  339. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/design_system.py +0 -0
  340. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/errors.py +0 -0
  341. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/evidence_linking_view.py +0 -0
  342. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/evidence_vault.py +0 -0
  343. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
  344. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/export_view.py +0 -0
  345. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/gap_analysis_view.py +0 -0
  346. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/help_system.py +0 -0
  347. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/intelligence_view.py +0 -0
  348. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/interactive_selector.py +0 -0
  349. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/log_formatter.py +0 -0
  350. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/menu_components.py +0 -0
  351. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
  352. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/pending_chains_view.py +0 -0
  353. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/progress_indicators.py +0 -0
  354. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/recommendations_view.py +0 -0
  355. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/rule_builder.py +0 -0
  356. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/setup_wizard.py +0 -0
  357. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/shortcuts.py +0 -0
  358. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
  359. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/splunk_vulns_view.py +0 -0
  360. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/team_dashboard.py +0 -0
  361. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/template_selector.py +0 -0
  362. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/terminal.py +0 -0
  363. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/timeline_view.py +0 -0
  364. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/tool_setup.py +0 -0
  365. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/tutorial.py +0 -0
  366. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/tutorial_state.py +0 -0
  367. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
  368. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/ui.py +0 -0
  369. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/utils/__init__.py +0 -0
  370. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/utils/tool_checker.py +0 -0
  371. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/utils.py +0 -0
  372. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez/wordlists.py +0 -0
  373. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez.egg-info/SOURCES.txt +0 -0
  374. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez.egg-info/dependency_links.txt +0 -0
  375. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez.egg-info/entry_points.txt +0 -0
  376. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez.egg-info/requires.txt +0 -0
  377. {souleyez-2.24.0 → souleyez-2.25.0}/souleyez.egg-info/top_level.txt +0 -0
  378. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_config.py +0 -0
  379. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_config_enhanced.py +0 -0
  380. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_crypto.py +0 -0
  381. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_database_100_final.py +0 -0
  382. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_engagements.py +0 -0
  383. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_engagements_simple.py +0 -0
  384. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_job_status_tracking.py +0 -0
  385. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_logging.py +0 -0
  386. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_network_utils.py +0 -0
  387. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_ollama_service.py +0 -0
  388. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_plugin_base.py +0 -0
  389. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_recommender.py +0 -0
  390. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_result_handler_sqlmap.py +0 -0
  391. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_schema.py +0 -0
  392. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_security_hardening.py +0 -0
  393. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_security_validation.py +0 -0
  394. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_sqlmap_parser.py +0 -0
  395. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_storage.py +0 -0
  396. {souleyez-2.24.0 → souleyez-2.25.0}/tests/test_version_utils.py +0 -0
@@ -21,7 +21,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
21
21
 
22
22
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
23
23
 
24
- ## Version: 2.24.0
24
+ ## Version: 2.25.0
25
25
 
26
26
  ### What's Included
27
27
 
@@ -59,6 +59,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
59
59
  - **Python**: 3.8 or newer
60
60
  - **Storage**: ~500MB for SoulEyez + tools
61
61
 
62
+ > **🐉 Kali Linux Recommended**
63
+ >
64
+ > SoulEyez performs significantly better on **Kali Linux** than other distributions:
65
+ > - All pentesting tools pre-installed and optimized
66
+ > - Metasploit database and RPC already configured
67
+ > - Security-focused kernel and networking stack
68
+ > - No dependency hunting or version conflicts
69
+ > - Wordlists, databases, and tool configs ready to go
70
+ >
71
+ > While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
72
+
62
73
  ### Known Issues
63
74
 
64
75
  - Very large scan outputs (>10MB) may slow the interface
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.24.0
3
+ Version: 2.25.0
4
4
  Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
5
  Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
6
  Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
@@ -72,7 +72,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
72
72
 
73
73
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
74
74
 
75
- ## Version: 2.24.0
75
+ ## Version: 2.25.0
76
76
 
77
77
  ### What's Included
78
78
 
@@ -110,6 +110,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
110
110
  - **Python**: 3.8 or newer
111
111
  - **Storage**: ~500MB for SoulEyez + tools
112
112
 
113
+ > **🐉 Kali Linux Recommended**
114
+ >
115
+ > SoulEyez performs significantly better on **Kali Linux** than other distributions:
116
+ > - All pentesting tools pre-installed and optimized
117
+ > - Metasploit database and RPC already configured
118
+ > - Security-focused kernel and networking stack
119
+ > - No dependency hunting or version conflicts
120
+ > - Wordlists, databases, and tool configs ready to go
121
+ >
122
+ > While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
123
+
113
124
  ### Known Issues
114
125
 
115
126
  - Very large scan outputs (>10MB) may slow the interface
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "souleyez"
7
- version = "2.24.0"
7
+ version = "2.25.0"
8
8
  description = "AI-Powered Penetration Testing Platform with 40+ integrated tools"
9
9
  readme = "BETA_README.md"
10
10
  license = {text = "MIT"}
@@ -0,0 +1 @@
1
+ __version__ = '2.25.0'
@@ -746,17 +746,8 @@ class ToolChaining:
746
746
  args_template=['-a', '{target}'],
747
747
  description='SMB service detected, enumerating shares and users (runs after CrackMapExec)'
748
748
  ),
749
- # DISABLED: smbmap has upstream pickling bug with impacket (affects all versions)
750
- # Use crackmapexec/netexec --shares instead (rule #10 above)
751
- ChainRule(
752
- trigger_tool='nmap',
753
- trigger_condition='service:smb',
754
- target_tool='smbmap',
755
- priority=7,
756
- enabled=False, # Disabled due to impacket pickling bug
757
- args_template=['-H', '{target}'],
758
- description='SMB service detected, mapping shares (DISABLED - use netexec)'
759
- ),
749
+ # NOTE: smbmap removed - has upstream impacket pickling bug on Python 3.13+
750
+ # Use crackmapexec/netexec --shares instead (enum4linux rule above)
760
751
  ])
761
752
 
762
753
  # Active Directory attacks - smart chaining workflow
@@ -1,6 +1,6 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.24.0
3
+ **Version:** 2.25.0
4
4
  **Last Updated:** January 8, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
@@ -22,6 +22,17 @@ This guide walks you through installing souleyez on your system. The process tak
22
22
  - **RAM Usage**: Running multiple heavy tools (Metasploit, SQLMap, Hashcat) simultaneously requires additional RAM
23
23
  - **Disk I/O**: SSD recommended for database operations and log processing
24
24
 
25
+ > **🐉 Kali Linux Recommended**
26
+ >
27
+ > SoulEyez performs significantly better on **Kali Linux** than other distributions:
28
+ > - All pentesting tools pre-installed and optimized
29
+ > - Metasploit database and RPC already configured
30
+ > - Security-focused kernel and networking stack
31
+ > - No dependency hunting or version conflicts
32
+ > - Wordlists, databases, and tool configs ready to go
33
+ >
34
+ > While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
35
+
25
36
  ### Software Requirements
26
37
 
27
38
  - **Operating System**: Linux (Kali Linux recommended, any Debian-based distro supported)
@@ -1039,7 +1039,8 @@ def _is_true_error_exit_code(rc: int, tool: str) -> bool:
1039
1039
  # Tools that use non-zero exit codes for non-error conditions
1040
1040
  # Parser will determine the actual status based on output
1041
1041
  # msf_exploit returns 1 when no session opened (exploit ran but target not vulnerable)
1042
- tools_with_nonzero_success = ['gobuster', 'hydra', 'medusa', 'msf_exploit']
1042
+ # nikto returns non-zero when it finds vulnerabilities (not an error!)
1043
+ tools_with_nonzero_success = ['gobuster', 'hydra', 'medusa', 'msf_exploit', 'nikto']
1043
1044
 
1044
1045
  if tool.lower() in tools_with_nonzero_success:
1045
1046
  # Let parser determine status
@@ -1433,6 +1434,21 @@ def _detect_and_recover_stale_jobs() -> int:
1433
1434
  "status": status,
1434
1435
  "parse_result": parse_result
1435
1436
  })
1437
+
1438
+ # Mark for auto-chaining if conditions are met
1439
+ try:
1440
+ from souleyez.core.tool_chaining import ToolChaining
1441
+ chaining = ToolChaining()
1442
+ if chaining.is_enabled() and is_chainable(status):
1443
+ _update_job(jid, chainable=True)
1444
+ _append_worker_log(f"job {jid} stale recovery marked as chainable")
1445
+ logger.info("Stale job marked as chainable", extra={
1446
+ "job_id": jid,
1447
+ "tool": tool,
1448
+ "status": status
1449
+ })
1450
+ except Exception as chain_err:
1451
+ _append_worker_log(f"job {jid} stale recovery chainable error: {chain_err}")
1436
1452
  except Exception as parse_err:
1437
1453
  _append_worker_log(f"job {jid} stale recovery parse exception: {parse_err}")
1438
1454
 
@@ -173,7 +173,7 @@ def _check_privileged_tools():
173
173
 
174
174
 
175
175
  @click.group()
176
- @click.version_option(version='2.24.0')
176
+ @click.version_option(version='2.25.0')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -207,19 +207,51 @@ class NucleiPlugin(PluginBase):
207
207
  return True
208
208
  return False
209
209
 
210
- def build_command(self, target: str, args: List[str] = None, label: str = "", log_path: str = None):
211
- """Build nuclei command for background execution with PID tracking."""
212
- # For URLs, validate them. For bare IPs/domains, let Nuclei auto-detect protocols
210
+ def _normalize_target(self, target: str, args: List[str] = None, log_path: str = None) -> str:
211
+ """
212
+ Normalize target for Nuclei scanning.
213
+
214
+ - URLs are validated and passed through
215
+ - Bare IPs/domains get http:// prepended for web scanning
216
+
217
+ This fixes the issue where nmap chains pass bare IPs but Nuclei
218
+ needs URLs to properly scan web services.
219
+ """
220
+ import re
221
+
222
+ # Already a URL - validate and return
213
223
  if target.startswith(('http://', 'https://')):
214
224
  try:
215
- target = validate_url(target)
225
+ return validate_url(target)
216
226
  except ValidationError as e:
217
227
  if log_path:
218
228
  with open(log_path, 'w') as f:
219
229
  f.write(f"ERROR: Invalid URL: {e}\n")
220
230
  return None
221
231
 
232
+ # Bare IP or domain - prepend http:// for web scanning
233
+ # This is needed because Nuclei web templates require a URL
234
+ ip_pattern = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d+)?$'
235
+ domain_pattern = r'^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?)*$'
236
+
237
+ if re.match(ip_pattern, target) or re.match(domain_pattern, target):
238
+ # Log the conversion
239
+ if log_path:
240
+ with open(log_path, 'a') as f:
241
+ f.write(f"NOTE: Converting bare target '{target}' to 'http://{target}' for web scanning\n")
242
+ return f"http://{target}"
243
+
244
+ # Unknown format - return as-is
245
+ return target
246
+
247
+ def build_command(self, target: str, args: List[str] = None, label: str = "", log_path: str = None):
248
+ """Build nuclei command for background execution with PID tracking."""
222
249
  args = args or []
250
+
251
+ # Normalize target (convert bare IPs to URLs)
252
+ target = self._normalize_target(target, args, log_path)
253
+ if target is None:
254
+ return None
223
255
  args = [arg.replace("<target>", target) for arg in args]
224
256
 
225
257
  cmd = ["nuclei", "-target", target]
@@ -252,21 +284,13 @@ class NucleiPlugin(PluginBase):
252
284
 
253
285
  def run(self, target: str, args: List[str] = None, label: str = "", log_path: str = None) -> int:
254
286
  """Execute nuclei scan and write JSON output to log_path."""
255
-
256
- # For URLs, validate them. For bare IPs/domains, let Nuclei auto-detect protocols
257
- if target.startswith(('http://', 'https://')):
258
- try:
259
- target = validate_url(target)
260
- except ValidationError as e:
261
- if log_path:
262
- with open(log_path, 'w') as f:
263
- f.write(f"ERROR: Invalid URL: {e}\n")
264
- return 1
265
- raise ValueError(f"Invalid URL: {e}")
266
- # Otherwise keep target as-is (IP or domain) for Nuclei auto-detect protocols
267
-
268
287
  args = args or []
269
288
 
289
+ # Normalize target (convert bare IPs to URLs)
290
+ target = self._normalize_target(target, args, log_path)
291
+ if target is None:
292
+ return 1
293
+
270
294
  # Replace <target> placeholder
271
295
  args = [arg.replace("<target>", target) for arg in args]
272
296
 
@@ -130,6 +130,63 @@ def render_standard_header(title: str, width: int = None) -> None:
130
130
  click.echo()
131
131
 
132
132
 
133
+ def parse_syslog_description(desc: str) -> str:
134
+ """
135
+ Extract meaningful message from syslog-formatted descriptions.
136
+
137
+ Syslog format: <timestamp> <host> [timestamp] <program>[pid]: <message>
138
+ Example input: "Jan 8 07:00:05 192.168.1.111 Jan 8 07:00:05 eyez CRON[537281]: pam_unix(cron:session): session closed for user yoda"
139
+ Example output: "CRON: pam_unix(cron:session): session closed for user yoda"
140
+ """
141
+ import re
142
+
143
+ if not desc:
144
+ return 'No description'
145
+
146
+ # Try to find the actual message after common syslog patterns
147
+ # Pattern 1: Look for process name with PID followed by colon (e.g., "CRON[537281]:")
148
+ pid_match = re.search(r'([A-Za-z_][A-Za-z0-9_-]*)\[(\d+)\]:\s*(.+)$', desc)
149
+ if pid_match:
150
+ process_name = pid_match.group(1)
151
+ message = pid_match.group(3)
152
+ return f"{process_name}: {message}"
153
+
154
+ # Pattern 2: Look for systemd-style messages (e.g., "systemd[1]: Started...")
155
+ systemd_match = re.search(r'(systemd(?:-[a-z]+)?)\[?\d*\]?:\s*(.+)$', desc, re.IGNORECASE)
156
+ if systemd_match:
157
+ return f"{systemd_match.group(1)}: {systemd_match.group(2)}"
158
+
159
+ # Pattern 3: Look for kernel messages
160
+ kernel_match = re.search(r'kernel:\s*(.+)$', desc)
161
+ if kernel_match:
162
+ return f"kernel: {kernel_match.group(1)}"
163
+
164
+ # Pattern 4: Generic - find content after last colon that has substance
165
+ colon_parts = desc.split(': ')
166
+ if len(colon_parts) > 1:
167
+ # Get the meaningful part (usually after the first "process:" pattern)
168
+ for i, part in enumerate(colon_parts):
169
+ # Skip parts that look like timestamps or IPs
170
+ if not re.match(r'^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec|\d{1,3}\.\d{1,3}|\d{4}-\d{2})', part):
171
+ # Found something meaningful - join from here
172
+ meaningful = ': '.join(colon_parts[i:])
173
+ if len(meaningful) > 10: # Ensure it's substantial
174
+ return meaningful
175
+
176
+ # Pattern 5: Strip leading timestamp patterns
177
+ # Remove patterns like "Jan 8 07:00:05 192.168.1.111 Jan 8 07:00:05 hostname"
178
+ stripped = re.sub(
179
+ r'^(?:[A-Z][a-z]{2}\s+\d+\s+\d{2}:\d{2}:\d{2}\s+\S+\s*)+',
180
+ '', desc
181
+ ).strip()
182
+
183
+ if stripped and len(stripped) > 5:
184
+ return stripped
185
+
186
+ # Fallback: return original if no patterns matched
187
+ return desc
188
+
189
+
133
190
  def _show_upgrade_prompt(feature_name: str):
134
191
  """Show upgrade prompt when FREE user tries to access Pro feature."""
135
192
  from rich.panel import Panel
@@ -5345,7 +5402,7 @@ def view_job_detail(job_id: int):
5345
5402
 
5346
5403
  # Check if tool has a parser - if yes, hide raw logs by default
5347
5404
  tool = job.get('tool', '')
5348
- has_parser = tool in ['dnsrecon', 'nmap', 'nuclei', 'nikto', 'dalfox', 'theharvester', 'sqlmap', 'ffuf', 'gobuster', 'wpscan', 'crackmapexec', 'hydra', 'whois', 'smbmap', 'enum4linux', 'msf_auxiliary', 'searchsploit']
5405
+ has_parser = tool in ['dnsrecon', 'nmap', 'ard', 'nuclei', 'nikto', 'dalfox', 'theharvester', 'sqlmap', 'ffuf', 'gobuster', 'wpscan', 'crackmapexec', 'hydra', 'whois', 'smbmap', 'enum4linux', 'msf_auxiliary', 'searchsploit']
5349
5406
 
5350
5407
  # Show log file if exists
5351
5408
  log_path = job.get('log')
@@ -5941,7 +5998,9 @@ def view_job_detail(job_id: int):
5941
5998
  pass
5942
5999
 
5943
6000
  # Parse and display Nmap results if available (only when not showing raw logs)
5944
- if not show_raw_logs and job.get('tool') == 'nmap' and job.get('status') in ['done', 'completed'] and log_path and os.path.exists(log_path):
6001
+ # ARD plugin uses nmap under the hood, so include it here
6002
+ nmap_based_tools = ['nmap', 'ard']
6003
+ if not show_raw_logs and job.get('tool') in nmap_based_tools and job.get('status') in ['done', 'completed'] and log_path and os.path.exists(log_path):
5945
6004
  try:
5946
6005
  from souleyez.parsers.nmap_parser import parse_nmap_output
5947
6006
  with open(log_path, 'r', encoding='utf-8', errors='replace') as f:
@@ -8898,7 +8957,8 @@ def _view_wazuh_alerts(engagement_id: int):
8898
8957
  icon = get_level_icon(level)
8899
8958
  rule_id = str(alert.get('rule_id', 'N/A'))[:10]
8900
8959
  agent_name = alert.get('agent_name', 'N/A')[:15]
8901
- desc = (alert.get('description') or 'No description')[:45]
8960
+ raw_desc = alert.get('description') or 'No description'
8961
+ desc = parse_syslog_description(raw_desc)[:45]
8902
8962
  ts = alert.get('timestamp', 'N/A')
8903
8963
  if hasattr(ts, 'strftime'):
8904
8964
  ts = ts.strftime('%Y-%m-%d %H:%M:%S')
@@ -9075,7 +9135,8 @@ def _view_alert_detail(alert: dict):
9075
9135
 
9076
9136
  # Get values from normalized format first, then fall back to raw_data
9077
9137
  rule_id = alert.get('rule_id') or rule.get('id', 'N/A')
9078
- description = alert.get('description') or rule.get('description', 'N/A')
9138
+ raw_description = alert.get('description') or rule.get('description', 'N/A')
9139
+ description = parse_syslog_description(raw_description)
9079
9140
  level = alert.get('level', 0) or rule.get('level', 0)
9080
9141
  severity = alert.get('severity', 'info')
9081
9142
 
@@ -15790,6 +15851,37 @@ def view_findings(engagement_id: int):
15790
15851
  summary_parts.append(f"Filters: {', '.join(active_filters)}")
15791
15852
 
15792
15853
  click.echo(" " + " | ".join(summary_parts))
15854
+
15855
+ # Show tool distribution legend
15856
+ if findings:
15857
+ tool_counts = {}
15858
+ for f in findings:
15859
+ tool = f.get('tool') or 'unknown'
15860
+ tool_counts[tool] = tool_counts.get(tool, 0) + 1
15861
+
15862
+ # Sort by count (descending) and format
15863
+ sorted_tools = sorted(tool_counts.items(), key=lambda x: x[1], reverse=True)
15864
+ tool_parts = [f"{tool}({count})" for tool, count in sorted_tools]
15865
+
15866
+ # Display on one or more lines if needed
15867
+ tool_legend = " Tools: " + " | ".join(tool_parts)
15868
+ if len(tool_legend) > width - 4:
15869
+ # Wrap to multiple lines if too long
15870
+ lines = []
15871
+ current_line = " Tools: "
15872
+ for i, part in enumerate(tool_parts):
15873
+ test_line = current_line + part + (" | " if i < len(tool_parts) - 1 else "")
15874
+ if len(test_line) > width - 4 and current_line != " Tools: ":
15875
+ lines.append(current_line.rstrip(" | "))
15876
+ current_line = " " + part + (" | " if i < len(tool_parts) - 1 else "")
15877
+ else:
15878
+ current_line = test_line
15879
+ lines.append(current_line.rstrip(" | "))
15880
+ for line in lines:
15881
+ click.echo(click.style(line, fg='cyan'))
15882
+ else:
15883
+ click.echo(click.style(tool_legend, fg='cyan'))
15884
+
15793
15885
  click.echo()
15794
15886
 
15795
15887
  if not findings:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.24.0
3
+ Version: 2.25.0
4
4
  Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
5
  Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
6
  Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
@@ -72,7 +72,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
72
72
 
73
73
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
74
74
 
75
- ## Version: 2.24.0
75
+ ## Version: 2.25.0
76
76
 
77
77
  ### What's Included
78
78
 
@@ -110,6 +110,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
110
110
  - **Python**: 3.8 or newer
111
111
  - **Storage**: ~500MB for SoulEyez + tools
112
112
 
113
+ > **🐉 Kali Linux Recommended**
114
+ >
115
+ > SoulEyez performs significantly better on **Kali Linux** than other distributions:
116
+ > - All pentesting tools pre-installed and optimized
117
+ > - Metasploit database and RPC already configured
118
+ > - Security-focused kernel and networking stack
119
+ > - No dependency hunting or version conflicts
120
+ > - Wordlists, databases, and tool configs ready to go
121
+ >
122
+ > While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
123
+
113
124
  ### Known Issues
114
125
 
115
126
  - Very large scan outputs (>10MB) may slow the interface
@@ -1 +0,0 @@
1
- __version__ = '2.24.0'
File without changes
File without changes
File without changes
File without changes
File without changes