souleyez 2.28.0__tar.gz → 2.29.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.
- {souleyez-2.28.0 → souleyez-2.29.0}/BETA_README.md +2 -2
- {souleyez-2.28.0/souleyez.egg-info → souleyez-2.29.0}/PKG-INFO +3 -3
- {souleyez-2.28.0 → souleyez-2.29.0}/pyproject.toml +1 -1
- souleyez-2.29.0/souleyez/__init__.py +1 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/README.md +1 -1
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/main.py +1 -1
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/schema.sql +36 -0
- {souleyez-2.28.0 → souleyez-2.29.0/souleyez.egg-info}/PKG-INFO +3 -3
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_config.py +10 -1
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_result_handler_sqlmap.py +11 -4
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_storage.py +5 -4
- souleyez-2.28.0/souleyez/__init__.py +0 -1
- {souleyez-2.28.0 → souleyez-2.29.0}/LICENSE +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/MANIFEST.in +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/README.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/setup.cfg +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/action_mapper.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/chain_advisor.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/claude_provider.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/context_builder.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/executor.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/feedback_handler.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/llm_factory.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/llm_provider.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/ollama_provider.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/ollama_service.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/path_scorer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/recommender.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_context.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_prompts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/report_service.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/result_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ai/safety.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/assets/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/assets/souleyez-icon.png +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/audit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/engagement_access.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/permissions.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/session_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/auth/user_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/audit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/auth.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/deliverables.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/engagement.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/license.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/screenshots.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/commands/user.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/config.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/credential_tester.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/cve_mappings.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/cve_matcher.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_auto_mapper.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_chain_engine.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_database.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_integration.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_rpc_client.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_rpc_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/msf_sync_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/network_utils.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/parser_handler.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/pending_chains.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/templates.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/tool_chaining.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/version_utils.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/vuln_correlation.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/core/web_utils.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/README.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/active_directory.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cloud_security.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/external_network.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/ffiec_cat.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/gdpr_article32.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/glba_safeguards.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/hipaa_security.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/hitrust_csf.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/internal_network.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/iso27001.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/nerc_cip.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/nist_csf.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/ptes_standard.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/red_team.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/soc2_type2.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/templates/webapp_advanced.json +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/README.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/all_users.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/macos_users.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/router_users.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/soul_users.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/top100.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/attack_signatures.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/mitre_mappings.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/detection/validator.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/devtools.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/overview.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/SCHEMA.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/images/README.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/best-practices.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/credential-encryption.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/password-protected-commands.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/secure-defaults.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/security/threat-model.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/configuration.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/dependencies.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/getting-started.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/installation.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/rbac.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/report-generation.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/scope-management.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/uninstall.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/worker-management.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/user-guide/workflows.md +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/background.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/base.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/job_status.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/loader.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/log_sanitizer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/result_handler.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/engine/worker_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/export/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/export/evidence_bundle.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags/features.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/feature_flags.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/history.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/msf_importer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/importers/smart_importer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/base.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/elastic.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/factory.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/sentinel.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/splunk.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/siem/wazuh.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/client.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/config.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/integrations/wazuh/sync.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/gap_analyzer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/gap_detector.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/sensitive_tables.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/service_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/surface_analyzer.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/intelligence/target_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/licensing/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/licensing/validator.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/log_config.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/migrations/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/migrations/fix_job_counter.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/bloodhound_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/crackmapexec_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/dalfox_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/dnsrecon_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/enum4linux_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/ffuf_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/gobuster_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/hashcat_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/http_fingerprint_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/hydra_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/impacket_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/john_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/msf_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nikto_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nmap_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/nuclei_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/responder_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/searchsploit_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/smbmap_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/sqlmap_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/theharvester_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/whois_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/parsers/wpscan_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/afp.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/afp_brute.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/ard.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/bloodhound.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/crackmapexec.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dalfox.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dns_hijack.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/dnsrecon.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/enum4linux.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/ffuf.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/firmware_extract.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/gobuster.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/hashcat.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/http_fingerprint.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/hydra.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_psexec.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/impacket_smbclient.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/john.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/macos_ssh.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/mdns.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/msf_auxiliary.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/msf_exploit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nikto.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nmap.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/nuclei.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/plugin_base.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/plugin_template.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/responder.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_http_brute.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_ssh_brute.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/router_telnet_brute.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/routersploit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/routersploit_exploit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/searchsploit.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/smbmap.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/sqlmap.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/theharvester.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/tr069.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/upnp.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/upnp_abuse.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/vnc_access.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/vnc_brute.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/whois.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/plugins/wpscan.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/attack_chain.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/charts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/compliance_mappings.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/detection_report.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/formatters.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/generator.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/reporting/metrics.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/scanner.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/scope_validator.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security/validation.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/security.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/credentials.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/crypto.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/database.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/db.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_evidence.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_exporter.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverable_templates.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/deliverables.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/engagements.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/evidence.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/execution_log.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/exploit_attempts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/exploits.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/findings.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/hosts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrate_to_engagements.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/_026_add_engagement_scope.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/migrations/migration_manager.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/msf_sessions.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/osint.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/recommendation_engine.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/screenshots.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/smb_shares.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/sqlmap_data.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/team_collaboration.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/timeline_tracker.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/wazuh_vulns.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/storage/web_paths.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/testing/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/testing/credential_tester.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/ai_quotes.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/attack_surface.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/chain_rules_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/correlation_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/dashboard.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/deliverables_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/design_system.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/errors.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/evidence_linking_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/evidence_vault.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/export_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/gap_analysis_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/help_system.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/intelligence_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/interactive.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/interactive_selector.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/log_formatter.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/menu_components.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/pending_chains_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/progress_indicators.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/recommendations_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/rule_builder.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/setup_wizard.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/shortcuts.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/splunk_vulns_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/team_dashboard.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/template_selector.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/terminal.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/timeline_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tool_setup.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tutorial.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/tutorial_state.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/ui.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils/__init__.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils/tool_checker.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/utils.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez/wordlists.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/SOURCES.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/dependency_links.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/entry_points.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/requires.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/souleyez.egg-info/top_level.txt +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_config_enhanced.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_crypto.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_database_100_final.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_engagements.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_engagements_simple.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_job_status_tracking.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_logging.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_network_utils.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_ollama_service.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_plugin_base.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_recommender.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_schema.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_scope_integration.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_scope_validator.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_security_hardening.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_security_validation.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_sqlmap_parser.py +0 -0
- {souleyez-2.28.0 → souleyez-2.29.0}/tests/test_version_utils.py +0 -0
|
@@ -27,7 +27,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
27
27
|
|
|
28
28
|
> ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
|
|
29
29
|
|
|
30
|
-
## Version: 2.
|
|
30
|
+
## Version: 2.29.0
|
|
31
31
|
|
|
32
32
|
### What's Included
|
|
33
33
|
|
|
@@ -265,4 +265,4 @@ Happy hacking! 🛡️
|
|
|
265
265
|
|
|
266
266
|
---
|
|
267
267
|
|
|
268
|
-
**Version**: 2.
|
|
268
|
+
**Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.29.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>
|
|
@@ -78,7 +78,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
78
78
|
|
|
79
79
|
> ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
|
|
80
80
|
|
|
81
|
-
## Version: 2.
|
|
81
|
+
## Version: 2.29.0
|
|
82
82
|
|
|
83
83
|
### What's Included
|
|
84
84
|
|
|
@@ -316,4 +316,4 @@ Happy hacking! 🛡️
|
|
|
316
316
|
|
|
317
317
|
---
|
|
318
318
|
|
|
319
|
-
**Version**: 2.
|
|
319
|
+
**Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.29.0'
|
|
@@ -173,7 +173,7 @@ def _check_privileged_tools():
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
@click.group()
|
|
176
|
-
@click.version_option(version='2.
|
|
176
|
+
@click.version_option(version='2.29.0')
|
|
177
177
|
def cli():
|
|
178
178
|
"""SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
|
|
179
179
|
from souleyez.log_config import init_logging
|
|
@@ -6,6 +6,7 @@ CREATE TABLE IF NOT EXISTS engagements (
|
|
|
6
6
|
owner_id INTEGER,
|
|
7
7
|
estimated_hours FLOAT DEFAULT 0,
|
|
8
8
|
actual_hours FLOAT DEFAULT 0,
|
|
9
|
+
scope_enforcement TEXT DEFAULT 'off',
|
|
9
10
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
10
11
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
11
12
|
);
|
|
@@ -21,6 +22,7 @@ CREATE TABLE IF NOT EXISTS hosts (
|
|
|
21
22
|
mac_address TEXT,
|
|
22
23
|
status TEXT DEFAULT 'up',
|
|
23
24
|
access_level TEXT DEFAULT 'none',
|
|
25
|
+
scope_status TEXT DEFAULT 'unknown',
|
|
24
26
|
notes TEXT,
|
|
25
27
|
tags TEXT,
|
|
26
28
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
@@ -540,3 +542,37 @@ CREATE INDEX IF NOT EXISTS idx_wazuh_config_engagement ON wazuh_config(engagemen
|
|
|
540
542
|
CREATE INDEX IF NOT EXISTS idx_detection_results_job ON detection_results(job_id);
|
|
541
543
|
CREATE INDEX IF NOT EXISTS idx_detection_results_engagement ON detection_results(engagement_id);
|
|
542
544
|
CREATE INDEX IF NOT EXISTS idx_detection_results_status ON detection_results(detection_status);
|
|
545
|
+
|
|
546
|
+
-- Engagement Scope Validation (from migration 026)
|
|
547
|
+
CREATE TABLE IF NOT EXISTS engagement_scope (
|
|
548
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
549
|
+
engagement_id INTEGER NOT NULL,
|
|
550
|
+
scope_type TEXT NOT NULL,
|
|
551
|
+
value TEXT NOT NULL,
|
|
552
|
+
is_excluded BOOLEAN DEFAULT 0,
|
|
553
|
+
description TEXT,
|
|
554
|
+
added_by TEXT,
|
|
555
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
556
|
+
FOREIGN KEY (engagement_id) REFERENCES engagements(id) ON DELETE CASCADE,
|
|
557
|
+
UNIQUE(engagement_id, scope_type, value)
|
|
558
|
+
);
|
|
559
|
+
|
|
560
|
+
CREATE TABLE IF NOT EXISTS scope_validation_log (
|
|
561
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
562
|
+
engagement_id INTEGER NOT NULL,
|
|
563
|
+
job_id INTEGER,
|
|
564
|
+
target TEXT NOT NULL,
|
|
565
|
+
validation_result TEXT NOT NULL,
|
|
566
|
+
action_taken TEXT NOT NULL,
|
|
567
|
+
matched_scope_id INTEGER,
|
|
568
|
+
user_id TEXT,
|
|
569
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
570
|
+
FOREIGN KEY (engagement_id) REFERENCES engagements(id) ON DELETE CASCADE
|
|
571
|
+
);
|
|
572
|
+
|
|
573
|
+
CREATE INDEX IF NOT EXISTS idx_scope_engagement ON engagement_scope(engagement_id);
|
|
574
|
+
CREATE INDEX IF NOT EXISTS idx_scope_type ON engagement_scope(scope_type);
|
|
575
|
+
CREATE INDEX IF NOT EXISTS idx_scope_log_engagement ON scope_validation_log(engagement_id);
|
|
576
|
+
CREATE INDEX IF NOT EXISTS idx_scope_log_result ON scope_validation_log(validation_result);
|
|
577
|
+
CREATE INDEX IF NOT EXISTS idx_scope_log_timestamp ON scope_validation_log(created_at DESC);
|
|
578
|
+
CREATE INDEX IF NOT EXISTS idx_hosts_scope_status ON hosts(scope_status);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.29.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>
|
|
@@ -78,7 +78,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
78
78
|
|
|
79
79
|
> ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
|
|
80
80
|
|
|
81
|
-
## Version: 2.
|
|
81
|
+
## Version: 2.29.0
|
|
82
82
|
|
|
83
83
|
### What's Included
|
|
84
84
|
|
|
@@ -316,4 +316,4 @@ Happy hacking! 🛡️
|
|
|
316
316
|
|
|
317
317
|
---
|
|
318
318
|
|
|
319
|
-
**Version**: 2.
|
|
319
|
+
**Version**: 2.29.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -10,9 +10,18 @@ from pathlib import Path
|
|
|
10
10
|
|
|
11
11
|
@pytest.fixture
|
|
12
12
|
def temp_config(tmp_path, monkeypatch):
|
|
13
|
-
"""Use temporary config file."""
|
|
13
|
+
"""Use temporary config file and database."""
|
|
14
14
|
config_file = tmp_path / "config.json"
|
|
15
15
|
monkeypatch.setattr("souleyez.config.CONFIG_PATH", config_file)
|
|
16
|
+
|
|
17
|
+
# Also set up temp database to avoid conflicts with production db
|
|
18
|
+
db_path = tmp_path / "test.db"
|
|
19
|
+
import souleyez.storage.database as db_module
|
|
20
|
+
db_module._db = None # Reset singleton
|
|
21
|
+
|
|
22
|
+
# Monkeypatch DB_PATH to use temp path
|
|
23
|
+
monkeypatch.setattr("souleyez.storage.database.DB_PATH", db_path)
|
|
24
|
+
|
|
16
25
|
return config_file
|
|
17
26
|
|
|
18
27
|
|
|
@@ -10,10 +10,17 @@ from souleyez.engine.result_handler import parse_sqlmap_job
|
|
|
10
10
|
def test_result_handler_uses_injectable_url():
|
|
11
11
|
"""
|
|
12
12
|
REGRESSION TEST: Ensure result_handler reads 'injectable_url' not 'target_url'.
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
This test prevents the bug where result_handler was reading the wrong key,
|
|
15
15
|
causing auto-chaining to use just the IP instead of the full URL.
|
|
16
16
|
"""
|
|
17
|
+
# First create a test engagement (required for FK constraint)
|
|
18
|
+
from souleyez.storage.database import get_db
|
|
19
|
+
db = get_db()
|
|
20
|
+
db.execute(
|
|
21
|
+
"INSERT OR REPLACE INTO engagements (id, name, description) VALUES (1, 'test', 'Test engagement')"
|
|
22
|
+
)
|
|
23
|
+
|
|
17
24
|
# Create a temporary log file
|
|
18
25
|
log_content = """
|
|
19
26
|
[INFO] testing URL 'http://10.0.0.82/mutillidae/?page=add-to-your-blog.php'
|
|
@@ -26,11 +33,11 @@ Parameter: User-Agent (User-Agent)
|
|
|
26
33
|
[INFO] the back-end DBMS is MySQL
|
|
27
34
|
back-end DBMS: MySQL >= 5.0.12
|
|
28
35
|
"""
|
|
29
|
-
|
|
36
|
+
|
|
30
37
|
with tempfile.NamedTemporaryFile(mode='w', delete=False, suffix='.log') as f:
|
|
31
38
|
f.write(log_content)
|
|
32
39
|
log_path = f.name
|
|
33
|
-
|
|
40
|
+
|
|
34
41
|
try:
|
|
35
42
|
# Mock job
|
|
36
43
|
job = {
|
|
@@ -39,7 +46,7 @@ back-end DBMS: MySQL >= 5.0.12
|
|
|
39
46
|
'target': '10.0.0.82', # Just the IP - this is what gets passed
|
|
40
47
|
'engagement_id': 1
|
|
41
48
|
}
|
|
42
|
-
|
|
49
|
+
|
|
43
50
|
# Parse the job
|
|
44
51
|
result = parse_sqlmap_job(1, log_path, job)
|
|
45
52
|
|
|
@@ -9,14 +9,15 @@ import pytest
|
|
|
9
9
|
def temp_db(tmp_path, monkeypatch):
|
|
10
10
|
"""Create temporary database for tests."""
|
|
11
11
|
db_path = tmp_path / "test_storage.db"
|
|
12
|
-
monkeypatch.setenv('SOULEYEZ_DB_PATH', str(db_path))
|
|
13
12
|
|
|
14
|
-
# Reset database singleton
|
|
15
|
-
from souleyez.storage.database import
|
|
13
|
+
# Reset database singleton and create with explicit path
|
|
14
|
+
from souleyez.storage.database import Database
|
|
16
15
|
import souleyez.storage.database as db_module
|
|
17
16
|
db_module._db = None
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
# Create database with explicit path (bypasses DB_PATH constant)
|
|
19
|
+
db = Database(str(db_path))
|
|
20
|
+
db_module._db = db # Set as singleton so get_db() returns this instance
|
|
20
21
|
|
|
21
22
|
# Create a test engagement to satisfy foreign key constraints
|
|
22
23
|
db.execute(
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.28.0'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{souleyez-2.28.0 → souleyez-2.29.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|