souleyez 2.22.0__tar.gz → 2.24.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.22.0 → souleyez-2.24.0}/BETA_README.md +4 -2
- {souleyez-2.22.0/souleyez.egg-info → souleyez-2.24.0}/PKG-INFO +5 -3
- {souleyez-2.22.0 → souleyez-2.24.0}/README.md +3 -1
- {souleyez-2.22.0 → souleyez-2.24.0}/pyproject.toml +1 -1
- souleyez-2.24.0/souleyez/__init__.py +1 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_sync_manager.py +15 -5
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/detection/validator.py +4 -2
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/README.md +2 -2
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/installation.md +3 -1
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/main.py +11 -4
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/interactive.py +3 -3
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/setup_wizard.py +22 -5
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/tool_setup.py +52 -52
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/utils/tool_checker.py +45 -5
- {souleyez-2.22.0 → souleyez-2.24.0/souleyez.egg-info}/PKG-INFO +5 -3
- souleyez-2.22.0/souleyez/__init__.py +0 -1
- {souleyez-2.22.0 → souleyez-2.24.0}/LICENSE +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/MANIFEST.in +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/setup.cfg +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/action_mapper.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/chain_advisor.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/claude_provider.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/context_builder.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/executor.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/feedback_handler.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/llm_factory.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/llm_provider.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/ollama_provider.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/ollama_service.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/path_scorer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/recommender.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/report_context.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/report_prompts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/report_service.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/result_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ai/safety.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/audit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/engagement_access.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/permissions.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/session_manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/auth/user_manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/audit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/auth.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/deliverables.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/engagement.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/license.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/screenshots.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/commands/user.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/config.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/credential_tester.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/cve_mappings.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/cve_matcher.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_auto_mapper.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_chain_engine.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_database.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_integration.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_rpc_client.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/msf_rpc_manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/network_utils.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/parser_handler.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/pending_chains.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/templates.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/tool_chaining.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/version_utils.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/vuln_correlation.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/core/web_utils.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/README.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/active_directory.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/cloud_security.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/external_network.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/ffiec_cat.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/gdpr_article32.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/glba_safeguards.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/hipaa_security.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/hitrust_csf.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/internal_network.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/iso27001.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/nerc_cip.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/nist_csf.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/ptes_standard.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/red_team.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/soc2_type2.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/templates/webapp_advanced.json +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/README.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/all_users.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/macos_users.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/router_users.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/soul_users.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/top100.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/detection/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/detection/attack_signatures.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/detection/mitre_mappings.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/devtools.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/architecture/overview.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/database/SCHEMA.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/images/README.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/security/best-practices.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/security/credential-encryption.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/security/password-protected-commands.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/security/secure-defaults.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/security/threat-model.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/configuration.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/dependencies.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/getting-started.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/rbac.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/report-generation.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/uninstall.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/worker-management.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/docs/user-guide/workflows.md +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/background.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/base.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/job_status.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/loader.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/log_sanitizer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/result_handler.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/engine/worker_manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/export/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/export/evidence_bundle.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/feature_flags/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/feature_flags/features.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/feature_flags.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/history.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/importers/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/importers/msf_importer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/importers/smart_importer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/base.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/elastic.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/factory.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/sentinel.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/splunk.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/siem/wazuh.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/wazuh/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/wazuh/client.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/wazuh/config.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/integrations/wazuh/sync.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/gap_analyzer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/gap_detector.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/sensitive_tables.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/service_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/surface_analyzer.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/intelligence/target_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/licensing/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/licensing/validator.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/log_config.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/migrations/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/migrations/fix_job_counter.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/bloodhound_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/crackmapexec_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/dalfox_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/dnsrecon_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/enum4linux_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/ffuf_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/gobuster_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/hashcat_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/hydra_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/impacket_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/john_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/msf_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/nikto_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/nmap_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/nuclei_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/responder_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/searchsploit_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/smbmap_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/sqlmap_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/theharvester_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/whois_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/parsers/wpscan_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/afp.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/afp_brute.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/ard.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/bloodhound.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/crackmapexec.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/dalfox.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/dns_hijack.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/dnsrecon.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/enum4linux.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/ffuf.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/firmware_extract.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/gobuster.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/hashcat.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/hydra.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/impacket_psexec.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/impacket_smbclient.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/john.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/macos_ssh.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/mdns.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/msf_auxiliary.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/msf_exploit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/nikto.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/nmap.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/nuclei.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/plugin_base.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/plugin_template.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/responder.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/router_http_brute.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/router_ssh_brute.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/router_telnet_brute.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/routersploit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/routersploit_exploit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/searchsploit.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/smbmap.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/sqlmap.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/theharvester.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/tr069.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/upnp.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/upnp_abuse.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/vnc_access.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/vnc_brute.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/whois.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/plugins/wpscan.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/attack_chain.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/charts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/compliance_mappings.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/detection_report.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/formatters.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/generator.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/reporting/metrics.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/scanner.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/security/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/security/validation.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/security.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/credentials.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/crypto.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/database.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/db.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/deliverable_evidence.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/deliverable_exporter.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/deliverable_templates.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/deliverables.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/engagements.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/evidence.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/execution_log.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/exploit_attempts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/exploits.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/findings.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/hosts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrate_to_engagements.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/migrations/migration_manager.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/msf_sessions.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/osint.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/recommendation_engine.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/schema.sql +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/screenshots.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/smb_shares.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/sqlmap_data.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/team_collaboration.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/timeline_tracker.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/wazuh_vulns.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/storage/web_paths.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/testing/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/testing/credential_tester.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/ai_quotes.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/attack_surface.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/chain_rules_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/correlation_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/dashboard.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/deliverables_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/design_system.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/errors.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/evidence_linking_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/evidence_vault.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/export_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/gap_analysis_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/help_system.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/intelligence_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/interactive_selector.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/log_formatter.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/menu_components.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/pending_chains_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/progress_indicators.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/recommendations_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/rule_builder.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/shortcuts.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/splunk_vulns_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/team_dashboard.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/template_selector.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/terminal.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/timeline_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/tutorial.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/tutorial_state.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/ui.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/utils/__init__.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/utils.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez/wordlists.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez.egg-info/SOURCES.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez.egg-info/dependency_links.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez.egg-info/entry_points.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez.egg-info/requires.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/souleyez.egg-info/top_level.txt +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_config.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_config_enhanced.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_crypto.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_database_100_final.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_engagements.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_engagements_simple.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_job_status_tracking.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_logging.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_network_utils.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_ollama_service.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_plugin_base.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_recommender.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_result_handler_sqlmap.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_schema.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_security_hardening.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_security_validation.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_sqlmap_parser.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.0}/tests/test_storage.py +0 -0
- {souleyez-2.22.0 → souleyez-2.24.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
|
+
## Version: 2.24.0
|
|
25
25
|
|
|
26
26
|
### What's Included
|
|
27
27
|
|
|
@@ -76,6 +76,8 @@ pipx ensurepath # Add pipx apps to your PATH
|
|
|
76
76
|
source ~/.bashrc # Reload your shell (or close and reopen terminal)
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
> **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
|
|
80
|
+
|
|
79
81
|
> 💡 **What's pipx?** It's like `apt` but for Python command-line tools. It keeps each tool isolated so they don't conflict with each other.
|
|
80
82
|
|
|
81
83
|
### Step 2: Install SoulEyez
|
|
@@ -246,4 +248,4 @@ Happy hacking! 🛡️
|
|
|
246
248
|
|
|
247
249
|
---
|
|
248
250
|
|
|
249
|
-
**Version**: 2.
|
|
251
|
+
**Version**: 2.24.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.24.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.
|
|
75
|
+
## Version: 2.24.0
|
|
76
76
|
|
|
77
77
|
### What's Included
|
|
78
78
|
|
|
@@ -127,6 +127,8 @@ pipx ensurepath # Add pipx apps to your PATH
|
|
|
127
127
|
source ~/.bashrc # Reload your shell (or close and reopen terminal)
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
+
> **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
|
|
131
|
+
|
|
130
132
|
> 💡 **What's pipx?** It's like `apt` but for Python command-line tools. It keeps each tool isolated so they don't conflict with each other.
|
|
131
133
|
|
|
132
134
|
### Step 2: Install SoulEyez
|
|
@@ -297,4 +299,4 @@ Happy hacking! 🛡️
|
|
|
297
299
|
|
|
298
300
|
---
|
|
299
301
|
|
|
300
|
-
**Version**: 2.
|
|
302
|
+
**Version**: 2.24.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -133,7 +133,7 @@ See [docs/CONFIG.md](souleyez/docs/CONFIG.md) for complete configuration options
|
|
|
133
133
|
# Install pipx if needed
|
|
134
134
|
sudo apt install pipx
|
|
135
135
|
pipx ensurepath
|
|
136
|
-
source ~/.bashrc
|
|
136
|
+
source ~/.bashrc # Kali Linux: use 'source ~/.zshrc' instead
|
|
137
137
|
|
|
138
138
|
# Install SoulEyez
|
|
139
139
|
pipx install souleyez
|
|
@@ -142,6 +142,8 @@ pipx install souleyez
|
|
|
142
142
|
souleyez setup
|
|
143
143
|
```
|
|
144
144
|
|
|
145
|
+
> **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
|
|
146
|
+
|
|
145
147
|
See [docs/user-guide/installation.md](souleyez/docs/user-guide/installation.md) for detailed instructions.
|
|
146
148
|
|
|
147
149
|
---
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.24.0'
|
|
@@ -29,15 +29,25 @@ logger = logging.getLogger(__name__)
|
|
|
29
29
|
|
|
30
30
|
def get_msf_database_config() -> Optional[Dict[str, Any]]:
|
|
31
31
|
"""
|
|
32
|
-
Get MSF database configuration from ~/.msf4/database.yml
|
|
32
|
+
Get MSF database configuration from ~/.msf4/database.yml or system-wide config.
|
|
33
|
+
|
|
34
|
+
Checks user config first, then falls back to system-wide config (Kali Linux).
|
|
33
35
|
|
|
34
36
|
Returns:
|
|
35
37
|
Dictionary with database config or None if not found/parseable
|
|
36
38
|
"""
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
# Check user config first, then system-wide config (Kali uses system-wide)
|
|
40
|
+
user_db_path = Path.home() / ".msf4" / "database.yml"
|
|
41
|
+
system_db_path = Path('/usr/share/metasploit-framework/config/database.yml')
|
|
42
|
+
|
|
43
|
+
db_yml_path = None
|
|
44
|
+
if user_db_path.exists():
|
|
45
|
+
db_yml_path = user_db_path
|
|
46
|
+
elif system_db_path.exists():
|
|
47
|
+
db_yml_path = system_db_path
|
|
48
|
+
|
|
49
|
+
if not db_yml_path:
|
|
50
|
+
logger.debug("MSF database.yml not found in user or system config")
|
|
41
51
|
return None
|
|
42
52
|
|
|
43
53
|
try:
|
|
@@ -156,8 +156,10 @@ class DetectionValidator:
|
|
|
156
156
|
job_command = _reconstruct_command(job)
|
|
157
157
|
# Use started_at or finished_at for execution time
|
|
158
158
|
executed_at = job.get('started_at') or job.get('finished_at') or job.get('created_at')
|
|
159
|
-
# Job
|
|
160
|
-
|
|
159
|
+
# Job ran successfully if status is done, no_results, or warning
|
|
160
|
+
# (all of these sent network traffic that should be detectable by SIEM)
|
|
161
|
+
job_status = job.get('status', '')
|
|
162
|
+
success = job_status in ('done', 'no_results', 'warning')
|
|
161
163
|
|
|
162
164
|
# Extract target IP from command (common patterns)
|
|
163
165
|
target_ip = None
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SoulEyez Documentation
|
|
2
2
|
|
|
3
|
-
**Version:** 2.
|
|
4
|
-
**Last Updated:** January
|
|
3
|
+
**Version:** 2.24.0
|
|
4
|
+
**Last Updated:** January 8, 2026
|
|
5
5
|
**Organization:** CyberSoul Security
|
|
6
6
|
|
|
7
7
|
Welcome to the SoulEyez documentation! This documentation covers architecture, development, user guides, and operational information for the SoulEyez penetration testing platform.
|
|
@@ -40,12 +40,14 @@ pipx is the Python community's recommended way to install CLI applications. It h
|
|
|
40
40
|
# One-time setup
|
|
41
41
|
sudo apt install pipx
|
|
42
42
|
pipx ensurepath
|
|
43
|
-
source ~/.bashrc
|
|
43
|
+
source ~/.bashrc # Kali Linux: use 'source ~/.zshrc' instead
|
|
44
44
|
|
|
45
45
|
# Install SoulEyez
|
|
46
46
|
pipx install souleyez
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
+
> **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
|
|
50
|
+
|
|
49
51
|
On first run, SoulEyez will prompt you to install pentesting tools (nmap, sqlmap, gobuster, etc.).
|
|
50
52
|
|
|
51
53
|
```bash
|
|
@@ -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.24.0')
|
|
177
177
|
def cli():
|
|
178
178
|
"""SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
|
|
179
179
|
from souleyez.log_config import init_logging
|
|
@@ -1388,19 +1388,24 @@ def _run_doctor(fix=False, verbose=False):
|
|
|
1388
1388
|
path_dirs = os.environ.get('PATH', '').split(':')
|
|
1389
1389
|
pipx_bin = str(Path.home() / '.local' / 'bin')
|
|
1390
1390
|
go_bin = str(Path.home() / 'go' / 'bin')
|
|
1391
|
+
|
|
1392
|
+
# Detect shell config file (zsh for Kali, bash for others)
|
|
1393
|
+
shell = os.environ.get('SHELL', '/bin/bash')
|
|
1394
|
+
shell_rc = '~/.zshrc' if 'zsh' in shell else '~/.bashrc'
|
|
1395
|
+
|
|
1391
1396
|
if pipx_bin in path_dirs:
|
|
1392
1397
|
if verbose:
|
|
1393
1398
|
check_pass("PATH includes ~/.local/bin (pipx)")
|
|
1394
1399
|
else:
|
|
1395
1400
|
if Path(pipx_bin).exists() and any(Path(pipx_bin).iterdir()):
|
|
1396
|
-
check_warn("~/.local/bin not in PATH", "Add to
|
|
1401
|
+
check_warn("~/.local/bin not in PATH", f"Add to {shell_rc}: export PATH=\"$HOME/.local/bin:$PATH\"")
|
|
1397
1402
|
|
|
1398
1403
|
if go_bin in path_dirs:
|
|
1399
1404
|
if verbose:
|
|
1400
1405
|
check_pass("PATH includes ~/go/bin")
|
|
1401
1406
|
else:
|
|
1402
1407
|
if Path(go_bin).exists() and any(Path(go_bin).iterdir()):
|
|
1403
|
-
check_warn("~/go/bin not in PATH", "Add to
|
|
1408
|
+
check_warn("~/go/bin not in PATH", f"Add to {shell_rc}: export PATH=\"$HOME/go/bin:$PATH\"")
|
|
1404
1409
|
|
|
1405
1410
|
# Check database is writable
|
|
1406
1411
|
if db_path.exists():
|
|
@@ -1430,8 +1435,10 @@ def _run_doctor(fix=False, verbose=False):
|
|
|
1430
1435
|
# Section 7: MSF Database (if msfconsole available)
|
|
1431
1436
|
if shutil.which('msfconsole'):
|
|
1432
1437
|
click.echo(click.style("Metasploit", bold=True))
|
|
1438
|
+
# Check user config first, then system-wide config (Kali uses system-wide)
|
|
1433
1439
|
msf_db = Path.home() / '.msf4' / 'database.yml'
|
|
1434
|
-
|
|
1440
|
+
system_msf_db = Path('/usr/share/metasploit-framework/config/database.yml')
|
|
1441
|
+
if msf_db.exists() or system_msf_db.exists():
|
|
1435
1442
|
check_pass("MSF database configured")
|
|
1436
1443
|
else:
|
|
1437
1444
|
check_fail("MSF database not initialized", "msfdb init")
|
|
@@ -29526,11 +29526,11 @@ def _check_msfdb_ready() -> bool:
|
|
|
29526
29526
|
click.echo(" The Metasploit database needs to be initialized for full functionality.")
|
|
29527
29527
|
click.echo(" Without it, you won't be able to store hosts, credentials, or loot.")
|
|
29528
29528
|
click.echo()
|
|
29529
|
-
if click.confirm(" Initialize database now? (runs: msfdb init)", default=True):
|
|
29529
|
+
if click.confirm(" Initialize database now? (runs: sudo msfdb init)", default=True):
|
|
29530
29530
|
click.echo()
|
|
29531
|
-
click.echo(click.style(" Running msfdb init...", fg='cyan'))
|
|
29531
|
+
click.echo(click.style(" Running sudo msfdb init...", fg='cyan'))
|
|
29532
29532
|
try:
|
|
29533
|
-
result = subprocess.run(['msfdb', 'init'], capture_output=False, text=True)
|
|
29533
|
+
result = subprocess.run(['sudo', 'msfdb', 'init'], capture_output=False, text=True)
|
|
29534
29534
|
if result.returncode == 0:
|
|
29535
29535
|
click.echo(click.style(" Database initialized successfully!", fg='green'))
|
|
29536
29536
|
click.echo()
|
|
@@ -834,14 +834,16 @@ def _install_ollama() -> bool:
|
|
|
834
834
|
|
|
835
835
|
click.echo()
|
|
836
836
|
click.echo(" Installing Ollama...")
|
|
837
|
-
click.echo(" " + click.style("(This may take a minute)", fg='bright_black'))
|
|
837
|
+
click.echo(" " + click.style("(This may take a minute - downloading ~100MB)", fg='bright_black'))
|
|
838
838
|
click.echo()
|
|
839
839
|
|
|
840
840
|
try:
|
|
841
|
-
# Run the official Ollama install script
|
|
841
|
+
# Run the official Ollama install script with timeout
|
|
842
|
+
# Add curl timeouts to fail faster on network issues
|
|
842
843
|
result = subprocess.run(
|
|
843
|
-
['bash', '-c', 'curl -fsSL https://ollama.ai/install.sh | sh'],
|
|
844
|
-
check=False
|
|
844
|
+
['bash', '-c', 'curl --connect-timeout 30 --max-time 300 -fsSL https://ollama.ai/install.sh | sh'],
|
|
845
|
+
check=False,
|
|
846
|
+
timeout=360 # 6 minute total timeout
|
|
845
847
|
)
|
|
846
848
|
|
|
847
849
|
if result.returncode == 0:
|
|
@@ -853,10 +855,25 @@ def _install_ollama() -> bool:
|
|
|
853
855
|
else:
|
|
854
856
|
click.echo()
|
|
855
857
|
click.echo(" " + click.style("✗ Installation failed", fg='red'))
|
|
856
|
-
click.echo("
|
|
858
|
+
click.echo(" " + click.style("This is usually a network issue (slow connection or timeout).", fg='yellow'))
|
|
859
|
+
click.echo()
|
|
860
|
+
click.echo(" To install manually:")
|
|
861
|
+
click.echo(" curl -fsSL https://ollama.ai/install.sh | sh")
|
|
862
|
+
click.echo()
|
|
863
|
+
click.echo(" Or visit: https://ollama.ai")
|
|
857
864
|
click.pause(" Press any key to continue...")
|
|
858
865
|
return False
|
|
859
866
|
|
|
867
|
+
except subprocess.TimeoutExpired:
|
|
868
|
+
click.echo()
|
|
869
|
+
click.echo(" " + click.style("✗ Installation timed out", fg='red'))
|
|
870
|
+
click.echo(" " + click.style("The download took too long. Check your internet connection.", fg='yellow'))
|
|
871
|
+
click.echo()
|
|
872
|
+
click.echo(" To install manually:")
|
|
873
|
+
click.echo(" curl -fsSL https://ollama.ai/install.sh | sh")
|
|
874
|
+
click.pause(" Press any key to continue...")
|
|
875
|
+
return False
|
|
876
|
+
|
|
860
877
|
except Exception as e:
|
|
861
878
|
click.echo()
|
|
862
879
|
click.echo(click.style(f" ✗ Error: {e}", fg='red'))
|
|
@@ -82,32 +82,38 @@ def _ensure_path_configured():
|
|
|
82
82
|
os.environ["PATH"] = ":".join(new_paths) + ":" + current_path
|
|
83
83
|
|
|
84
84
|
|
|
85
|
-
def
|
|
86
|
-
"""Add tool paths to
|
|
87
|
-
bashrc = Path.home() / ".bashrc"
|
|
85
|
+
def _add_paths_to_shell_rc():
|
|
86
|
+
"""Add tool paths to shell rc files (bash and zsh) if not already present."""
|
|
88
87
|
paths_to_add = [
|
|
89
88
|
('export PATH="$HOME/go/bin:$PATH"', "go/bin"),
|
|
90
89
|
('export PATH="$HOME/.local/bin:$PATH"', ".local/bin"),
|
|
91
90
|
]
|
|
92
91
|
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
# Update both .bashrc and .zshrc (Kali Linux uses zsh by default)
|
|
93
|
+
rc_files = [
|
|
94
|
+
Path.home() / ".bashrc",
|
|
95
|
+
Path.home() / ".zshrc",
|
|
96
|
+
]
|
|
95
97
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
98
|
+
for rc_file in rc_files:
|
|
99
|
+
if not rc_file.exists():
|
|
100
|
+
continue
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
content = rc_file.read_text()
|
|
104
|
+
additions = []
|
|
105
|
+
|
|
106
|
+
for line, marker in paths_to_add:
|
|
107
|
+
if marker not in content:
|
|
108
|
+
additions.append(line)
|
|
109
|
+
|
|
110
|
+
if additions:
|
|
111
|
+
with open(rc_file, "a") as f:
|
|
112
|
+
f.write("\n# Added by souleyez setup\n")
|
|
113
|
+
for line in additions:
|
|
114
|
+
f.write(line + "\n")
|
|
115
|
+
except Exception:
|
|
116
|
+
pass # Don't fail on PATH configuration issues
|
|
111
117
|
|
|
112
118
|
|
|
113
119
|
def _run_command(cmd: str, console, description: str = "", capture: bool = False) -> tuple:
|
|
@@ -319,15 +325,16 @@ def _ensure_msfdb_initialized(console):
|
|
|
319
325
|
|
|
320
326
|
if not click.confirm(" Initialize MSF database now?", default=True):
|
|
321
327
|
console.print()
|
|
322
|
-
console.print(" [yellow]Skipped.[/yellow] Run 'msfdb init' manually when needed.")
|
|
328
|
+
console.print(" [yellow]Skipped.[/yellow] Run 'sudo msfdb init' manually when needed.")
|
|
323
329
|
return
|
|
324
330
|
|
|
325
331
|
console.print()
|
|
326
332
|
console.print(" [dim]Initializing MSF database (this may take a minute)...[/dim]")
|
|
327
333
|
|
|
328
334
|
try:
|
|
335
|
+
# Use sudo for msfdb init (required on Kali and some other distros)
|
|
329
336
|
result = subprocess.run(
|
|
330
|
-
[msfdb_path, 'init'],
|
|
337
|
+
['sudo', msfdb_path, 'init'],
|
|
331
338
|
capture_output=True,
|
|
332
339
|
timeout=300 # 5 minute timeout
|
|
333
340
|
)
|
|
@@ -392,32 +399,12 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
|
|
|
392
399
|
console.print(f" Detected OS: [bold]{distro_names.get(distro, distro)}[/bold]")
|
|
393
400
|
console.print()
|
|
394
401
|
|
|
402
|
+
# Show distro-specific messaging
|
|
395
403
|
if distro in ('kali', 'parrot'):
|
|
396
404
|
console.print(" [green]✓ You're on a pentesting distro![/green]")
|
|
397
|
-
console.print("
|
|
405
|
+
console.print(" Most tools are available via apt. Some may use pipx or direct download.")
|
|
398
406
|
console.print()
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
if check_only:
|
|
402
|
-
return
|
|
403
|
-
|
|
404
|
-
missing = get_missing_tools(distro)
|
|
405
|
-
if missing:
|
|
406
|
-
console.print()
|
|
407
|
-
if install_all or click.confirm(" Install missing tools via apt?", default=True):
|
|
408
|
-
_install_apt_tools(console, missing)
|
|
409
|
-
else:
|
|
410
|
-
console.print(" [green]✓ All tools are installed![/green]")
|
|
411
|
-
|
|
412
|
-
# Configure sudoers for privileged scans
|
|
413
|
-
_configure_sudoers(console)
|
|
414
|
-
|
|
415
|
-
# Initialize MSF database if needed
|
|
416
|
-
_ensure_msfdb_initialized(console)
|
|
417
|
-
return
|
|
418
|
-
|
|
419
|
-
# Ubuntu/Debian path
|
|
420
|
-
if distro in ('ubuntu', 'debian'):
|
|
407
|
+
elif distro in ('ubuntu', 'debian'):
|
|
421
408
|
console.print(" [yellow]Note:[/yellow] Some pentesting tools aren't in Ubuntu/Debian repos.")
|
|
422
409
|
console.print(" This wizard will install them using pipx, go, snap, or from source.")
|
|
423
410
|
console.print()
|
|
@@ -431,6 +418,8 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
|
|
|
431
418
|
if not missing:
|
|
432
419
|
console.print()
|
|
433
420
|
console.print(" [green]✓ All tools are installed![/green]")
|
|
421
|
+
# Still need to run post-install tasks (sudoers, MSF db, etc.)
|
|
422
|
+
_run_post_install_tasks(console, distro)
|
|
434
423
|
return
|
|
435
424
|
|
|
436
425
|
console.print()
|
|
@@ -528,8 +517,8 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
|
|
|
528
517
|
else:
|
|
529
518
|
failed_tools.append(tool['name'])
|
|
530
519
|
|
|
531
|
-
# Configure PATH in
|
|
532
|
-
|
|
520
|
+
# Configure PATH in shell rc files (bash and zsh)
|
|
521
|
+
_add_paths_to_shell_rc()
|
|
533
522
|
|
|
534
523
|
# Final status
|
|
535
524
|
console.print()
|
|
@@ -547,6 +536,15 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
|
|
|
547
536
|
_ensure_path_configured()
|
|
548
537
|
_show_tool_status(console)
|
|
549
538
|
|
|
539
|
+
# Run post-install tasks
|
|
540
|
+
_run_post_install_tasks(console, distro)
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
def _run_post_install_tasks(console, distro: str):
|
|
544
|
+
"""Run tasks that should happen after tool installation or when all tools are present."""
|
|
545
|
+
# Ensure PATH is configured in shell rc files
|
|
546
|
+
_add_paths_to_shell_rc()
|
|
547
|
+
|
|
550
548
|
# Configure passwordless sudo for privileged scans
|
|
551
549
|
_configure_sudoers(console)
|
|
552
550
|
|
|
@@ -554,12 +552,14 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
|
|
|
554
552
|
_ensure_msfdb_initialized(console)
|
|
555
553
|
|
|
556
554
|
# Remind about PATH for pipx/go tools
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
555
|
+
console.print()
|
|
556
|
+
console.print(" [yellow]Important:[/yellow] To use newly installed tools, either:")
|
|
557
|
+
console.print(" 1. Restart your terminal, OR")
|
|
558
|
+
if distro in ('kali', 'parrot'):
|
|
559
|
+
console.print(" 2. Run: [cyan]source ~/.zshrc[/cyan] (Kali uses zsh)")
|
|
560
|
+
else:
|
|
561
561
|
console.print(" 2. Run: [cyan]source ~/.bashrc[/cyan]")
|
|
562
|
-
|
|
562
|
+
console.print()
|
|
563
563
|
|
|
564
564
|
|
|
565
565
|
def _show_tool_status(console):
|
|
@@ -223,9 +223,9 @@ EXTERNAL_TOOLS = {
|
|
|
223
223
|
},
|
|
224
224
|
'dalfox': {
|
|
225
225
|
'command': 'dalfox',
|
|
226
|
-
'install_kali': '
|
|
227
|
-
'install_ubuntu': '
|
|
228
|
-
'install_method': '
|
|
226
|
+
'install_kali': 'go install github.com/hahwul/dalfox/v2@latest',
|
|
227
|
+
'install_ubuntu': 'go install github.com/hahwul/dalfox/v2@latest',
|
|
228
|
+
'install_method': 'go',
|
|
229
229
|
'description': 'XSS vulnerability scanner'
|
|
230
230
|
},
|
|
231
231
|
},
|
|
@@ -721,6 +721,7 @@ def check_msfdb_status() -> Dict[str, any]:
|
|
|
721
721
|
- message: str - Human-readable status message
|
|
722
722
|
"""
|
|
723
723
|
import subprocess
|
|
724
|
+
from pathlib import Path
|
|
724
725
|
|
|
725
726
|
result = {
|
|
726
727
|
'initialized': False,
|
|
@@ -734,6 +735,32 @@ def check_msfdb_status() -> Dict[str, any]:
|
|
|
734
735
|
result['message'] = 'msfdb command not found - Metasploit may not be installed'
|
|
735
736
|
return result
|
|
736
737
|
|
|
738
|
+
# Helper to check if PostgreSQL is running
|
|
739
|
+
def check_postgresql_running() -> bool:
|
|
740
|
+
try:
|
|
741
|
+
proc = subprocess.run(
|
|
742
|
+
['systemctl', 'is-active', 'postgresql'],
|
|
743
|
+
capture_output=True,
|
|
744
|
+
text=True,
|
|
745
|
+
timeout=5
|
|
746
|
+
)
|
|
747
|
+
return proc.returncode == 0 and 'active' in proc.stdout.lower()
|
|
748
|
+
except Exception:
|
|
749
|
+
return False
|
|
750
|
+
|
|
751
|
+
# Helper to check system-wide MSF database config (Kali fallback)
|
|
752
|
+
def check_system_config() -> bool:
|
|
753
|
+
"""Check if system-wide database.yml exists with valid PostgreSQL config."""
|
|
754
|
+
config_path = Path('/usr/share/metasploit-framework/config/database.yml')
|
|
755
|
+
if config_path.exists():
|
|
756
|
+
try:
|
|
757
|
+
content = config_path.read_text()
|
|
758
|
+
# Check for PostgreSQL adapter configuration
|
|
759
|
+
return 'adapter: postgresql' in content and 'database: msf' in content
|
|
760
|
+
except Exception:
|
|
761
|
+
return False
|
|
762
|
+
return False
|
|
763
|
+
|
|
737
764
|
try:
|
|
738
765
|
# Run msfdb status
|
|
739
766
|
proc = subprocess.run(
|
|
@@ -743,10 +770,23 @@ def check_msfdb_status() -> Dict[str, any]:
|
|
|
743
770
|
timeout=10
|
|
744
771
|
)
|
|
745
772
|
output = proc.stdout + proc.stderr
|
|
746
|
-
|
|
747
|
-
# Parse output for status indicators
|
|
748
773
|
output_lower = output.lower()
|
|
749
774
|
|
|
775
|
+
# Check if msfdb requires root (common on Kali)
|
|
776
|
+
if 'run as root' in output_lower or (proc.returncode != 0 and 'error' in output_lower):
|
|
777
|
+
# Fall back to checking system config file and PostgreSQL status
|
|
778
|
+
result['running'] = check_postgresql_running()
|
|
779
|
+
if check_system_config():
|
|
780
|
+
result['initialized'] = True
|
|
781
|
+
if result['running']:
|
|
782
|
+
result['connected'] = True
|
|
783
|
+
result['message'] = 'Database initialized and running'
|
|
784
|
+
else:
|
|
785
|
+
result['message'] = 'Database initialized but PostgreSQL not running - run: sudo systemctl start postgresql'
|
|
786
|
+
else:
|
|
787
|
+
result['message'] = 'Need sudo to verify - run: sudo msfdb status'
|
|
788
|
+
return result
|
|
789
|
+
|
|
750
790
|
# Check if database is initialized
|
|
751
791
|
if 'no database' in output_lower or 'not initialized' in output_lower:
|
|
752
792
|
result['message'] = 'Database not initialized - run: msfdb init'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.24.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.
|
|
75
|
+
## Version: 2.24.0
|
|
76
76
|
|
|
77
77
|
### What's Included
|
|
78
78
|
|
|
@@ -127,6 +127,8 @@ pipx ensurepath # Add pipx apps to your PATH
|
|
|
127
127
|
source ~/.bashrc # Reload your shell (or close and reopen terminal)
|
|
128
128
|
```
|
|
129
129
|
|
|
130
|
+
> **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
|
|
131
|
+
|
|
130
132
|
> 💡 **What's pipx?** It's like `apt` but for Python command-line tools. It keeps each tool isolated so they don't conflict with each other.
|
|
131
133
|
|
|
132
134
|
### Step 2: Install SoulEyez
|
|
@@ -297,4 +299,4 @@ Happy hacking! 🛡️
|
|
|
297
299
|
|
|
298
300
|
---
|
|
299
301
|
|
|
300
|
-
**Version**: 2.
|
|
302
|
+
**Version**: 2.24.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = '2.22.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
|