souleyez 2.23.0__tar.gz → 2.31.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.
Potentially problematic release.
This version of souleyez might be problematic. Click here for more details.
- {souleyez-2.23.0 → souleyez-2.31.0}/BETA_README.md +19 -2
- {souleyez-2.23.0/souleyez.egg-info → souleyez-2.31.0}/PKG-INFO +20 -3
- {souleyez-2.23.0 → souleyez-2.31.0}/README.md +6 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/pyproject.toml +2 -2
- souleyez-2.31.0/souleyez/__init__.py +1 -0
- souleyez-2.31.0/souleyez/assets/__init__.py +1 -0
- souleyez-2.31.0/souleyez/assets/souleyez-icon.png +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_sync_manager.py +15 -5
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/tool_chaining.py +186 -42
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/README.md +2 -2
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/configuration.md +1 -1
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/installation.md +11 -0
- souleyez-2.31.0/souleyez/docs/user-guide/scope-management.md +683 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/background.py +658 -155
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/result_handler.py +429 -11
- souleyez-2.31.0/souleyez/engine/worker_manager.py +205 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/main.py +324 -4
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/crackmapexec_parser.py +101 -43
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/dnsrecon_parser.py +50 -35
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/enum4linux_parser.py +101 -21
- souleyez-2.31.0/souleyez/parsers/http_fingerprint_parser.py +319 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/hydra_parser.py +56 -5
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/impacket_parser.py +123 -44
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/john_parser.py +47 -14
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/msf_parser.py +20 -5
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/nmap_parser.py +48 -27
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/smbmap_parser.py +39 -23
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/sqlmap_parser.py +18 -9
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/theharvester_parser.py +21 -13
- souleyez-2.31.0/souleyez/plugins/http_fingerprint.py +598 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/nuclei.py +43 -18
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/searchsploit.py +21 -18
- souleyez-2.31.0/souleyez/security/scope_validator.py +615 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/database.py +59 -20
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/hosts.py +87 -2
- souleyez-2.31.0/souleyez/storage/migrations/_026_add_engagement_scope.py +87 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/__init__.py +4 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/schema.sql +36 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/interactive.py +865 -224
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/setup_wizard.py +71 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/tool_setup.py +3 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/utils/tool_checker.py +42 -2
- {souleyez-2.23.0 → souleyez-2.31.0/souleyez.egg-info}/PKG-INFO +20 -3
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez.egg-info/SOURCES.txt +9 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_config.py +10 -1
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_result_handler_sqlmap.py +11 -4
- souleyez-2.31.0/tests/test_scope_integration.py +855 -0
- souleyez-2.31.0/tests/test_scope_validator.py +416 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_storage.py +5 -4
- souleyez-2.23.0/souleyez/__init__.py +0 -1
- souleyez-2.23.0/souleyez/engine/worker_manager.py +0 -109
- {souleyez-2.23.0 → souleyez-2.31.0}/LICENSE +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/MANIFEST.in +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/setup.cfg +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/action_mapper.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/chain_advisor.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/claude_provider.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/context_builder.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/executor.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/feedback_handler.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/llm_factory.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/llm_provider.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/ollama_provider.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/ollama_service.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/path_scorer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/recommender.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/report_context.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/report_prompts.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/report_service.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/result_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ai/safety.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/audit.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/engagement_access.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/permissions.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/session_manager.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/auth/user_manager.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/audit.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/auth.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/deliverables.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/engagement.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/license.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/screenshots.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/commands/user.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/config.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/credential_tester.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/cve_mappings.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/cve_matcher.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_auto_mapper.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_chain_engine.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_database.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_integration.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_rpc_client.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/msf_rpc_manager.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/network_utils.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/parser_handler.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/pending_chains.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/templates.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/version_utils.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/vuln_correlation.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/core/web_utils.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/README.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/active_directory.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/cis_controls_v8.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/cloud_security.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/cmmc_2.0.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/external_network.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/ffiec_cat.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/gdpr_article32.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/glba_safeguards.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/hipaa_security.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/hitrust_csf.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/internal_network.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/iso27001.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/nerc_cip.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/nist_csf.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/owasp_top10_2021.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/pci_dss_4.0.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/ptes_standard.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/red_team.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/soc2_type2.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/templates/webapp_advanced.json +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/README.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/all_users.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/api_endpoints.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/default_credentials.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/macos_users.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/router_passwords.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/router_users.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/soul_pass.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/soul_users.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/subdomains_common.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/top100.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/top20_quick.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/vnc_passwords.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/web_dirs_common.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/web_extensions.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/data/wordlists/web_files_common.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/detection/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/detection/attack_signatures.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/detection/mitre_mappings.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/detection/validator.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/devtools.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/api-reference/cli-commands.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/api-reference/engagement-api.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/api-reference/integration-guide.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/api-reference/parser-formats.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/architecture/decisions/000-template.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/architecture/decisions/002-master-password-approach.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/architecture/decisions/003-database-schema-design.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/architecture/overview.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/database/MIGRATIONS.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/database/SCHEMA.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/database/SCHEMA_ERD.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/developer-guide/test_coverage_plan.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/developer-guide/ui-design-system.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/images/README.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/security/best-practices.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/security/credential-encryption.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/security/password-protected-commands.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/security/secure-defaults.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/security/threat-model.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/ai-integration.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/attack-surface.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/auto-chaining.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/deliverables-screenshots.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/dependencies.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/evidence-vault.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/exploit-suggestions.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/getting-started.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/metasploit-integration.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/rbac.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/report-generation.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/siem-integration.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/tools-reference.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/troubleshooting.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/uninstall.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/worker-management.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/docs/user-guide/workflows.md +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/base.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/job_status.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/loader.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/log_sanitizer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/engine/manager.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/export/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/export/evidence_bundle.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/feature_flags/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/feature_flags/features.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/feature_flags.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/history.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/importers/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/importers/msf_importer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/importers/smart_importer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/base.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/elastic.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/factory.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/rule_mappings/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/rule_mappings/wazuh_rules.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/sentinel.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/splunk.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/siem/wazuh.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/wazuh/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/wazuh/client.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/wazuh/config.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/wazuh/host_mapper.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/integrations/wazuh/sync.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/correlation_analyzer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/exploit_knowledge.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/exploit_suggestions.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/gap_analyzer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/gap_detector.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/sensitive_tables.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/service_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/surface_analyzer.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/intelligence/target_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/licensing/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/licensing/validator.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/log_config.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/migrations/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/migrations/fix_job_counter.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/bloodhound_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/dalfox_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/ffuf_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/gobuster_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/hashcat_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/nikto_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/nuclei_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/responder_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/searchsploit_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/whois_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/parsers/wpscan_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/afp.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/afp_brute.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/ard.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/bloodhound.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/crackmapexec.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/dalfox.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/dns_hijack.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/dnsrecon.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/enum4linux.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/ffuf.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/firmware_extract.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/gobuster.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/hashcat.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/hydra.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/impacket_getnpusers.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/impacket_psexec.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/impacket_secretsdump.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/impacket_smbclient.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/john.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/macos_ssh.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/mdns.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/msf_auxiliary.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/msf_exploit.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/nikto.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/nmap.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/plugin_base.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/plugin_template.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/responder.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/router_http_brute.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/router_ssh_brute.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/router_telnet_brute.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/routersploit.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/routersploit_exploit.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/smbmap.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/sqlmap.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/theharvester.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/tr069.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/upnp.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/upnp_abuse.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/vnc_access.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/vnc_brute.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/whois.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/plugins/wpscan.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/attack_chain.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/charts.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/compliance_mappings.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/detection_report.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/formatters.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/generator.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/reporting/metrics.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/scanner.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/security/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/security/validation.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/security.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/credentials.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/crypto.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/db.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/deliverable_evidence.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/deliverable_exporter.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/deliverable_templates.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/deliverables.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/engagements.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/evidence.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/execution_log.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/exploit_attempts.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/exploits.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/findings.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrate_to_engagements.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_001_add_credential_enhancements.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_002_add_status_tracking.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_003_add_execution_log.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_005_screenshots.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_006_deliverables.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_007_deliverable_templates.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_008_add_nuclei_table.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_009_add_cme_tables.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_010_evidence_linking.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_011_timeline_tracking.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_012_team_collaboration.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_013_add_host_tags.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_014_exploit_attempts.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_015_add_mac_os_fields.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_016_add_domain_field.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_017_msf_sessions.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_018_add_osint_target.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_019_add_engagement_type.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_020_add_rbac.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_021_wazuh_integration.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_022_wazuh_indexer_columns.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_023_fix_detection_results_fk.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/_025_multi_siem_support.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/migrations/migration_manager.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/msf_sessions.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/osint.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/recommendation_engine.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/screenshots.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/smb_shares.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/sqlmap_data.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/team_collaboration.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/timeline_tracker.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/wazuh_vulns.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/storage/web_paths.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/testing/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/testing/credential_tester.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/ai_quotes.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/attack_surface.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/chain_rules_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/correlation_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/dashboard.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/deliverables_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/design_system.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/errors.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/evidence_linking_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/evidence_vault.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/exploit_suggestions_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/export_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/gap_analysis_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/help_system.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/intelligence_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/interactive_selector.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/log_formatter.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/menu_components.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/msf_auxiliary_menu.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/pending_chains_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/progress_indicators.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/recommendations_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/rule_builder.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/shortcuts.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/splunk_gap_analysis_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/splunk_vulns_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/team_dashboard.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/template_selector.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/terminal.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/timeline_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/tutorial.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/tutorial_state.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui/wazuh_vulns_view.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/ui.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/utils/__init__.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/utils.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez/wordlists.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez.egg-info/dependency_links.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez.egg-info/entry_points.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez.egg-info/requires.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/souleyez.egg-info/top_level.txt +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_config_enhanced.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_crypto.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_database_100_final.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_engagements.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_engagements_simple.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_job_status_tracking.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_logging.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_network_utils.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_ollama_service.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_plugin_base.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_recommender.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_schema.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_security_hardening.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_security_validation.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_sqlmap_parser.py +0 -0
- {souleyez-2.23.0 → souleyez-2.31.0}/tests/test_version_utils.py +0 -0
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# SoulEyez Beta Program
|
|
2
2
|
|
|
3
|
+
[](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
|
|
4
|
+
[](https://codecov.io/gh/cyber-soul-security/souleyez)
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](https://github.com/psf/black)
|
|
7
|
+
[](https://github.com/PyCQA/bandit)
|
|
8
|
+
|
|
3
9
|
Welcome to the SoulEyez beta! Thank you for helping us test and improve this penetration testing management platform.
|
|
4
10
|
|
|
5
11
|
---
|
|
@@ -21,7 +27,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
21
27
|
|
|
22
28
|
> ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
|
|
23
29
|
|
|
24
|
-
## Version: 2.
|
|
30
|
+
## Version: 2.31.0
|
|
25
31
|
|
|
26
32
|
### What's Included
|
|
27
33
|
|
|
@@ -59,6 +65,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
59
65
|
- **Python**: 3.8 or newer
|
|
60
66
|
- **Storage**: ~500MB for SoulEyez + tools
|
|
61
67
|
|
|
68
|
+
> **🐉 Kali Linux Recommended**
|
|
69
|
+
>
|
|
70
|
+
> SoulEyez performs significantly better on **Kali Linux** than other distributions:
|
|
71
|
+
> - All pentesting tools pre-installed and optimized
|
|
72
|
+
> - Metasploit database and RPC already configured
|
|
73
|
+
> - Security-focused kernel and networking stack
|
|
74
|
+
> - No dependency hunting or version conflicts
|
|
75
|
+
> - Wordlists, databases, and tool configs ready to go
|
|
76
|
+
>
|
|
77
|
+
> While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
|
|
78
|
+
|
|
62
79
|
### Known Issues
|
|
63
80
|
|
|
64
81
|
- Very large scan outputs (>10MB) may slow the interface
|
|
@@ -248,4 +265,4 @@ Happy hacking! 🛡️
|
|
|
248
265
|
|
|
249
266
|
---
|
|
250
267
|
|
|
251
|
-
**Version**: 2.
|
|
268
|
+
**Version**: 2.31.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.31.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>
|
|
@@ -51,6 +51,12 @@ Dynamic: license-file
|
|
|
51
51
|
|
|
52
52
|
# SoulEyez Beta Program
|
|
53
53
|
|
|
54
|
+
[](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
|
|
55
|
+
[](https://codecov.io/gh/cyber-soul-security/souleyez)
|
|
56
|
+
[](https://www.python.org/downloads/)
|
|
57
|
+
[](https://github.com/psf/black)
|
|
58
|
+
[](https://github.com/PyCQA/bandit)
|
|
59
|
+
|
|
54
60
|
Welcome to the SoulEyez beta! Thank you for helping us test and improve this penetration testing management platform.
|
|
55
61
|
|
|
56
62
|
---
|
|
@@ -72,7 +78,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
72
78
|
|
|
73
79
|
> ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
|
|
74
80
|
|
|
75
|
-
## Version: 2.
|
|
81
|
+
## Version: 2.31.0
|
|
76
82
|
|
|
77
83
|
### What's Included
|
|
78
84
|
|
|
@@ -110,6 +116,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
|
|
|
110
116
|
- **Python**: 3.8 or newer
|
|
111
117
|
- **Storage**: ~500MB for SoulEyez + tools
|
|
112
118
|
|
|
119
|
+
> **🐉 Kali Linux Recommended**
|
|
120
|
+
>
|
|
121
|
+
> SoulEyez performs significantly better on **Kali Linux** than other distributions:
|
|
122
|
+
> - All pentesting tools pre-installed and optimized
|
|
123
|
+
> - Metasploit database and RPC already configured
|
|
124
|
+
> - Security-focused kernel and networking stack
|
|
125
|
+
> - No dependency hunting or version conflicts
|
|
126
|
+
> - Wordlists, databases, and tool configs ready to go
|
|
127
|
+
>
|
|
128
|
+
> While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
|
|
129
|
+
|
|
113
130
|
### Known Issues
|
|
114
131
|
|
|
115
132
|
- Very large scan outputs (>10MB) may slow the interface
|
|
@@ -299,4 +316,4 @@ Happy hacking! 🛡️
|
|
|
299
316
|
|
|
300
317
|
---
|
|
301
318
|
|
|
302
|
-
**Version**: 2.
|
|
319
|
+
**Version**: 2.31.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# SoulEyez — AI-Powered Penetration Testing Platform
|
|
2
2
|
|
|
3
|
+
[](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
|
|
4
|
+
[](https://codecov.io/gh/cyber-soul-security/souleyez)
|
|
5
|
+
[](https://www.python.org/downloads/)
|
|
6
|
+
[](https://github.com/psf/black)
|
|
7
|
+
[](https://github.com/PyCQA/bandit)
|
|
8
|
+
|
|
3
9
|
**LEGAL NOTICE — Use Responsibly**
|
|
4
10
|
Only use SoulEyez on systems you own or have explicit written permission to test.
|
|
5
11
|
Unauthorized scanning or exploitation is illegal. The authors are not responsible for misuse.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "souleyez"
|
|
7
|
-
version = "2.
|
|
7
|
+
version = "2.31.0"
|
|
8
8
|
description = "AI-Powered Penetration Testing Platform with 40+ integrated tools"
|
|
9
9
|
readme = "BETA_README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -71,7 +71,7 @@ include = ["souleyez*"]
|
|
|
71
71
|
exclude = ["tests*", "scripts*", "reports*", "venv*", "debian*"]
|
|
72
72
|
|
|
73
73
|
[tool.setuptools.package-data]
|
|
74
|
-
souleyez = ["docs/**/*.md", "data/wordlists/*.txt", "data/wordlists/*.md", "data/templates/*.json", "data/templates/*.md"]
|
|
74
|
+
souleyez = ["docs/**/*.md", "data/wordlists/*.txt", "data/wordlists/*.md", "data/templates/*.json", "data/templates/*.md", "assets/*.png"]
|
|
75
75
|
|
|
76
76
|
[tool.pytest.ini_options]
|
|
77
77
|
testpaths = ["tests"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = '2.31.0'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# SoulEyez assets package
|
|
Binary file
|
|
@@ -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:
|
|
@@ -15,6 +15,17 @@ CATEGORY_CTF = "ctf" # Lab/learning scenarios - vulnerable by design
|
|
|
15
15
|
CATEGORY_ENTERPRISE = "enterprise" # Real-world enterprise testing
|
|
16
16
|
CATEGORY_GENERAL = "general" # Standard recon that applies everywhere
|
|
17
17
|
|
|
18
|
+
# Managed hosting platforms - skip CGI enumeration (pointless on these)
|
|
19
|
+
# These are detected from server headers/banners and product names
|
|
20
|
+
MANAGED_HOSTING_PLATFORMS = {
|
|
21
|
+
'squarespace', 'wix', 'shopify', 'webflow', 'weebly',
|
|
22
|
+
'wordpress.com', 'ghost.io', 'medium', 'tumblr', 'blogger',
|
|
23
|
+
'netlify', 'vercel', 'github.io', 'pages.dev', 'cloudflare',
|
|
24
|
+
'heroku', 'railway', 'render.com', 'fly.io',
|
|
25
|
+
'aws cloudfront', 'akamai', 'fastly', 'cloudflare',
|
|
26
|
+
'azure', 'google cloud', 'firebase',
|
|
27
|
+
}
|
|
28
|
+
|
|
18
29
|
# Category display icons
|
|
19
30
|
CATEGORY_ICONS = {
|
|
20
31
|
CATEGORY_CTF: "🎯",
|
|
@@ -140,6 +151,75 @@ def classify_os_device(os_string: str, services: list) -> dict:
|
|
|
140
151
|
return {'os_family': 'unknown', 'device_type': 'unknown', 'vendor': None}
|
|
141
152
|
|
|
142
153
|
|
|
154
|
+
def is_managed_hosting(services: List[Dict[str, Any]], http_fingerprint: Dict[str, Any] = None) -> bool:
|
|
155
|
+
"""
|
|
156
|
+
Detect if target is a managed hosting platform.
|
|
157
|
+
|
|
158
|
+
These platforms don't have CGI directories, so tools like nikto
|
|
159
|
+
should skip CGI enumeration to avoid long, pointless scans.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
services: List of service dicts from nmap parser
|
|
163
|
+
http_fingerprint: Optional fingerprint data from http_fingerprint plugin
|
|
164
|
+
|
|
165
|
+
Returns:
|
|
166
|
+
True if managed hosting detected, False otherwise
|
|
167
|
+
"""
|
|
168
|
+
# Check fingerprint data first (most reliable, comes from actual HTTP headers)
|
|
169
|
+
if http_fingerprint:
|
|
170
|
+
managed = http_fingerprint.get('managed_hosting')
|
|
171
|
+
if managed:
|
|
172
|
+
return True
|
|
173
|
+
|
|
174
|
+
# Fall back to checking services data (less reliable, from nmap banners)
|
|
175
|
+
for service in services:
|
|
176
|
+
# Check product field
|
|
177
|
+
product = (service.get('product') or '').lower()
|
|
178
|
+
raw_version = (service.get('raw_version') or '').lower()
|
|
179
|
+
service_name = (service.get('service') or '').lower()
|
|
180
|
+
|
|
181
|
+
# Combine all fields for matching
|
|
182
|
+
combined = f"{product} {raw_version} {service_name}"
|
|
183
|
+
|
|
184
|
+
# Check against known managed hosting platforms
|
|
185
|
+
for platform in MANAGED_HOSTING_PLATFORMS:
|
|
186
|
+
if platform in combined:
|
|
187
|
+
return True
|
|
188
|
+
|
|
189
|
+
return False
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def get_managed_hosting_platform(services: List[Dict[str, Any]], http_fingerprint: Dict[str, Any] = None) -> Optional[str]:
|
|
193
|
+
"""
|
|
194
|
+
Get the name of the managed hosting platform if detected.
|
|
195
|
+
|
|
196
|
+
Args:
|
|
197
|
+
services: List of service dicts from nmap parser
|
|
198
|
+
http_fingerprint: Optional fingerprint data from http_fingerprint plugin
|
|
199
|
+
|
|
200
|
+
Returns:
|
|
201
|
+
Platform name or None
|
|
202
|
+
"""
|
|
203
|
+
# Check fingerprint data first
|
|
204
|
+
if http_fingerprint:
|
|
205
|
+
managed = http_fingerprint.get('managed_hosting')
|
|
206
|
+
if managed:
|
|
207
|
+
return managed
|
|
208
|
+
|
|
209
|
+
# Fall back to services check
|
|
210
|
+
for service in services:
|
|
211
|
+
product = (service.get('product') or '').lower()
|
|
212
|
+
raw_version = (service.get('raw_version') or '').lower()
|
|
213
|
+
service_name = (service.get('service') or '').lower()
|
|
214
|
+
combined = f"{product} {raw_version} {service_name}"
|
|
215
|
+
|
|
216
|
+
for platform in MANAGED_HOSTING_PLATFORMS:
|
|
217
|
+
if platform in combined:
|
|
218
|
+
return platform.title()
|
|
219
|
+
|
|
220
|
+
return None
|
|
221
|
+
|
|
222
|
+
|
|
143
223
|
# Technology to Nuclei tags mapping
|
|
144
224
|
# Maps detected products/technologies to relevant nuclei template tags
|
|
145
225
|
TECH_TO_NUCLEI_TAGS = {
|
|
@@ -511,6 +591,23 @@ class ChainRule:
|
|
|
511
591
|
if svc_port in group.get('ports', []):
|
|
512
592
|
port = str(svc_port)
|
|
513
593
|
break
|
|
594
|
+
elif 'has:services' in self.trigger_condition:
|
|
595
|
+
# For has:services condition, extract port from the services array
|
|
596
|
+
# Prioritize HTTP services for web tools (gobuster, nuclei, etc.)
|
|
597
|
+
services = context.get('services', [])
|
|
598
|
+
http_ports = {80, 443, 8080, 8443, 8000, 8888, 3000, 5000}
|
|
599
|
+
|
|
600
|
+
# First pass: look for HTTP service by name or common HTTP ports
|
|
601
|
+
for svc in services:
|
|
602
|
+
svc_name = svc.get('service_name', '').lower()
|
|
603
|
+
svc_port = svc.get('port')
|
|
604
|
+
if svc_name == 'http' or svc_name == 'https' or svc_port in http_ports:
|
|
605
|
+
port = str(svc_port)
|
|
606
|
+
break
|
|
607
|
+
|
|
608
|
+
# Second pass: if no HTTP service, use the first service's port
|
|
609
|
+
if not port and services:
|
|
610
|
+
port = str(services[0].get('port', ''))
|
|
514
611
|
|
|
515
612
|
# Calculate subnet for {subnet} placeholder (e.g., 10.0.0.88 → 10.0.0.0/24)
|
|
516
613
|
subnet = ''
|
|
@@ -575,6 +672,25 @@ class ChainRule:
|
|
|
575
672
|
new_args.append(arg)
|
|
576
673
|
args = new_args
|
|
577
674
|
|
|
675
|
+
# For Nikto: Skip CGI enumeration on managed hosting platforms
|
|
676
|
+
# This prevents long, pointless scans on Squarespace, Wix, etc.
|
|
677
|
+
if self.target_tool == 'nikto':
|
|
678
|
+
services = context.get('services', [])
|
|
679
|
+
http_fingerprint = context.get('http_fingerprint', {})
|
|
680
|
+
if is_managed_hosting(services, http_fingerprint):
|
|
681
|
+
# Add -C none to skip CGI dirs (pointless on managed hosting)
|
|
682
|
+
if '-C' not in str(args):
|
|
683
|
+
args.extend(['-C', 'none'])
|
|
684
|
+
# Add -Tuning x6 to skip remote file inclusion tests
|
|
685
|
+
if '-Tuning' not in str(args):
|
|
686
|
+
args.extend(['-Tuning', 'x6'])
|
|
687
|
+
# Log which platform was detected
|
|
688
|
+
platform = get_managed_hosting_platform(services, http_fingerprint)
|
|
689
|
+
if platform:
|
|
690
|
+
from souleyez.log_config import get_logger
|
|
691
|
+
logger = get_logger(__name__)
|
|
692
|
+
logger.info(f"[FINGERPRINT] Managed hosting detected ({platform}) - nikto using optimized scan config")
|
|
693
|
+
|
|
578
694
|
# For SQLMap with POST injections, add --data if we have POST data
|
|
579
695
|
if self.target_tool == 'sqlmap' and post_data and '--data' not in str(args):
|
|
580
696
|
# Insert --data after -u argument
|
|
@@ -642,32 +758,42 @@ class ToolChaining:
|
|
|
642
758
|
|
|
643
759
|
# Web service discovered → run web scanners
|
|
644
760
|
self.rules.extend([
|
|
645
|
-
#
|
|
646
|
-
#
|
|
761
|
+
# HTTP Fingerprinting - runs FIRST to detect WAF/CDN/managed hosting
|
|
762
|
+
# This enables smarter tool configuration for downstream scanners
|
|
647
763
|
ChainRule(
|
|
648
764
|
trigger_tool='nmap',
|
|
649
765
|
trigger_condition='service:http',
|
|
766
|
+
target_tool='http_fingerprint',
|
|
767
|
+
priority=11, # Highest priority - runs before all other web tools
|
|
768
|
+
args_template=[],
|
|
769
|
+
description='Web server detected, fingerprinting for WAF/CDN/platform detection'
|
|
770
|
+
),
|
|
771
|
+
# Nikto triggered by http_fingerprint (uses fingerprint data for smart config)
|
|
772
|
+
ChainRule(
|
|
773
|
+
trigger_tool='http_fingerprint',
|
|
774
|
+
trigger_condition='has:services',
|
|
775
|
+
target_tool='nikto',
|
|
776
|
+
priority=8,
|
|
777
|
+
args_template=['-nointeractive', '-timeout', '10'],
|
|
778
|
+
description='Fingerprinting complete, scanning for server misconfigurations with Nikto'
|
|
779
|
+
),
|
|
780
|
+
# Nuclei triggered by http_fingerprint
|
|
781
|
+
ChainRule(
|
|
782
|
+
trigger_tool='http_fingerprint',
|
|
783
|
+
trigger_condition='has:services',
|
|
650
784
|
target_tool='nuclei',
|
|
651
785
|
priority=9,
|
|
652
786
|
args_template=['-tags', '{nuclei_tags}', '-severity', 'critical,high', '-rate-limit', '50', '-c', '10', '-timeout', '10'],
|
|
653
|
-
description='
|
|
787
|
+
description='Fingerprinting complete, scanning with Nuclei'
|
|
654
788
|
),
|
|
789
|
+
# Gobuster triggered by http_fingerprint
|
|
655
790
|
ChainRule(
|
|
656
|
-
trigger_tool='
|
|
657
|
-
trigger_condition='
|
|
791
|
+
trigger_tool='http_fingerprint',
|
|
792
|
+
trigger_condition='has:services',
|
|
658
793
|
target_tool='gobuster',
|
|
659
794
|
priority=7,
|
|
660
795
|
args_template=['dir', '-u', 'http://{target}:{port}', '-w', 'data/wordlists/web_dirs_common.txt', '-x', 'js,json,php,asp,aspx,html,txt,bak,old,zip', '--no-error', '--timeout', '30s', '-t', '5', '--delay', '20ms'],
|
|
661
|
-
description='
|
|
662
|
-
),
|
|
663
|
-
# Nikto - web server vulnerability scanner (complements nuclei)
|
|
664
|
-
ChainRule(
|
|
665
|
-
trigger_tool='nmap',
|
|
666
|
-
trigger_condition='service:http',
|
|
667
|
-
target_tool='nikto',
|
|
668
|
-
priority=8,
|
|
669
|
-
args_template=['-nointeractive', '-timeout', '10'],
|
|
670
|
-
description='Web server detected, scanning for server misconfigurations with Nikto'
|
|
796
|
+
description='Fingerprinting complete, discovering directories and files'
|
|
671
797
|
),
|
|
672
798
|
# Dalfox - XSS scanner triggered after gobuster finds pages
|
|
673
799
|
ChainRule(
|
|
@@ -746,17 +872,8 @@ class ToolChaining:
|
|
|
746
872
|
args_template=['-a', '{target}'],
|
|
747
873
|
description='SMB service detected, enumerating shares and users (runs after CrackMapExec)'
|
|
748
874
|
),
|
|
749
|
-
#
|
|
750
|
-
# Use crackmapexec/netexec --shares instead (rule
|
|
751
|
-
ChainRule(
|
|
752
|
-
trigger_tool='nmap',
|
|
753
|
-
trigger_condition='service:smb',
|
|
754
|
-
target_tool='smbmap',
|
|
755
|
-
priority=7,
|
|
756
|
-
enabled=False, # Disabled due to impacket pickling bug
|
|
757
|
-
args_template=['-H', '{target}'],
|
|
758
|
-
description='SMB service detected, mapping shares (DISABLED - use netexec)'
|
|
759
|
-
),
|
|
875
|
+
# NOTE: smbmap removed - has upstream impacket pickling bug on Python 3.13+
|
|
876
|
+
# Use crackmapexec/netexec --shares instead (enum4linux rule above)
|
|
760
877
|
])
|
|
761
878
|
|
|
762
879
|
# Active Directory attacks - smart chaining workflow
|
|
@@ -1642,6 +1759,20 @@ class ToolChaining:
|
|
|
1642
1759
|
)
|
|
1643
1760
|
)
|
|
1644
1761
|
|
|
1762
|
+
# Database Admin → SQLMap (gentler settings for phpMyAdmin/Adminer)
|
|
1763
|
+
# These panels are slow and easily overwhelmed - use single thread and basic tests
|
|
1764
|
+
self.rules.append(
|
|
1765
|
+
ChainRule(
|
|
1766
|
+
trigger_tool='gobuster',
|
|
1767
|
+
trigger_condition='category:database_admin',
|
|
1768
|
+
target_tool='sqlmap',
|
|
1769
|
+
priority=6, # Lower priority than CVE/exploit scans
|
|
1770
|
+
args_template=['-u', '{target}', '--batch', '--forms', '--threads=1', '--time-sec=10',
|
|
1771
|
+
'--level=1', '--risk=1', '--technique=BEU', '--timeout=30'],
|
|
1772
|
+
description='Database admin panel detected, testing login form for SQL injection (low intensity)'
|
|
1773
|
+
)
|
|
1774
|
+
)
|
|
1775
|
+
|
|
1645
1776
|
# WordPress → WPScan enumeration
|
|
1646
1777
|
self.rules.append(
|
|
1647
1778
|
ChainRule(
|
|
@@ -4900,6 +5031,7 @@ class ToolChaining:
|
|
|
4900
5031
|
label=f"Auto-retry: gobuster (wildcard {exclude_length}b)",
|
|
4901
5032
|
engagement_id=engagement_id,
|
|
4902
5033
|
parent_id=job.get('id'),
|
|
5034
|
+
reason=f"Auto-triggered by gobuster: Wildcard response detected, retrying with --exclude-length {exclude_length}",
|
|
4903
5035
|
metadata={'retry_attempt': 1, 'retry_parent_job_id': job.get('id')}
|
|
4904
5036
|
)
|
|
4905
5037
|
|
|
@@ -4999,7 +5131,8 @@ class ToolChaining:
|
|
|
4999
5131
|
args=sqlmap_args,
|
|
5000
5132
|
label=f"Auto-chain: SQLMap testing {endpoint_url}",
|
|
5001
5133
|
engagement_id=engagement_id,
|
|
5002
|
-
parent_id=job.get('id')
|
|
5134
|
+
parent_id=job.get('id'),
|
|
5135
|
+
reason=f"Auto-triggered by ffuf: Database/dynamic endpoint detected ({status_code} response)"
|
|
5003
5136
|
)
|
|
5004
5137
|
|
|
5005
5138
|
job_ids.append(sqlmap_job_id)
|
|
@@ -5027,6 +5160,7 @@ class ToolChaining:
|
|
|
5027
5160
|
label=f"Auto-chain: ffuf recursive {endpoint_url}",
|
|
5028
5161
|
engagement_id=engagement_id,
|
|
5029
5162
|
parent_id=job.get('id'),
|
|
5163
|
+
reason=f"Auto-triggered by ffuf: {status_code} response suggests deeper path, fuzzing recursively",
|
|
5030
5164
|
metadata={'ffuf_depth': current_depth + 1}
|
|
5031
5165
|
)
|
|
5032
5166
|
|
|
@@ -5250,7 +5384,8 @@ class ToolChaining:
|
|
|
5250
5384
|
args=['-m', '18200', '-a', '0', 'data/wordlists/top100.txt'],
|
|
5251
5385
|
label='CRACK_ASREP',
|
|
5252
5386
|
engagement_id=engagement_id,
|
|
5253
|
-
parent_id=job.get('id')
|
|
5387
|
+
parent_id=job.get('id'),
|
|
5388
|
+
reason="Auto-triggered by impacket-getnpusers: AS-REP hash extracted, attempting to crack"
|
|
5254
5389
|
)
|
|
5255
5390
|
|
|
5256
5391
|
job_ids.append(job_id)
|
|
@@ -5295,7 +5430,8 @@ class ToolChaining:
|
|
|
5295
5430
|
args=['-m', '1000', '-a', '0', 'data/wordlists/top100.txt'],
|
|
5296
5431
|
label='CRACK_NTLM',
|
|
5297
5432
|
engagement_id=engagement_id,
|
|
5298
|
-
parent_id=job.get('id')
|
|
5433
|
+
parent_id=job.get('id'),
|
|
5434
|
+
reason="Auto-triggered by impacket-secretsdump: NTLM hash extracted, attempting to crack"
|
|
5299
5435
|
)
|
|
5300
5436
|
|
|
5301
5437
|
job_ids.append(job_id)
|
|
@@ -5335,7 +5471,8 @@ class ToolChaining:
|
|
|
5335
5471
|
args=[cred_str],
|
|
5336
5472
|
label='EXTRACT_CREDS',
|
|
5337
5473
|
engagement_id=engagement_id,
|
|
5338
|
-
parent_id=job.get('id')
|
|
5474
|
+
parent_id=job.get('id'),
|
|
5475
|
+
reason="Auto-triggered by hydra: Valid credentials found, attempting to extract domain secrets"
|
|
5339
5476
|
)
|
|
5340
5477
|
|
|
5341
5478
|
job_ids.append(job_id)
|
|
@@ -5727,18 +5864,25 @@ class ToolChaining:
|
|
|
5727
5864
|
# Auto mode: enqueue immediately
|
|
5728
5865
|
print(f" 🔗 Chaining {cmd['tool']} for {cmd_target}: {cmd['reason']}")
|
|
5729
5866
|
# enqueue_job will acquire _lock again (nested lock is safe - same thread)
|
|
5730
|
-
|
|
5731
|
-
|
|
5732
|
-
|
|
5733
|
-
|
|
5734
|
-
|
|
5735
|
-
|
|
5736
|
-
|
|
5737
|
-
|
|
5738
|
-
|
|
5739
|
-
|
|
5740
|
-
|
|
5741
|
-
|
|
5867
|
+
try:
|
|
5868
|
+
job_id = enqueue_job(
|
|
5869
|
+
tool=cmd['tool'],
|
|
5870
|
+
target=cmd_target,
|
|
5871
|
+
args=resolved_args,
|
|
5872
|
+
label=source_tool,
|
|
5873
|
+
engagement_id=engagement_id,
|
|
5874
|
+
parent_id=parent_job_id,
|
|
5875
|
+
reason=cmd.get('reason', f"Auto-chain from {source_tool}"),
|
|
5876
|
+
metadata=cmd.get('metadata'), # Pass through deduplication metadata
|
|
5877
|
+
rule_id=cmd.get('rule_id') # Pass rule ID for tracking
|
|
5878
|
+
)
|
|
5879
|
+
job_ids.append(job_id)
|
|
5880
|
+
except Exception as scope_err:
|
|
5881
|
+
# Handle scope violations gracefully - skip out-of-scope targets
|
|
5882
|
+
if 'ScopeViolationError' in type(scope_err).__name__ or 'out of scope' in str(scope_err).lower():
|
|
5883
|
+
print(f" ⚠️ Skipped (out of scope): {cmd_target}")
|
|
5884
|
+
else:
|
|
5885
|
+
raise # Re-raise unexpected errors
|
|
5742
5886
|
|
|
5743
5887
|
# Lock released here - next iteration gets fresh lock
|
|
5744
5888
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# SoulEyez Documentation
|
|
2
2
|
|
|
3
|
-
**Version:** 2.
|
|
4
|
-
**Last Updated:** January
|
|
3
|
+
**Version:** 2.31.0
|
|
4
|
+
**Last Updated:** January 9, 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.
|
|
@@ -22,6 +22,17 @@ This guide walks you through installing souleyez on your system. The process tak
|
|
|
22
22
|
- **RAM Usage**: Running multiple heavy tools (Metasploit, SQLMap, Hashcat) simultaneously requires additional RAM
|
|
23
23
|
- **Disk I/O**: SSD recommended for database operations and log processing
|
|
24
24
|
|
|
25
|
+
> **🐉 Kali Linux Recommended**
|
|
26
|
+
>
|
|
27
|
+
> SoulEyez performs significantly better on **Kali Linux** than other distributions:
|
|
28
|
+
> - All pentesting tools pre-installed and optimized
|
|
29
|
+
> - Metasploit database and RPC already configured
|
|
30
|
+
> - Security-focused kernel and networking stack
|
|
31
|
+
> - No dependency hunting or version conflicts
|
|
32
|
+
> - Wordlists, databases, and tool configs ready to go
|
|
33
|
+
>
|
|
34
|
+
> While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
|
|
35
|
+
|
|
25
36
|
### Software Requirements
|
|
26
37
|
|
|
27
38
|
- **Operating System**: Linux (Kali Linux recommended, any Debian-based distro supported)
|