souleyez 3.0.0__py3-none-any.whl → 3.0.9__py3-none-any.whl
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/__init__.py +1 -1
- souleyez/ai/__init__.py +7 -7
- souleyez/ai/action_mapper.py +3 -2
- souleyez/ai/chain_advisor.py +2 -1
- souleyez/ai/claude_provider.py +2 -2
- souleyez/ai/context_builder.py +4 -2
- souleyez/ai/executor.py +9 -6
- souleyez/ai/feedback_handler.py +4 -2
- souleyez/ai/llm_provider.py +2 -2
- souleyez/ai/ollama_provider.py +2 -2
- souleyez/ai/ollama_service.py +10 -26
- souleyez/ai/path_scorer.py +2 -1
- souleyez/ai/recommender.py +6 -4
- souleyez/ai/report_context.py +2 -2
- souleyez/ai/report_service.py +5 -5
- souleyez/ai/result_parser.py +3 -2
- souleyez/ai/safety.py +5 -2
- souleyez/auth/__init__.py +6 -6
- souleyez/auth/audit.py +2 -2
- souleyez/auth/engagement_access.py +5 -7
- souleyez/auth/permissions.py +1 -1
- souleyez/auth/session_manager.py +5 -5
- souleyez/auth/user_manager.py +4 -5
- souleyez/commands/audit.py +6 -5
- souleyez/commands/auth.py +6 -5
- souleyez/commands/deliverables.py +2 -3
- souleyez/commands/engagement.py +3 -3
- souleyez/commands/license.py +3 -2
- souleyez/commands/screenshots.py +5 -4
- souleyez/commands/user.py +10 -8
- souleyez/config.py +4 -2
- souleyez/core/credential_tester.py +4 -2
- souleyez/core/cve_mappings.py +2 -1
- souleyez/core/cve_matcher.py +2 -1
- souleyez/core/msf_auto_mapper.py +2 -0
- souleyez/core/msf_chain_engine.py +3 -1
- souleyez/core/msf_database.py +7 -13
- souleyez/core/msf_integration.py +2 -2
- souleyez/core/msf_rpc_client.py +3 -2
- souleyez/core/msf_rpc_manager.py +4 -4
- souleyez/core/msf_sync_manager.py +7 -7
- souleyez/core/network_utils.py +1 -1
- souleyez/core/parser_handler.py +2 -1
- souleyez/core/pending_chains.py +4 -3
- souleyez/core/templates.py +5 -2
- souleyez/core/tool_chaining.py +101 -70
- souleyez/core/version_utils.py +1 -0
- souleyez/core/vuln_correlation.py +3 -2
- souleyez/core/web_utils.py +2 -1
- souleyez/detection/__init__.py +1 -1
- souleyez/detection/attack_signatures.py +1 -1
- souleyez/detection/mitre_mappings.py +1 -2
- souleyez/detection/validator.py +5 -4
- souleyez/devtools.py +4 -2
- souleyez/docs/README.md +2 -2
- souleyez/engine/background.py +168 -7
- souleyez/engine/base.py +2 -1
- souleyez/engine/loader.py +4 -2
- souleyez/engine/log_sanitizer.py +1 -0
- souleyez/engine/manager.py +3 -1
- souleyez/engine/result_handler.py +50 -67
- souleyez/engine/worker_manager.py +6 -4
- souleyez/export/evidence_bundle.py +1 -0
- souleyez/handlers/base.py +1 -0
- souleyez/handlers/bash_handler.py +1 -0
- souleyez/handlers/bloodhound_handler.py +1 -0
- souleyez/handlers/certipy_handler.py +1 -0
- souleyez/handlers/crackmapexec_handler.py +2 -20
- souleyez/handlers/dnsrecon_handler.py +2 -1
- souleyez/handlers/enum4linux_handler.py +65 -37
- souleyez/handlers/evil_winrm_handler.py +1 -0
- souleyez/handlers/ffuf_handler.py +3 -1
- souleyez/handlers/gobuster_handler.py +7 -6
- souleyez/handlers/gpp_extract_handler.py +1 -0
- souleyez/handlers/hashcat_handler.py +1 -0
- souleyez/handlers/hydra_handler.py +5 -2
- souleyez/handlers/impacket_getuserspns_handler.py +1 -0
- souleyez/handlers/impacket_psexec_handler.py +1 -0
- souleyez/handlers/impacket_secretsdump_handler.py +1 -0
- souleyez/handlers/john_handler.py +1 -0
- souleyez/handlers/katana_handler.py +39 -2
- souleyez/handlers/kerbrute_handler.py +1 -0
- souleyez/handlers/ldapsearch_handler.py +90 -17
- souleyez/handlers/lfi_extract_handler.py +1 -0
- souleyez/handlers/msf_auxiliary_handler.py +1 -0
- souleyez/handlers/msf_exploit_handler.py +1 -0
- souleyez/handlers/nikto_handler.py +2 -1
- souleyez/handlers/nmap_handler.py +2 -1
- souleyez/handlers/nuclei_handler.py +2 -1
- souleyez/handlers/nxc_handler.py +3 -18
- souleyez/handlers/rdp_sec_check_handler.py +1 -0
- souleyez/handlers/registry.py +1 -0
- souleyez/handlers/responder_handler.py +1 -0
- souleyez/handlers/service_explorer_handler.py +2 -1
- souleyez/handlers/smbclient_handler.py +1 -0
- souleyez/handlers/smbmap_handler.py +3 -2
- souleyez/handlers/sqlmap_handler.py +6 -4
- souleyez/handlers/theharvester_handler.py +2 -1
- souleyez/handlers/web_login_test_handler.py +1 -0
- souleyez/handlers/whois_handler.py +3 -2
- souleyez/handlers/wpscan_handler.py +2 -1
- souleyez/history.py +4 -3
- souleyez/importers/msf_importer.py +5 -3
- souleyez/importers/smart_importer.py +6 -4
- souleyez/integrations/siem/__init__.py +6 -6
- souleyez/integrations/siem/base.py +1 -1
- souleyez/integrations/siem/elastic.py +3 -3
- souleyez/integrations/siem/factory.py +1 -2
- souleyez/integrations/siem/googlesecops.py +4 -4
- souleyez/integrations/siem/rule_mappings/wazuh_rules.py +1 -1
- souleyez/integrations/siem/sentinel.py +3 -3
- souleyez/integrations/siem/splunk.py +3 -3
- souleyez/integrations/siem/wazuh.py +4 -4
- souleyez/integrations/wazuh/__init__.py +1 -1
- souleyez/integrations/wazuh/client.py +3 -2
- souleyez/integrations/wazuh/config.py +3 -2
- souleyez/integrations/wazuh/host_mapper.py +3 -1
- souleyez/integrations/wazuh/sync.py +4 -1
- souleyez/intelligence/__init__.py +1 -1
- souleyez/intelligence/correlation_analyzer.py +6 -5
- souleyez/intelligence/exploit_knowledge.py +4 -4
- souleyez/intelligence/exploit_suggestions.py +4 -3
- souleyez/intelligence/gap_analyzer.py +5 -3
- souleyez/intelligence/gap_detector.py +2 -0
- souleyez/intelligence/sensitive_tables.py +1 -1
- souleyez/intelligence/service_parser.py +1 -0
- souleyez/intelligence/surface_analyzer.py +9 -9
- souleyez/intelligence/target_parser.py +1 -0
- souleyez/licensing/__init__.py +3 -3
- souleyez/main.py +25 -18
- souleyez/migrations/fix_job_counter.py +2 -1
- souleyez/parsers/bloodhound_parser.py +1 -0
- souleyez/parsers/crackmapexec_parser.py +2 -1
- souleyez/parsers/dalfox_parser.py +3 -2
- souleyez/parsers/dnsrecon_parser.py +2 -1
- souleyez/parsers/enum4linux_parser.py +2 -1
- souleyez/parsers/ffuf_parser.py +2 -1
- souleyez/parsers/gobuster_parser.py +2 -1
- souleyez/parsers/hashcat_parser.py +3 -2
- souleyez/parsers/http_fingerprint_parser.py +2 -1
- souleyez/parsers/hydra_parser.py +2 -1
- souleyez/parsers/impacket_parser.py +2 -1
- souleyez/parsers/john_parser.py +4 -3
- souleyez/parsers/katana_parser.py +134 -2
- souleyez/parsers/msf_parser.py +2 -1
- souleyez/parsers/nikto_parser.py +2 -1
- souleyez/parsers/nmap_parser.py +14 -3
- souleyez/parsers/nuclei_parser.py +3 -2
- souleyez/parsers/responder_parser.py +1 -0
- souleyez/parsers/searchsploit_parser.py +3 -2
- souleyez/parsers/service_explorer_parser.py +1 -0
- souleyez/parsers/smbmap_parser.py +2 -1
- souleyez/parsers/sqlmap_parser.py +36 -2
- souleyez/parsers/theharvester_parser.py +2 -1
- souleyez/parsers/whois_parser.py +2 -1
- souleyez/parsers/wpscan_parser.py +3 -2
- souleyez/plugins/afp.py +3 -1
- souleyez/plugins/afp_brute.py +3 -1
- souleyez/plugins/ard.py +3 -1
- souleyez/plugins/bloodhound.py +3 -2
- souleyez/plugins/certipy.py +1 -0
- souleyez/plugins/crackmapexec.py +11 -7
- souleyez/plugins/dalfox.py +5 -2
- souleyez/plugins/dns_hijack.py +3 -1
- souleyez/plugins/dnsrecon.py +3 -1
- souleyez/plugins/enum4linux.py +3 -1
- souleyez/plugins/evil_winrm.py +1 -0
- souleyez/plugins/ffuf.py +3 -1
- souleyez/plugins/firmware_extract.py +3 -2
- souleyez/plugins/gobuster.py +6 -3
- souleyez/plugins/gpp_extract.py +1 -0
- souleyez/plugins/hashcat.py +2 -1
- souleyez/plugins/http_fingerprint.py +57 -7
- souleyez/plugins/hydra.py +5 -3
- souleyez/plugins/impacket_common.py +40 -0
- souleyez/plugins/impacket_getnpusers.py +19 -2
- souleyez/plugins/impacket_getuserspns.py +158 -0
- souleyez/plugins/impacket_psexec.py +19 -2
- souleyez/plugins/impacket_secretsdump.py +19 -2
- souleyez/plugins/impacket_smbclient.py +19 -2
- souleyez/plugins/john.py +2 -1
- souleyez/plugins/katana.py +48 -6
- souleyez/plugins/kerbrute.py +1 -0
- souleyez/plugins/lfi_extract.py +1 -0
- souleyez/plugins/macos_ssh.py +3 -1
- souleyez/plugins/mdns.py +3 -1
- souleyez/plugins/msf_auxiliary.py +3 -2
- souleyez/plugins/msf_exploit.py +6 -5
- souleyez/plugins/nikto.py +5 -2
- souleyez/plugins/nmap.py +6 -4
- souleyez/plugins/nuclei.py +3 -1
- souleyez/plugins/nxc.py +1 -0
- souleyez/plugins/plugin_base.py +3 -2
- souleyez/plugins/plugin_template.py +3 -2
- souleyez/plugins/rdp_sec_check.py +1 -0
- souleyez/plugins/responder.py +2 -1
- souleyez/plugins/router_http_brute.py +3 -1
- souleyez/plugins/router_ssh_brute.py +3 -1
- souleyez/plugins/router_telnet_brute.py +3 -1
- souleyez/plugins/routersploit.py +5 -3
- souleyez/plugins/routersploit_exploit.py +5 -3
- souleyez/plugins/searchsploit.py +1 -0
- souleyez/plugins/service_explorer.py +2 -1
- souleyez/plugins/smbmap.py +3 -1
- souleyez/plugins/smbpasswd.py +1 -0
- souleyez/plugins/sqlmap.py +3 -1
- souleyez/plugins/theharvester.py +3 -1
- souleyez/plugins/tr069.py +3 -1
- souleyez/plugins/upnp.py +3 -1
- souleyez/plugins/upnp_abuse.py +4 -2
- souleyez/plugins/vnc_access.py +4 -2
- souleyez/plugins/vnc_brute.py +3 -1
- souleyez/plugins/web_login_test.py +1 -0
- souleyez/plugins/whois.py +3 -1
- souleyez/plugins/wpscan.py +3 -1
- souleyez/reporting/attack_chain.py +2 -1
- souleyez/reporting/charts.py +1 -0
- souleyez/reporting/compliance_mappings.py +1 -0
- souleyez/reporting/detection_report.py +10 -10
- souleyez/reporting/formatters.py +7 -12
- souleyez/reporting/generator.py +34 -46
- souleyez/reporting/metrics.py +2 -1
- souleyez/scanner.py +6 -3
- souleyez/security/__init__.py +7 -5
- souleyez/security/scope_validator.py +5 -4
- souleyez/security.py +5 -2
- souleyez/storage/credentials.py +14 -19
- souleyez/storage/crypto.py +7 -4
- souleyez/storage/database.py +6 -6
- souleyez/storage/db.py +8 -8
- souleyez/storage/deliverable_evidence.py +2 -1
- souleyez/storage/deliverable_exporter.py +3 -2
- souleyez/storage/deliverable_templates.py +2 -1
- souleyez/storage/deliverables.py +2 -1
- souleyez/storage/engagements.py +6 -4
- souleyez/storage/evidence.py +5 -4
- souleyez/storage/execution_log.py +4 -2
- souleyez/storage/exploit_attempts.py +3 -2
- souleyez/storage/exploits.py +3 -1
- souleyez/storage/findings.py +3 -1
- souleyez/storage/hosts.py +5 -2
- souleyez/storage/migrate_to_engagements.py +14 -24
- souleyez/storage/migrations/_001_add_credential_enhancements.py +12 -21
- souleyez/storage/migrations/_003_add_execution_log.py +8 -13
- souleyez/storage/migrations/_005_screenshots.py +2 -4
- souleyez/storage/migrations/_006_deliverables.py +2 -4
- souleyez/storage/migrations/_007_deliverable_templates.py +4 -8
- souleyez/storage/migrations/_008_add_nuclei_table.py +2 -4
- souleyez/storage/migrations/_010_evidence_linking.py +6 -12
- souleyez/storage/migrations/_012_team_collaboration.py +12 -24
- souleyez/storage/migrations/_013_add_host_tags.py +2 -4
- souleyez/storage/migrations/_014_exploit_attempts.py +10 -20
- souleyez/storage/migrations/_015_add_mac_os_fields.py +4 -8
- souleyez/storage/migrations/_016_add_domain_field.py +2 -4
- souleyez/storage/migrations/_017_msf_sessions.py +8 -16
- souleyez/storage/migrations/_018_add_osint_target.py +4 -8
- souleyez/storage/migrations/_019_add_engagement_type.py +4 -8
- souleyez/storage/migrations/_020_add_rbac.py +9 -17
- souleyez/storage/migrations/_021_wazuh_integration.py +4 -8
- souleyez/storage/migrations/_023_fix_detection_results_fk.py +2 -4
- souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +4 -8
- souleyez/storage/migrations/_026_add_engagement_scope.py +4 -8
- souleyez/storage/migrations/_027_multi_siem_persistence.py +8 -16
- souleyez/storage/migrations/__init__.py +1 -4
- souleyez/storage/migrations/migration_manager.py +6 -9
- souleyez/storage/msf_sessions.py +1 -1
- souleyez/storage/osint.py +3 -1
- souleyez/storage/recommendation_engine.py +3 -2
- souleyez/storage/screenshots.py +2 -1
- souleyez/storage/smb_shares.py +3 -1
- souleyez/storage/sqlmap_data.py +6 -4
- souleyez/storage/team_collaboration.py +3 -2
- souleyez/storage/timeline_tracker.py +2 -1
- souleyez/storage/wazuh_vulns.py +3 -1
- souleyez/storage/web_paths.py +3 -1
- souleyez/testing/credential_tester.py +2 -0
- souleyez/ui/__init__.py +2 -1
- souleyez/ui/ai_quotes.py +1 -1
- souleyez/ui/attack_surface.py +50 -28
- souleyez/ui/chain_rules_view.py +6 -3
- souleyez/ui/correlation_view.py +3 -2
- souleyez/ui/dashboard.py +85 -139
- souleyez/ui/deliverables_view.py +1 -1
- souleyez/ui/design_system.py +5 -3
- souleyez/ui/errors.py +3 -1
- souleyez/ui/evidence_linking_view.py +2 -1
- souleyez/ui/evidence_vault.py +11 -6
- souleyez/ui/exploit_suggestions_view.py +11 -7
- souleyez/ui/export_view.py +3 -1
- souleyez/ui/gap_analysis_view.py +6 -3
- souleyez/ui/help_system.py +4 -1
- souleyez/ui/intelligence_view.py +7 -3
- souleyez/ui/interactive.py +1280 -558
- souleyez/ui/interactive_selector.py +3 -2
- souleyez/ui/log_formatter.py +1 -0
- souleyez/ui/menu_components.py +3 -1
- souleyez/ui/msf_auxiliary_menu.py +4 -1
- souleyez/ui/pending_chains_view.py +15 -12
- souleyez/ui/progress_indicators.py +5 -2
- souleyez/ui/recommendations_view.py +4 -2
- souleyez/ui/rule_builder.py +4 -1
- souleyez/ui/setup_wizard.py +10 -8
- souleyez/ui/shortcuts.py +1 -1
- souleyez/ui/splunk_gap_analysis_view.py +7 -4
- souleyez/ui/splunk_vulns_view.py +4 -1
- souleyez/ui/team_dashboard.py +7 -5
- souleyez/ui/template_selector.py +2 -1
- souleyez/ui/terminal.py +3 -2
- souleyez/ui/timeline_view.py +2 -1
- souleyez/ui/tool_setup.py +92 -31
- souleyez/ui/tutorial.py +7 -4
- souleyez/ui/tutorial_state.py +3 -2
- souleyez/ui/wazuh_vulns_view.py +5 -2
- souleyez/ui/wordlist_browser.py +4 -3
- souleyez/ui.py +13 -7
- souleyez/utils/tool_checker.py +95 -17
- souleyez/utils.py +4 -4
- souleyez/wordlists.py +1 -0
- {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/METADATA +1 -1
- souleyez-3.0.9.dist-info/RECORD +445 -0
- souleyez-3.0.0.dist-info/RECORD +0 -443
- {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/WHEEL +0 -0
- {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/entry_points.txt +0 -0
- {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/licenses/LICENSE +0 -0
- {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/top_level.txt +0 -0
|
@@ -7,10 +7,11 @@ Guidance:
|
|
|
7
7
|
- run(prepared): execute tool, write raw output to prepared['outdir'], then return ScanResult dict
|
|
8
8
|
- Keep run side-effectful (it actually invokes tools); keep prepare lightweight.
|
|
9
9
|
"""
|
|
10
|
-
|
|
10
|
+
|
|
11
11
|
import subprocess
|
|
12
12
|
import time
|
|
13
|
-
from
|
|
13
|
+
from pathlib import Path
|
|
14
|
+
from typing import Any, Dict, List, Optional
|
|
14
15
|
|
|
15
16
|
from ..engine.base import ScannerPlugin, ScanResult
|
|
16
17
|
|
souleyez/plugins/responder.py
CHANGED
|
@@ -5,12 +5,14 @@ souleyez.plugins.router_http_brute
|
|
|
5
5
|
Router web admin brute force plugin using Hydra.
|
|
6
6
|
Targets common router login pages with default credentials.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "Router HTTP Brute — Web Admin Login Attack",
|
|
@@ -5,12 +5,14 @@ souleyez.plugins.router_ssh_brute
|
|
|
5
5
|
Router SSH brute force plugin using Hydra.
|
|
6
6
|
Targets routers with SSH management enabled.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "Router SSH Brute — SSH Login Attack",
|
|
@@ -5,12 +5,14 @@ souleyez.plugins.router_telnet_brute
|
|
|
5
5
|
Router Telnet brute force plugin using Hydra.
|
|
6
6
|
Targets routers with Telnet management enabled.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "Router Telnet Brute — Telnet Login Attack",
|
souleyez/plugins/routersploit.py
CHANGED
|
@@ -5,13 +5,15 @@ souleyez.plugins.routersploit
|
|
|
5
5
|
RouterSploit vulnerability scanner plugin.
|
|
6
6
|
Scans routers and embedded devices for known vulnerabilities.
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import shutil
|
|
10
|
+
import subprocess
|
|
10
11
|
import time
|
|
11
12
|
from typing import List
|
|
12
13
|
|
|
14
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
15
|
+
|
|
13
16
|
from .plugin_base import PluginBase
|
|
14
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
15
17
|
|
|
16
18
|
HELP = {
|
|
17
19
|
"name": "RouterSploit — Router Vulnerability Scanner",
|
|
@@ -205,8 +207,8 @@ exit
|
|
|
205
207
|
"""
|
|
206
208
|
|
|
207
209
|
# Write resource script and run rsf
|
|
208
|
-
import tempfile
|
|
209
210
|
import os
|
|
211
|
+
import tempfile
|
|
210
212
|
|
|
211
213
|
fd, rc_file = tempfile.mkstemp(suffix=".rsf", prefix="routersploit_")
|
|
212
214
|
try:
|
|
@@ -5,13 +5,15 @@ souleyez.plugins.routersploit_exploit
|
|
|
5
5
|
RouterSploit exploit execution plugin.
|
|
6
6
|
Runs specific exploits against vulnerable routers.
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import shutil
|
|
10
|
+
import subprocess
|
|
10
11
|
import time
|
|
11
12
|
from typing import List
|
|
12
13
|
|
|
14
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
15
|
+
|
|
13
16
|
from .plugin_base import PluginBase
|
|
14
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
15
17
|
|
|
16
18
|
HELP = {
|
|
17
19
|
"name": "RouterSploit Exploit — Router Exploitation",
|
|
@@ -166,8 +168,8 @@ run
|
|
|
166
168
|
exit
|
|
167
169
|
"""
|
|
168
170
|
|
|
169
|
-
import tempfile
|
|
170
171
|
import os
|
|
172
|
+
import tempfile
|
|
171
173
|
|
|
172
174
|
fd, rc_file = tempfile.mkstemp(suffix=".rsf", prefix="rsf_exploit_")
|
|
173
175
|
try:
|
souleyez/plugins/searchsploit.py
CHANGED
|
@@ -13,6 +13,7 @@ Connects to and explores various services after access is discovered:
|
|
|
13
13
|
|
|
14
14
|
This tool is designed to auto-chain from discovery tools when access is found.
|
|
15
15
|
"""
|
|
16
|
+
|
|
16
17
|
import ftplib # nosec B402 - intentional for pentesting FTP services
|
|
17
18
|
import json
|
|
18
19
|
import os
|
|
@@ -792,9 +793,9 @@ class NFSHandler(ProtocolHandler):
|
|
|
792
793
|
|
|
793
794
|
def download_file(self, remote_path: str, local_path: str) -> bool:
|
|
794
795
|
"""Download file from NFS share."""
|
|
796
|
+
import shutil
|
|
795
797
|
import subprocess
|
|
796
798
|
import tempfile
|
|
797
|
-
import shutil
|
|
798
799
|
|
|
799
800
|
if not self.mount_point:
|
|
800
801
|
self.mount_point = tempfile.mkdtemp(prefix="souleyez_nfs_")
|
souleyez/plugins/smbmap.py
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
"""
|
|
3
3
|
souleyez.plugins.smbmap - SMB share enumeration and permission mapping
|
|
4
4
|
"""
|
|
5
|
+
|
|
5
6
|
import subprocess
|
|
6
7
|
import time
|
|
7
8
|
from typing import List
|
|
8
9
|
|
|
10
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
11
|
+
|
|
9
12
|
from .plugin_base import PluginBase
|
|
10
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
11
13
|
|
|
12
14
|
HELP = {
|
|
13
15
|
"name": "SMBMap — SMB Share Enumerator",
|
souleyez/plugins/smbpasswd.py
CHANGED
souleyez/plugins/sqlmap.py
CHANGED
|
@@ -4,12 +4,14 @@ souleyez.plugins.sqlmap
|
|
|
4
4
|
|
|
5
5
|
SQLMap SQL injection detection and exploitation plugin with unified interface.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
import subprocess
|
|
8
9
|
import time
|
|
9
10
|
from typing import List
|
|
10
11
|
|
|
12
|
+
from souleyez.security.validation import ValidationError, validate_url
|
|
13
|
+
|
|
11
14
|
from .plugin_base import PluginBase
|
|
12
|
-
from souleyez.security.validation import validate_url, ValidationError
|
|
13
15
|
|
|
14
16
|
HELP = {
|
|
15
17
|
"name": "SQLMap — Automated SQL Injection Detection & Exploitation Tool",
|
souleyez/plugins/theharvester.py
CHANGED
|
@@ -4,12 +4,14 @@ souleyez.plugins.theharvester
|
|
|
4
4
|
|
|
5
5
|
theHarvester OSINT plugin with unified interface.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
import subprocess
|
|
8
9
|
import time
|
|
9
10
|
from typing import List
|
|
10
11
|
|
|
12
|
+
from souleyez.security.validation import ValidationError, validate_hostname
|
|
13
|
+
|
|
11
14
|
from .plugin_base import PluginBase
|
|
12
|
-
from souleyez.security.validation import validate_hostname, ValidationError
|
|
13
15
|
|
|
14
16
|
HELP = {
|
|
15
17
|
"name": "theHarvester — Public Recon & Harvesting Tool",
|
souleyez/plugins/tr069.py
CHANGED
|
@@ -5,12 +5,14 @@ souleyez.plugins.tr069
|
|
|
5
5
|
TR-069 (CWMP) detection and enumeration plugin.
|
|
6
6
|
Detects ISP remote management protocol on routers.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "TR-069 — ISP Remote Management Detection",
|
souleyez/plugins/upnp.py
CHANGED
|
@@ -5,12 +5,14 @@ souleyez.plugins.upnp
|
|
|
5
5
|
UPnP (Universal Plug and Play) enumeration plugin using nmap scripts.
|
|
6
6
|
Discovers UPnP services, device info, and potential misconfigurations.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "UPnP — Router/IoT Discovery",
|
souleyez/plugins/upnp_abuse.py
CHANGED
|
@@ -5,13 +5,15 @@ souleyez.plugins.upnp_abuse
|
|
|
5
5
|
UPnP abuse plugin for adding/removing port forwards and extracting info.
|
|
6
6
|
Uses miniupnpc library to interact with UPnP-enabled routers.
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import shutil
|
|
10
|
+
import subprocess
|
|
10
11
|
import time
|
|
11
12
|
from typing import List
|
|
12
13
|
|
|
14
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
15
|
+
|
|
13
16
|
from .plugin_base import PluginBase
|
|
14
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
15
17
|
|
|
16
18
|
HELP = {
|
|
17
19
|
"name": "UPnP Abuse — Port Forward Manipulation",
|
souleyez/plugins/vnc_access.py
CHANGED
|
@@ -5,13 +5,15 @@ souleyez.plugins.vnc_access
|
|
|
5
5
|
VNC access plugin for connecting to VNC servers.
|
|
6
6
|
Used after successful credential discovery.
|
|
7
7
|
"""
|
|
8
|
-
|
|
8
|
+
|
|
9
9
|
import shutil
|
|
10
|
+
import subprocess
|
|
10
11
|
import time
|
|
11
12
|
from typing import List
|
|
12
13
|
|
|
14
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
15
|
+
|
|
13
16
|
from .plugin_base import PluginBase
|
|
14
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
15
17
|
|
|
16
18
|
HELP = {
|
|
17
19
|
"name": "VNC Access — Connect to Screen Sharing",
|
souleyez/plugins/vnc_brute.py
CHANGED
|
@@ -5,12 +5,14 @@ souleyez.plugins.vnc_brute
|
|
|
5
5
|
VNC brute force plugin using Hydra.
|
|
6
6
|
Attacks VNC/Screen Sharing on macOS systems.
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
|
|
13
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
14
|
+
|
|
12
15
|
from .plugin_base import PluginBase
|
|
13
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
14
16
|
|
|
15
17
|
HELP = {
|
|
16
18
|
"name": "VNC Brute — Screen Sharing Attack",
|
souleyez/plugins/whois.py
CHANGED
|
@@ -4,12 +4,14 @@ souleyez.plugins.whois
|
|
|
4
4
|
|
|
5
5
|
WHOIS domain information lookup plugin.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
import subprocess
|
|
8
9
|
import time
|
|
9
10
|
from typing import List
|
|
10
11
|
|
|
12
|
+
from souleyez.security.validation import ValidationError, validate_target
|
|
13
|
+
|
|
11
14
|
from .plugin_base import PluginBase
|
|
12
|
-
from souleyez.security.validation import validate_target, ValidationError
|
|
13
15
|
|
|
14
16
|
HELP = {
|
|
15
17
|
"name": "WHOIS — Domain Registration Information",
|
souleyez/plugins/wpscan.py
CHANGED
|
@@ -4,14 +4,16 @@ souleyez.plugins.wpscan
|
|
|
4
4
|
|
|
5
5
|
WPScan WordPress vulnerability scanner plugin.
|
|
6
6
|
"""
|
|
7
|
+
|
|
7
8
|
import os
|
|
8
9
|
import subprocess
|
|
9
10
|
import time
|
|
10
11
|
from typing import List
|
|
11
12
|
from urllib.parse import urlparse, urlunparse
|
|
12
13
|
|
|
14
|
+
from souleyez.security.validation import ValidationError, validate_url
|
|
15
|
+
|
|
13
16
|
from .plugin_base import PluginBase
|
|
14
|
-
from souleyez.security.validation import validate_url, ValidationError
|
|
15
17
|
|
|
16
18
|
HELP = {
|
|
17
19
|
"name": "WPScan — WordPress Security Scanner",
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Attack chain analysis and visualization.
|
|
4
4
|
Builds attack graphs from evidence timeline and generates Mermaid.js diagrams.
|
|
5
5
|
"""
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
from datetime import datetime
|
|
8
|
+
from typing import Dict, List, Set, Tuple
|
|
8
9
|
|
|
9
10
|
|
|
10
11
|
class AttackChainAnalyzer:
|
souleyez/reporting/charts.py
CHANGED
|
@@ -7,22 +7,22 @@ client-ready detection validation reports.
|
|
|
7
7
|
|
|
8
8
|
from dataclasses import dataclass, field
|
|
9
9
|
from datetime import datetime
|
|
10
|
-
from typing import Dict, List,
|
|
10
|
+
from typing import Any, Dict, List, Optional
|
|
11
11
|
|
|
12
|
-
from souleyez.detection.
|
|
13
|
-
DetectionValidator,
|
|
14
|
-
DetectionResult,
|
|
15
|
-
EngagementDetectionSummary,
|
|
16
|
-
)
|
|
12
|
+
from souleyez.detection.attack_signatures import ATTACK_SIGNATURES, get_signature
|
|
17
13
|
from souleyez.detection.mitre_mappings import (
|
|
14
|
+
MITRE_TACTICS,
|
|
18
15
|
MITREMappings,
|
|
19
|
-
TechniqueResult,
|
|
20
16
|
TacticResult,
|
|
21
|
-
|
|
17
|
+
TechniqueResult,
|
|
18
|
+
)
|
|
19
|
+
from souleyez.detection.validator import (
|
|
20
|
+
DetectionResult,
|
|
21
|
+
DetectionValidator,
|
|
22
|
+
EngagementDetectionSummary,
|
|
22
23
|
)
|
|
23
|
-
from souleyez.detection.attack_signatures import get_signature, ATTACK_SIGNATURES
|
|
24
|
-
from souleyez.storage.engagements import EngagementManager
|
|
25
24
|
from souleyez.storage.database import get_db
|
|
25
|
+
from souleyez.storage.engagements import EngagementManager
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
@dataclass
|
souleyez/reporting/formatters.py
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Report formatting utilities.
|
|
4
4
|
Handles Markdown and HTML output with professional styling.
|
|
5
5
|
"""
|
|
6
|
+
|
|
6
7
|
from datetime import datetime
|
|
7
8
|
from typing import Dict, List
|
|
8
9
|
|
|
@@ -1589,22 +1590,16 @@ All testing was conducted in accordance with the agreed-upon rules of engagement
|
|
|
1589
1590
|
sections = []
|
|
1590
1591
|
|
|
1591
1592
|
if business_impact:
|
|
1592
|
-
sections.append(
|
|
1593
|
-
|
|
1594
|
-
{business_impact}"""
|
|
1595
|
-
)
|
|
1593
|
+
sections.append(f"""**Business Impact:**
|
|
1594
|
+
{business_impact}""")
|
|
1596
1595
|
|
|
1597
1596
|
if attack_scenario:
|
|
1598
|
-
sections.append(
|
|
1599
|
-
|
|
1600
|
-
{attack_scenario}"""
|
|
1601
|
-
)
|
|
1597
|
+
sections.append(f"""**Attack Scenario:**
|
|
1598
|
+
{attack_scenario}""")
|
|
1602
1599
|
|
|
1603
1600
|
if risk_context:
|
|
1604
|
-
sections.append(
|
|
1605
|
-
|
|
1606
|
-
{risk_context}"""
|
|
1607
|
-
)
|
|
1601
|
+
sections.append(f"""**Risk Context:**
|
|
1602
|
+
{risk_context}""")
|
|
1608
1603
|
|
|
1609
1604
|
if not sections:
|
|
1610
1605
|
return ""
|