souleyez 2.43.2__tar.gz → 2.43.8__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.43.2/souleyez.egg-info → souleyez-2.43.8}/PKG-INFO +1 -1
- {souleyez-2.43.2 → souleyez-2.43.8}/pyproject.toml +1 -1
- souleyez-2.43.8/souleyez/__init__.py +2 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/README.md +2 -2
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/result_handler.py +24 -1
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/main.py +1 -1
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/engagements.py +6 -2
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/dashboard.py +12 -1
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/interactive.py +55 -11
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/tutorial.py +7 -6
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/utils/tool_checker.py +2 -2
- {souleyez-2.43.2 → souleyez-2.43.8/souleyez.egg-info}/PKG-INFO +1 -1
- souleyez-2.43.2/souleyez/__init__.py +0 -2
- {souleyez-2.43.2 → souleyez-2.43.8}/LICENSE +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/MANIFEST.in +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/README.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/setup.cfg +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/action_mapper.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/chain_advisor.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/claude_provider.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/context_builder.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/executor.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/feedback_handler.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/llm_factory.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/llm_provider.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/ollama_provider.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/ollama_service.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/path_scorer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/recommender.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/report_context.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/report_prompts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/report_service.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/result_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ai/safety.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/assets/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/assets/souleyez-icon.png +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/audit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/engagement_access.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/permissions.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/session_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/auth/user_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/audit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/auth.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/deliverables.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/engagement.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/license.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/screenshots.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/commands/user.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/config.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/credential_tester.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/cve_mappings.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/cve_matcher.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_auto_mapper.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_chain_engine.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_database.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_integration.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_rpc_client.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_rpc_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/msf_sync_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/network_utils.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/parser_handler.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/pending_chains.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/templates.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/tool_chaining.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/version_utils.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/vuln_correlation.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/core/web_utils.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/README.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/active_directory.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/cis_controls_v8.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/cloud_security.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/cmmc_2.0.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/external_network.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/ffiec_cat.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/gdpr_article32.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/glba_safeguards.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/hipaa_security.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/hitrust_csf.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/internal_network.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/iso27001.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/nerc_cip.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/nist_csf.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/owasp_top10_2021.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/pci_dss_4.0.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/ptes_standard.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/red_team.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/soc2_type2.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/templates/webapp_advanced.json +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/README.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/all_users.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/api_endpoints.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/default_credentials.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/macos_users.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/router_passwords.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/router_users.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/soul_pass.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/soul_users.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/subdomains_common.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/top100.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/top20_quick.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/web_extensions.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/data/wordlists/web_files_common.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/detection/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/detection/attack_signatures.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/detection/mitre_mappings.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/detection/validator.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/devtools.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/api-reference/cli-commands.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/api-reference/engagement-api.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/api-reference/integration-guide.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/api-reference/parser-formats.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/architecture/decisions/000-template.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/architecture/overview.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/database/MIGRATIONS.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/database/SCHEMA.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/images/README.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/security/best-practices.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/security/credential-encryption.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/security/password-protected-commands.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/security/secure-defaults.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/security/threat-model.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/ai-integration.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/attack-surface.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/auto-chaining.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/configuration.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/dependencies.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/evidence-vault.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/getting-started.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/installation.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/rbac.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/report-generation.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/scope-management.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/siem-integration.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/tools-reference.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/troubleshooting.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/uninstall.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/worker-management.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/docs/user-guide/workflows.md +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/background.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/base.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/job_status.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/loader.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/log_sanitizer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/engine/worker_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/export/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/export/evidence_bundle.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/feature_flags/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/feature_flags/features.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/feature_flags.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/history.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/importers/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/importers/msf_importer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/importers/smart_importer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/base.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/elastic.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/factory.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/googlesecops.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/sentinel.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/splunk.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/siem/wazuh.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/wazuh/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/wazuh/client.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/wazuh/config.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/wazuh/host_mapper.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/integrations/wazuh/sync.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/correlation_analyzer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/exploit_knowledge.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/exploit_suggestions.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/gap_analyzer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/gap_detector.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/sensitive_tables.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/service_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/surface_analyzer.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/intelligence/target_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/licensing/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/licensing/validator.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/log_config.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/migrations/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/migrations/fix_job_counter.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/bloodhound_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/crackmapexec_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/dalfox_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/dnsrecon_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/enum4linux_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/ffuf_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/gobuster_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/hashcat_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/http_fingerprint_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/hydra_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/impacket_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/john_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/msf_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/nikto_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/nmap_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/nuclei_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/responder_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/searchsploit_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/smbmap_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/sqlmap_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/theharvester_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/whois_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/parsers/wpscan_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/afp.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/afp_brute.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/ard.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/bloodhound.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/crackmapexec.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/dalfox.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/dns_hijack.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/dnsrecon.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/enum4linux.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/ffuf.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/firmware_extract.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/gobuster.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/hashcat.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/http_fingerprint.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/hydra.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/impacket_getnpusers.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/impacket_psexec.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/impacket_secretsdump.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/impacket_smbclient.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/john.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/macos_ssh.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/mdns.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/msf_auxiliary.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/msf_exploit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/nikto.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/nmap.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/nuclei.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/plugin_base.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/plugin_template.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/responder.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/router_http_brute.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/router_ssh_brute.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/router_telnet_brute.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/routersploit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/routersploit_exploit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/searchsploit.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/smbmap.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/sqlmap.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/theharvester.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/tr069.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/upnp.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/upnp_abuse.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/vnc_access.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/vnc_brute.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/whois.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/plugins/wpscan.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/attack_chain.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/charts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/compliance_mappings.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/detection_report.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/formatters.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/generator.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/reporting/metrics.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/scanner.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/security/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/security/scope_validator.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/security/validation.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/security.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/credentials.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/crypto.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/database.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/db.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/deliverable_evidence.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/deliverable_exporter.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/deliverable_templates.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/deliverables.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/evidence.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/execution_log.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/exploit_attempts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/exploits.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/findings.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/hosts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrate_to_engagements.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_005_screenshots.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_006_deliverables.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_026_add_engagement_scope.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/_027_multi_siem_persistence.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/migrations/migration_manager.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/msf_sessions.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/osint.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/recommendation_engine.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/schema.sql +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/screenshots.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/smb_shares.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/sqlmap_data.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/team_collaboration.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/timeline_tracker.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/wazuh_vulns.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/storage/web_paths.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/testing/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/testing/credential_tester.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/ai_quotes.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/attack_surface.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/chain_rules_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/correlation_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/deliverables_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/design_system.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/errors.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/evidence_linking_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/evidence_vault.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/exploit_suggestions_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/export_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/gap_analysis_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/help_system.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/intelligence_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/interactive_selector.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/log_formatter.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/menu_components.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/msf_auxiliary_menu.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/pending_chains_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/progress_indicators.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/recommendations_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/rule_builder.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/setup_wizard.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/shortcuts.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/splunk_vulns_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/team_dashboard.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/template_selector.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/terminal.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/timeline_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/tool_setup.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/tutorial_state.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui/wazuh_vulns_view.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/ui.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/utils/__init__.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/utils.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez/wordlists.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez.egg-info/SOURCES.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez.egg-info/dependency_links.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez.egg-info/entry_points.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez.egg-info/requires.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/souleyez.egg-info/top_level.txt +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_config.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_config_enhanced.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_crypto.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_database_100_final.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_engagements.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_engagements_simple.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_job_status_tracking.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_logging.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_network_utils.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_ollama_service.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_plugin_base.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_recommender.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_result_handler_sqlmap.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_schema.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_scope_integration.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_scope_validator.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_security_hardening.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_security_validation.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_sqlmap_parser.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_storage.py +0 -0
- {souleyez-2.43.2 → souleyez-2.43.8}/tests/test_version_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.43.
|
|
3
|
+
Version: 2.43.8
|
|
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>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SoulEyez Documentation
|
|
2
2
|
|
|
3
|
-
**Version:** 2.43.
|
|
4
|
-
**Last Updated:** January
|
|
3
|
+
**Version:** 2.43.8
|
|
4
|
+
**Last Updated:** January 12, 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.
|
|
@@ -3285,9 +3285,12 @@ def parse_http_fingerprint_job(engagement_id: int, log_path: str, job: Dict[str,
|
|
|
3285
3285
|
# Get tool recommendations
|
|
3286
3286
|
recommendations = get_tool_recommendations(parsed)
|
|
3287
3287
|
|
|
3288
|
-
# Determine status
|
|
3288
|
+
# Determine status and build summary
|
|
3289
|
+
summary_parts = []
|
|
3290
|
+
|
|
3289
3291
|
if parsed.get('error'):
|
|
3290
3292
|
status = STATUS_ERROR
|
|
3293
|
+
summary_parts.append(f"Error: {parsed.get('error')}")
|
|
3291
3294
|
elif parsed.get('managed_hosting') or parsed.get('waf') or parsed.get('cdn'):
|
|
3292
3295
|
status = STATUS_DONE # Found useful info
|
|
3293
3296
|
elif parsed.get('server'):
|
|
@@ -3295,11 +3298,31 @@ def parse_http_fingerprint_job(engagement_id: int, log_path: str, job: Dict[str,
|
|
|
3295
3298
|
else:
|
|
3296
3299
|
status = STATUS_NO_RESULTS
|
|
3297
3300
|
|
|
3301
|
+
# Build summary for successful scans
|
|
3302
|
+
if not parsed.get('error'):
|
|
3303
|
+
if parsed.get('server'):
|
|
3304
|
+
summary_parts.append(f"Server: {parsed.get('server')}")
|
|
3305
|
+
if parsed.get('managed_hosting'):
|
|
3306
|
+
summary_parts.append(f"Platform: {parsed.get('managed_hosting')}")
|
|
3307
|
+
if parsed.get('waf'):
|
|
3308
|
+
summary_parts.append(f"WAF: {', '.join(parsed.get('waf', []))}")
|
|
3309
|
+
if parsed.get('cdn'):
|
|
3310
|
+
summary_parts.append(f"CDN: {', '.join(parsed.get('cdn', []))}")
|
|
3311
|
+
if parsed.get('technologies'):
|
|
3312
|
+
techs = parsed.get('technologies', [])
|
|
3313
|
+
if len(techs) <= 3:
|
|
3314
|
+
summary_parts.append(f"Tech: {', '.join(techs)}")
|
|
3315
|
+
else:
|
|
3316
|
+
summary_parts.append(f"Tech: {', '.join(techs[:3])} +{len(techs)-3} more")
|
|
3317
|
+
|
|
3318
|
+
summary = ' | '.join(summary_parts) if summary_parts else 'No fingerprint data detected'
|
|
3319
|
+
|
|
3298
3320
|
return {
|
|
3299
3321
|
'tool': 'http_fingerprint',
|
|
3300
3322
|
'status': status,
|
|
3301
3323
|
'target': target,
|
|
3302
3324
|
'target_host': target_host,
|
|
3325
|
+
'summary': summary,
|
|
3303
3326
|
# Core fingerprint data
|
|
3304
3327
|
'server': parsed.get('server'),
|
|
3305
3328
|
'managed_hosting': parsed.get('managed_hosting'),
|
|
@@ -173,7 +173,7 @@ def _check_privileged_tools():
|
|
|
173
173
|
|
|
174
174
|
|
|
175
175
|
@click.group()
|
|
176
|
-
@click.version_option(version='2.43.
|
|
176
|
+
@click.version_option(version='2.43.8')
|
|
177
177
|
def cli():
|
|
178
178
|
"""SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
|
|
179
179
|
from souleyez.log_config import init_logging
|
|
@@ -125,8 +125,12 @@ class EngagementManager:
|
|
|
125
125
|
# File contains invalid data, reset to default
|
|
126
126
|
pass
|
|
127
127
|
|
|
128
|
-
# Reset to default engagement
|
|
129
|
-
|
|
128
|
+
# Reset to default engagement - use existing or create new
|
|
129
|
+
default_eng = self.get("default")
|
|
130
|
+
if default_eng:
|
|
131
|
+
default_id = default_eng['id']
|
|
132
|
+
else:
|
|
133
|
+
default_id = self.create("default", "Default engagement")
|
|
130
134
|
self.set_current("default")
|
|
131
135
|
return self.get_by_id(default_id)
|
|
132
136
|
|
|
@@ -1392,9 +1392,20 @@ def render_active_jobs(width: int, engagement_id: Optional[int] = None):
|
|
|
1392
1392
|
if engagement_id is not None and job_eng_id != engagement_id:
|
|
1393
1393
|
warning = click.style(" [!other]", fg='red')
|
|
1394
1394
|
|
|
1395
|
-
|
|
1395
|
+
# Check for scope warnings
|
|
1396
|
+
job_warnings = job.get('metadata', {}).get('warnings', [])
|
|
1397
|
+
scope_warning = any('SCOPE' in w for w in job_warnings)
|
|
1398
|
+
scope_indicator = click.style("⚠ ", fg='yellow') if scope_warning else ""
|
|
1399
|
+
|
|
1400
|
+
job_line = f" [{jid:>3}] {scope_indicator}{tool:<10} {target:<30} {status_str:<18} {elapsed}{warning}"
|
|
1396
1401
|
lines.append(job_line)
|
|
1397
1402
|
|
|
1403
|
+
# Show scope warning details on next line if present
|
|
1404
|
+
if scope_warning:
|
|
1405
|
+
for w in job_warnings:
|
|
1406
|
+
if 'SCOPE' in w:
|
|
1407
|
+
lines.append(click.style(f" └─ {w}", fg='yellow'))
|
|
1408
|
+
|
|
1398
1409
|
return lines
|
|
1399
1410
|
|
|
1400
1411
|
|
|
@@ -17,6 +17,7 @@ from rich.table import Table
|
|
|
17
17
|
from souleyez.ui.design_system import DesignSystem
|
|
18
18
|
from souleyez.engine.loader import discover_plugins
|
|
19
19
|
from souleyez.engine.background import enqueue_job, list_jobs, get_job
|
|
20
|
+
from souleyez.security.scope_validator import ScopeViolationError
|
|
20
21
|
from souleyez.storage.engagements import EngagementManager
|
|
21
22
|
from souleyez.storage.hosts import HostManager
|
|
22
23
|
from souleyez.storage.findings import FindingsManager
|
|
@@ -3955,19 +3956,29 @@ def launch_job(job_params: Dict[str, Any]) -> Optional[int]:
|
|
|
3955
3956
|
click.echo()
|
|
3956
3957
|
|
|
3957
3958
|
job_ids = []
|
|
3959
|
+
blocked_targets = []
|
|
3958
3960
|
for t in targets:
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3961
|
+
try:
|
|
3962
|
+
job_id = enqueue_job(
|
|
3963
|
+
tool=tool_name,
|
|
3964
|
+
target=t,
|
|
3965
|
+
args=args,
|
|
3966
|
+
label=label,
|
|
3967
|
+
metadata=metadata if metadata else None
|
|
3968
|
+
)
|
|
3969
|
+
job_ids.append(job_id)
|
|
3970
|
+
click.echo(click.style(f"✓ Job #{job_id} enqueued for {t}", fg='green'))
|
|
3971
|
+
except ScopeViolationError:
|
|
3972
|
+
blocked_targets.append(t)
|
|
3973
|
+
click.echo(click.style(f"✗ BLOCKED (out of scope): {t}", fg='red', bold=True))
|
|
3968
3974
|
|
|
3969
3975
|
click.echo()
|
|
3970
|
-
|
|
3976
|
+
if blocked_targets:
|
|
3977
|
+
click.echo(click.style(f"⚠ {len(blocked_targets)} targets blocked (out of scope)", fg='yellow', bold=True))
|
|
3978
|
+
if job_ids:
|
|
3979
|
+
click.echo(click.style(f"✓ {len(job_ids)} jobs enqueued successfully!", fg='green', bold=True))
|
|
3980
|
+
else:
|
|
3981
|
+
click.echo(click.style("✗ No jobs created - all targets blocked", fg='red', bold=True))
|
|
3971
3982
|
click.echo(f"Tool: {tool_name}")
|
|
3972
3983
|
if label:
|
|
3973
3984
|
click.echo(f"Label: {label}")
|
|
@@ -3998,6 +4009,15 @@ def launch_job(job_params: Dict[str, Any]) -> Optional[int]:
|
|
|
3998
4009
|
|
|
3999
4010
|
return job_id # Return the job_id
|
|
4000
4011
|
|
|
4012
|
+
except ScopeViolationError as e:
|
|
4013
|
+
click.echo()
|
|
4014
|
+
click.echo(click.style("✗ JOB BLOCKED - OUT OF SCOPE", fg='red', bold=True))
|
|
4015
|
+
click.echo(click.style(f" Target: {job_params.get('target', 'unknown')}", fg='red'))
|
|
4016
|
+
click.echo(click.style(f" Reason: {e}", fg='yellow'))
|
|
4017
|
+
click.echo()
|
|
4018
|
+
click.echo(click.style(" Scope enforcement is set to 'block' for this engagement.", fg='cyan'))
|
|
4019
|
+
click.echo(click.style(" Use 'souleyez scope' to view or modify scope settings.", fg='cyan'))
|
|
4020
|
+
return None
|
|
4001
4021
|
except Exception as e:
|
|
4002
4022
|
click.echo(click.style(f"✗ Error enqueueing job: {e}", fg='red'))
|
|
4003
4023
|
return None
|
|
@@ -4599,6 +4619,12 @@ def view_jobs_menu():
|
|
|
4599
4619
|
rule_id = job.get('rule_id') or job.get('metadata', {}).get('rule_id')
|
|
4600
4620
|
rule_display = f"#{rule_id}" if rule_id else '-'
|
|
4601
4621
|
|
|
4622
|
+
# Check for scope warnings
|
|
4623
|
+
job_warnings = job.get('metadata', {}).get('warnings', [])
|
|
4624
|
+
scope_warning = any('SCOPE' in w for w in job_warnings)
|
|
4625
|
+
if scope_warning:
|
|
4626
|
+
target = f"[yellow]⚠[/yellow] {target}"
|
|
4627
|
+
|
|
4602
4628
|
# Checkbox based on selection
|
|
4603
4629
|
checkbox = '●' if job_id_int in selected_jobs else '○'
|
|
4604
4630
|
table.add_row(checkbox, jid, status_display, tool, target, label, parent_display, rule_display)
|
|
@@ -5048,6 +5074,7 @@ def _view_ai_suggestions(engagement_id: int):
|
|
|
5048
5074
|
# Accept all suggestions
|
|
5049
5075
|
if click.confirm(f" Queue all {len(suggestions)} AI suggestions?", default=True):
|
|
5050
5076
|
queued = 0
|
|
5077
|
+
blocked = 0
|
|
5051
5078
|
for sug in suggestions:
|
|
5052
5079
|
try:
|
|
5053
5080
|
job_id = enqueue_job(
|
|
@@ -5059,12 +5086,17 @@ def _view_ai_suggestions(engagement_id: int):
|
|
|
5059
5086
|
)
|
|
5060
5087
|
if job_id:
|
|
5061
5088
|
queued += 1
|
|
5089
|
+
except ScopeViolationError:
|
|
5090
|
+
blocked += 1
|
|
5091
|
+
click.echo(click.style(f" ✗ BLOCKED: {sug['target']} (out of scope)", fg='red'))
|
|
5062
5092
|
except Exception as e:
|
|
5063
5093
|
pass
|
|
5064
5094
|
|
|
5065
5095
|
# Mark all as approved
|
|
5066
5096
|
_mark_suggestions_approved(engagement_id, [s for s in suggestions])
|
|
5067
|
-
|
|
5097
|
+
if blocked:
|
|
5098
|
+
click.echo(click.style(f"\n ⚠ {blocked} job(s) blocked (out of scope)", fg='yellow'))
|
|
5099
|
+
click.echo(click.style(f" ✓ Queued {queued} job(s)", fg='green'))
|
|
5068
5100
|
click.pause()
|
|
5069
5101
|
return
|
|
5070
5102
|
continue
|
|
@@ -5147,6 +5179,11 @@ def _view_suggestion_detail(engagement_id: int, suggestion: dict, all_suggestion
|
|
|
5147
5179
|
)
|
|
5148
5180
|
_mark_suggestions_approved(engagement_id, [suggestion])
|
|
5149
5181
|
click.echo(click.style(f"\n ✓ Queued job #{job_id}", fg='green'))
|
|
5182
|
+
except ScopeViolationError as e:
|
|
5183
|
+
click.echo()
|
|
5184
|
+
click.echo(click.style(" ✗ JOB BLOCKED - OUT OF SCOPE", fg='red', bold=True))
|
|
5185
|
+
click.echo(click.style(f" Target: {suggestion['target']}", fg='red'))
|
|
5186
|
+
click.echo(click.style(f" Reason: {e}", fg='yellow'))
|
|
5150
5187
|
except Exception as e:
|
|
5151
5188
|
click.echo(click.style(f"\n ✗ Failed to queue: {e}", fg='red'))
|
|
5152
5189
|
click.pause()
|
|
@@ -5435,6 +5472,13 @@ def view_job_detail(job_id: int):
|
|
|
5435
5472
|
else:
|
|
5436
5473
|
click.echo(f"Reason: Manual (created by user)")
|
|
5437
5474
|
|
|
5475
|
+
# Show scope warnings if any
|
|
5476
|
+
warnings = metadata.get('warnings', [])
|
|
5477
|
+
if warnings:
|
|
5478
|
+
click.echo()
|
|
5479
|
+
for warning in warnings:
|
|
5480
|
+
click.echo(click.style(f" ⚠ {warning}", fg='yellow', bold=True))
|
|
5481
|
+
|
|
5438
5482
|
if job.get('pid'):
|
|
5439
5483
|
click.echo(f"PID: {click.style(str(job['pid']), fg='cyan')}")
|
|
5440
5484
|
|
|
@@ -355,14 +355,15 @@ def _cleanup_tutorial_data():
|
|
|
355
355
|
except Exception:
|
|
356
356
|
pass
|
|
357
357
|
|
|
358
|
-
#
|
|
358
|
+
# Reset current engagement BEFORE deleting tutorial engagement
|
|
359
|
+
# (otherwise get_current() will fail trying to load deleted engagement)
|
|
359
360
|
if tutorial_eng:
|
|
360
|
-
em.
|
|
361
|
+
current = em.get_current()
|
|
362
|
+
if current and current.get('id') == tutorial_eng['id']:
|
|
363
|
+
em.set_current("default")
|
|
361
364
|
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
if current and current.get('name') == 'Tutorial Engagement':
|
|
365
|
-
em.set_current(None)
|
|
365
|
+
# Now safe to delete the tutorial engagement
|
|
366
|
+
em.delete("Tutorial Engagement")
|
|
366
367
|
|
|
367
368
|
except Exception as e:
|
|
368
369
|
click.echo(click.style(f" Note: Could not fully clean up: {e}", fg='yellow'))
|
|
@@ -320,8 +320,8 @@ EXTERNAL_TOOLS = {
|
|
|
320
320
|
},
|
|
321
321
|
'responder': {
|
|
322
322
|
'command': 'responder',
|
|
323
|
-
'install_kali': 'sudo apt install responder && sudo pip install aioquic',
|
|
324
|
-
'install_ubuntu': 'sudo git clone https://github.com/lgandx/Responder.git /opt/Responder && sudo pip install -r /opt/Responder/requirements.txt aioquic && sudo ln -sf /opt/Responder/Responder.py /usr/local/bin/responder',
|
|
323
|
+
'install_kali': 'sudo apt install responder && sudo pip install --break-system-packages --ignore-installed aioquic',
|
|
324
|
+
'install_ubuntu': 'sudo git clone https://github.com/lgandx/Responder.git /opt/Responder && sudo pip install --break-system-packages --ignore-installed -r /opt/Responder/requirements.txt aioquic && sudo ln -sf /opt/Responder/Responder.py /usr/local/bin/responder',
|
|
325
325
|
'install_method': 'kali_only',
|
|
326
326
|
'description': 'LLMNR, NBT-NS and MDNS poisoner',
|
|
327
327
|
'needs_sudo': True # Required for network poisoning
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.43.
|
|
3
|
+
Version: 2.43.8
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.43.2 → souleyez-2.43.8}/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
|