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.

Files changed (325) hide show
  1. souleyez/__init__.py +1 -1
  2. souleyez/ai/__init__.py +7 -7
  3. souleyez/ai/action_mapper.py +3 -2
  4. souleyez/ai/chain_advisor.py +2 -1
  5. souleyez/ai/claude_provider.py +2 -2
  6. souleyez/ai/context_builder.py +4 -2
  7. souleyez/ai/executor.py +9 -6
  8. souleyez/ai/feedback_handler.py +4 -2
  9. souleyez/ai/llm_provider.py +2 -2
  10. souleyez/ai/ollama_provider.py +2 -2
  11. souleyez/ai/ollama_service.py +10 -26
  12. souleyez/ai/path_scorer.py +2 -1
  13. souleyez/ai/recommender.py +6 -4
  14. souleyez/ai/report_context.py +2 -2
  15. souleyez/ai/report_service.py +5 -5
  16. souleyez/ai/result_parser.py +3 -2
  17. souleyez/ai/safety.py +5 -2
  18. souleyez/auth/__init__.py +6 -6
  19. souleyez/auth/audit.py +2 -2
  20. souleyez/auth/engagement_access.py +5 -7
  21. souleyez/auth/permissions.py +1 -1
  22. souleyez/auth/session_manager.py +5 -5
  23. souleyez/auth/user_manager.py +4 -5
  24. souleyez/commands/audit.py +6 -5
  25. souleyez/commands/auth.py +6 -5
  26. souleyez/commands/deliverables.py +2 -3
  27. souleyez/commands/engagement.py +3 -3
  28. souleyez/commands/license.py +3 -2
  29. souleyez/commands/screenshots.py +5 -4
  30. souleyez/commands/user.py +10 -8
  31. souleyez/config.py +4 -2
  32. souleyez/core/credential_tester.py +4 -2
  33. souleyez/core/cve_mappings.py +2 -1
  34. souleyez/core/cve_matcher.py +2 -1
  35. souleyez/core/msf_auto_mapper.py +2 -0
  36. souleyez/core/msf_chain_engine.py +3 -1
  37. souleyez/core/msf_database.py +7 -13
  38. souleyez/core/msf_integration.py +2 -2
  39. souleyez/core/msf_rpc_client.py +3 -2
  40. souleyez/core/msf_rpc_manager.py +4 -4
  41. souleyez/core/msf_sync_manager.py +7 -7
  42. souleyez/core/network_utils.py +1 -1
  43. souleyez/core/parser_handler.py +2 -1
  44. souleyez/core/pending_chains.py +4 -3
  45. souleyez/core/templates.py +5 -2
  46. souleyez/core/tool_chaining.py +101 -70
  47. souleyez/core/version_utils.py +1 -0
  48. souleyez/core/vuln_correlation.py +3 -2
  49. souleyez/core/web_utils.py +2 -1
  50. souleyez/detection/__init__.py +1 -1
  51. souleyez/detection/attack_signatures.py +1 -1
  52. souleyez/detection/mitre_mappings.py +1 -2
  53. souleyez/detection/validator.py +5 -4
  54. souleyez/devtools.py +4 -2
  55. souleyez/docs/README.md +2 -2
  56. souleyez/engine/background.py +168 -7
  57. souleyez/engine/base.py +2 -1
  58. souleyez/engine/loader.py +4 -2
  59. souleyez/engine/log_sanitizer.py +1 -0
  60. souleyez/engine/manager.py +3 -1
  61. souleyez/engine/result_handler.py +50 -67
  62. souleyez/engine/worker_manager.py +6 -4
  63. souleyez/export/evidence_bundle.py +1 -0
  64. souleyez/handlers/base.py +1 -0
  65. souleyez/handlers/bash_handler.py +1 -0
  66. souleyez/handlers/bloodhound_handler.py +1 -0
  67. souleyez/handlers/certipy_handler.py +1 -0
  68. souleyez/handlers/crackmapexec_handler.py +2 -20
  69. souleyez/handlers/dnsrecon_handler.py +2 -1
  70. souleyez/handlers/enum4linux_handler.py +65 -37
  71. souleyez/handlers/evil_winrm_handler.py +1 -0
  72. souleyez/handlers/ffuf_handler.py +3 -1
  73. souleyez/handlers/gobuster_handler.py +7 -6
  74. souleyez/handlers/gpp_extract_handler.py +1 -0
  75. souleyez/handlers/hashcat_handler.py +1 -0
  76. souleyez/handlers/hydra_handler.py +5 -2
  77. souleyez/handlers/impacket_getuserspns_handler.py +1 -0
  78. souleyez/handlers/impacket_psexec_handler.py +1 -0
  79. souleyez/handlers/impacket_secretsdump_handler.py +1 -0
  80. souleyez/handlers/john_handler.py +1 -0
  81. souleyez/handlers/katana_handler.py +39 -2
  82. souleyez/handlers/kerbrute_handler.py +1 -0
  83. souleyez/handlers/ldapsearch_handler.py +90 -17
  84. souleyez/handlers/lfi_extract_handler.py +1 -0
  85. souleyez/handlers/msf_auxiliary_handler.py +1 -0
  86. souleyez/handlers/msf_exploit_handler.py +1 -0
  87. souleyez/handlers/nikto_handler.py +2 -1
  88. souleyez/handlers/nmap_handler.py +2 -1
  89. souleyez/handlers/nuclei_handler.py +2 -1
  90. souleyez/handlers/nxc_handler.py +3 -18
  91. souleyez/handlers/rdp_sec_check_handler.py +1 -0
  92. souleyez/handlers/registry.py +1 -0
  93. souleyez/handlers/responder_handler.py +1 -0
  94. souleyez/handlers/service_explorer_handler.py +2 -1
  95. souleyez/handlers/smbclient_handler.py +1 -0
  96. souleyez/handlers/smbmap_handler.py +3 -2
  97. souleyez/handlers/sqlmap_handler.py +6 -4
  98. souleyez/handlers/theharvester_handler.py +2 -1
  99. souleyez/handlers/web_login_test_handler.py +1 -0
  100. souleyez/handlers/whois_handler.py +3 -2
  101. souleyez/handlers/wpscan_handler.py +2 -1
  102. souleyez/history.py +4 -3
  103. souleyez/importers/msf_importer.py +5 -3
  104. souleyez/importers/smart_importer.py +6 -4
  105. souleyez/integrations/siem/__init__.py +6 -6
  106. souleyez/integrations/siem/base.py +1 -1
  107. souleyez/integrations/siem/elastic.py +3 -3
  108. souleyez/integrations/siem/factory.py +1 -2
  109. souleyez/integrations/siem/googlesecops.py +4 -4
  110. souleyez/integrations/siem/rule_mappings/wazuh_rules.py +1 -1
  111. souleyez/integrations/siem/sentinel.py +3 -3
  112. souleyez/integrations/siem/splunk.py +3 -3
  113. souleyez/integrations/siem/wazuh.py +4 -4
  114. souleyez/integrations/wazuh/__init__.py +1 -1
  115. souleyez/integrations/wazuh/client.py +3 -2
  116. souleyez/integrations/wazuh/config.py +3 -2
  117. souleyez/integrations/wazuh/host_mapper.py +3 -1
  118. souleyez/integrations/wazuh/sync.py +4 -1
  119. souleyez/intelligence/__init__.py +1 -1
  120. souleyez/intelligence/correlation_analyzer.py +6 -5
  121. souleyez/intelligence/exploit_knowledge.py +4 -4
  122. souleyez/intelligence/exploit_suggestions.py +4 -3
  123. souleyez/intelligence/gap_analyzer.py +5 -3
  124. souleyez/intelligence/gap_detector.py +2 -0
  125. souleyez/intelligence/sensitive_tables.py +1 -1
  126. souleyez/intelligence/service_parser.py +1 -0
  127. souleyez/intelligence/surface_analyzer.py +9 -9
  128. souleyez/intelligence/target_parser.py +1 -0
  129. souleyez/licensing/__init__.py +3 -3
  130. souleyez/main.py +25 -18
  131. souleyez/migrations/fix_job_counter.py +2 -1
  132. souleyez/parsers/bloodhound_parser.py +1 -0
  133. souleyez/parsers/crackmapexec_parser.py +2 -1
  134. souleyez/parsers/dalfox_parser.py +3 -2
  135. souleyez/parsers/dnsrecon_parser.py +2 -1
  136. souleyez/parsers/enum4linux_parser.py +2 -1
  137. souleyez/parsers/ffuf_parser.py +2 -1
  138. souleyez/parsers/gobuster_parser.py +2 -1
  139. souleyez/parsers/hashcat_parser.py +3 -2
  140. souleyez/parsers/http_fingerprint_parser.py +2 -1
  141. souleyez/parsers/hydra_parser.py +2 -1
  142. souleyez/parsers/impacket_parser.py +2 -1
  143. souleyez/parsers/john_parser.py +4 -3
  144. souleyez/parsers/katana_parser.py +134 -2
  145. souleyez/parsers/msf_parser.py +2 -1
  146. souleyez/parsers/nikto_parser.py +2 -1
  147. souleyez/parsers/nmap_parser.py +14 -3
  148. souleyez/parsers/nuclei_parser.py +3 -2
  149. souleyez/parsers/responder_parser.py +1 -0
  150. souleyez/parsers/searchsploit_parser.py +3 -2
  151. souleyez/parsers/service_explorer_parser.py +1 -0
  152. souleyez/parsers/smbmap_parser.py +2 -1
  153. souleyez/parsers/sqlmap_parser.py +36 -2
  154. souleyez/parsers/theharvester_parser.py +2 -1
  155. souleyez/parsers/whois_parser.py +2 -1
  156. souleyez/parsers/wpscan_parser.py +3 -2
  157. souleyez/plugins/afp.py +3 -1
  158. souleyez/plugins/afp_brute.py +3 -1
  159. souleyez/plugins/ard.py +3 -1
  160. souleyez/plugins/bloodhound.py +3 -2
  161. souleyez/plugins/certipy.py +1 -0
  162. souleyez/plugins/crackmapexec.py +11 -7
  163. souleyez/plugins/dalfox.py +5 -2
  164. souleyez/plugins/dns_hijack.py +3 -1
  165. souleyez/plugins/dnsrecon.py +3 -1
  166. souleyez/plugins/enum4linux.py +3 -1
  167. souleyez/plugins/evil_winrm.py +1 -0
  168. souleyez/plugins/ffuf.py +3 -1
  169. souleyez/plugins/firmware_extract.py +3 -2
  170. souleyez/plugins/gobuster.py +6 -3
  171. souleyez/plugins/gpp_extract.py +1 -0
  172. souleyez/plugins/hashcat.py +2 -1
  173. souleyez/plugins/http_fingerprint.py +57 -7
  174. souleyez/plugins/hydra.py +5 -3
  175. souleyez/plugins/impacket_common.py +40 -0
  176. souleyez/plugins/impacket_getnpusers.py +19 -2
  177. souleyez/plugins/impacket_getuserspns.py +158 -0
  178. souleyez/plugins/impacket_psexec.py +19 -2
  179. souleyez/plugins/impacket_secretsdump.py +19 -2
  180. souleyez/plugins/impacket_smbclient.py +19 -2
  181. souleyez/plugins/john.py +2 -1
  182. souleyez/plugins/katana.py +48 -6
  183. souleyez/plugins/kerbrute.py +1 -0
  184. souleyez/plugins/lfi_extract.py +1 -0
  185. souleyez/plugins/macos_ssh.py +3 -1
  186. souleyez/plugins/mdns.py +3 -1
  187. souleyez/plugins/msf_auxiliary.py +3 -2
  188. souleyez/plugins/msf_exploit.py +6 -5
  189. souleyez/plugins/nikto.py +5 -2
  190. souleyez/plugins/nmap.py +6 -4
  191. souleyez/plugins/nuclei.py +3 -1
  192. souleyez/plugins/nxc.py +1 -0
  193. souleyez/plugins/plugin_base.py +3 -2
  194. souleyez/plugins/plugin_template.py +3 -2
  195. souleyez/plugins/rdp_sec_check.py +1 -0
  196. souleyez/plugins/responder.py +2 -1
  197. souleyez/plugins/router_http_brute.py +3 -1
  198. souleyez/plugins/router_ssh_brute.py +3 -1
  199. souleyez/plugins/router_telnet_brute.py +3 -1
  200. souleyez/plugins/routersploit.py +5 -3
  201. souleyez/plugins/routersploit_exploit.py +5 -3
  202. souleyez/plugins/searchsploit.py +1 -0
  203. souleyez/plugins/service_explorer.py +2 -1
  204. souleyez/plugins/smbmap.py +3 -1
  205. souleyez/plugins/smbpasswd.py +1 -0
  206. souleyez/plugins/sqlmap.py +3 -1
  207. souleyez/plugins/theharvester.py +3 -1
  208. souleyez/plugins/tr069.py +3 -1
  209. souleyez/plugins/upnp.py +3 -1
  210. souleyez/plugins/upnp_abuse.py +4 -2
  211. souleyez/plugins/vnc_access.py +4 -2
  212. souleyez/plugins/vnc_brute.py +3 -1
  213. souleyez/plugins/web_login_test.py +1 -0
  214. souleyez/plugins/whois.py +3 -1
  215. souleyez/plugins/wpscan.py +3 -1
  216. souleyez/reporting/attack_chain.py +2 -1
  217. souleyez/reporting/charts.py +1 -0
  218. souleyez/reporting/compliance_mappings.py +1 -0
  219. souleyez/reporting/detection_report.py +10 -10
  220. souleyez/reporting/formatters.py +7 -12
  221. souleyez/reporting/generator.py +34 -46
  222. souleyez/reporting/metrics.py +2 -1
  223. souleyez/scanner.py +6 -3
  224. souleyez/security/__init__.py +7 -5
  225. souleyez/security/scope_validator.py +5 -4
  226. souleyez/security.py +5 -2
  227. souleyez/storage/credentials.py +14 -19
  228. souleyez/storage/crypto.py +7 -4
  229. souleyez/storage/database.py +6 -6
  230. souleyez/storage/db.py +8 -8
  231. souleyez/storage/deliverable_evidence.py +2 -1
  232. souleyez/storage/deliverable_exporter.py +3 -2
  233. souleyez/storage/deliverable_templates.py +2 -1
  234. souleyez/storage/deliverables.py +2 -1
  235. souleyez/storage/engagements.py +6 -4
  236. souleyez/storage/evidence.py +5 -4
  237. souleyez/storage/execution_log.py +4 -2
  238. souleyez/storage/exploit_attempts.py +3 -2
  239. souleyez/storage/exploits.py +3 -1
  240. souleyez/storage/findings.py +3 -1
  241. souleyez/storage/hosts.py +5 -2
  242. souleyez/storage/migrate_to_engagements.py +14 -24
  243. souleyez/storage/migrations/_001_add_credential_enhancements.py +12 -21
  244. souleyez/storage/migrations/_003_add_execution_log.py +8 -13
  245. souleyez/storage/migrations/_005_screenshots.py +2 -4
  246. souleyez/storage/migrations/_006_deliverables.py +2 -4
  247. souleyez/storage/migrations/_007_deliverable_templates.py +4 -8
  248. souleyez/storage/migrations/_008_add_nuclei_table.py +2 -4
  249. souleyez/storage/migrations/_010_evidence_linking.py +6 -12
  250. souleyez/storage/migrations/_012_team_collaboration.py +12 -24
  251. souleyez/storage/migrations/_013_add_host_tags.py +2 -4
  252. souleyez/storage/migrations/_014_exploit_attempts.py +10 -20
  253. souleyez/storage/migrations/_015_add_mac_os_fields.py +4 -8
  254. souleyez/storage/migrations/_016_add_domain_field.py +2 -4
  255. souleyez/storage/migrations/_017_msf_sessions.py +8 -16
  256. souleyez/storage/migrations/_018_add_osint_target.py +4 -8
  257. souleyez/storage/migrations/_019_add_engagement_type.py +4 -8
  258. souleyez/storage/migrations/_020_add_rbac.py +9 -17
  259. souleyez/storage/migrations/_021_wazuh_integration.py +4 -8
  260. souleyez/storage/migrations/_023_fix_detection_results_fk.py +2 -4
  261. souleyez/storage/migrations/_024_wazuh_vulnerabilities.py +4 -8
  262. souleyez/storage/migrations/_026_add_engagement_scope.py +4 -8
  263. souleyez/storage/migrations/_027_multi_siem_persistence.py +8 -16
  264. souleyez/storage/migrations/__init__.py +1 -4
  265. souleyez/storage/migrations/migration_manager.py +6 -9
  266. souleyez/storage/msf_sessions.py +1 -1
  267. souleyez/storage/osint.py +3 -1
  268. souleyez/storage/recommendation_engine.py +3 -2
  269. souleyez/storage/screenshots.py +2 -1
  270. souleyez/storage/smb_shares.py +3 -1
  271. souleyez/storage/sqlmap_data.py +6 -4
  272. souleyez/storage/team_collaboration.py +3 -2
  273. souleyez/storage/timeline_tracker.py +2 -1
  274. souleyez/storage/wazuh_vulns.py +3 -1
  275. souleyez/storage/web_paths.py +3 -1
  276. souleyez/testing/credential_tester.py +2 -0
  277. souleyez/ui/__init__.py +2 -1
  278. souleyez/ui/ai_quotes.py +1 -1
  279. souleyez/ui/attack_surface.py +50 -28
  280. souleyez/ui/chain_rules_view.py +6 -3
  281. souleyez/ui/correlation_view.py +3 -2
  282. souleyez/ui/dashboard.py +85 -139
  283. souleyez/ui/deliverables_view.py +1 -1
  284. souleyez/ui/design_system.py +5 -3
  285. souleyez/ui/errors.py +3 -1
  286. souleyez/ui/evidence_linking_view.py +2 -1
  287. souleyez/ui/evidence_vault.py +11 -6
  288. souleyez/ui/exploit_suggestions_view.py +11 -7
  289. souleyez/ui/export_view.py +3 -1
  290. souleyez/ui/gap_analysis_view.py +6 -3
  291. souleyez/ui/help_system.py +4 -1
  292. souleyez/ui/intelligence_view.py +7 -3
  293. souleyez/ui/interactive.py +1280 -558
  294. souleyez/ui/interactive_selector.py +3 -2
  295. souleyez/ui/log_formatter.py +1 -0
  296. souleyez/ui/menu_components.py +3 -1
  297. souleyez/ui/msf_auxiliary_menu.py +4 -1
  298. souleyez/ui/pending_chains_view.py +15 -12
  299. souleyez/ui/progress_indicators.py +5 -2
  300. souleyez/ui/recommendations_view.py +4 -2
  301. souleyez/ui/rule_builder.py +4 -1
  302. souleyez/ui/setup_wizard.py +10 -8
  303. souleyez/ui/shortcuts.py +1 -1
  304. souleyez/ui/splunk_gap_analysis_view.py +7 -4
  305. souleyez/ui/splunk_vulns_view.py +4 -1
  306. souleyez/ui/team_dashboard.py +7 -5
  307. souleyez/ui/template_selector.py +2 -1
  308. souleyez/ui/terminal.py +3 -2
  309. souleyez/ui/timeline_view.py +2 -1
  310. souleyez/ui/tool_setup.py +92 -31
  311. souleyez/ui/tutorial.py +7 -4
  312. souleyez/ui/tutorial_state.py +3 -2
  313. souleyez/ui/wazuh_vulns_view.py +5 -2
  314. souleyez/ui/wordlist_browser.py +4 -3
  315. souleyez/ui.py +13 -7
  316. souleyez/utils/tool_checker.py +95 -17
  317. souleyez/utils.py +4 -4
  318. souleyez/wordlists.py +1 -0
  319. {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/METADATA +1 -1
  320. souleyez-3.0.9.dist-info/RECORD +445 -0
  321. souleyez-3.0.0.dist-info/RECORD +0 -443
  322. {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/WHEEL +0 -0
  323. {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/entry_points.txt +0 -0
  324. {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/licenses/LICENSE +0 -0
  325. {souleyez-3.0.0.dist-info → souleyez-3.0.9.dist-info}/top_level.txt +0 -0
souleyez/config.py CHANGED
@@ -18,11 +18,13 @@ Environment Variable Overrides:
18
18
 
19
19
  Example: export SOULEYEZ_DATABASE_PATH=/tmp/test.db
20
20
  """
21
+
21
22
  from __future__ import annotations
22
- from pathlib import Path
23
+
23
24
  import json
24
- import os
25
25
  import logging
26
+ import os
27
+ from pathlib import Path
26
28
 
27
29
  CONFIG_PATH = Path.home() / ".souleyez" / "config.json"
28
30
 
@@ -4,13 +4,15 @@ souleyez.core.credential_tester
4
4
 
5
5
  Test discovered credentials against hosts to find working authentication.
6
6
  """
7
+
7
8
  import subprocess
8
9
  import time
9
10
  from typing import Dict, Optional, Tuple
11
+
10
12
  from souleyez.storage.credentials import CredentialsManager
11
- from souleyez.storage.hosts import HostManager
12
- from souleyez.storage.findings import FindingsManager
13
13
  from souleyez.storage.engagements import EngagementManager
14
+ from souleyez.storage.findings import FindingsManager
15
+ from souleyez.storage.hosts import HostManager
14
16
 
15
17
 
16
18
  class CredentialTester:
@@ -5,6 +5,7 @@ souleyez.core.cve_mappings
5
5
  CVE-to-version database for version-aware tool chaining.
6
6
  Maps known CVEs to affected product versions and recommended exploit tools.
7
7
  """
8
+
8
9
  import json
9
10
  import logging
10
11
  from dataclasses import dataclass, field
@@ -12,9 +13,9 @@ from pathlib import Path
12
13
  from typing import Dict, List, Optional
13
14
 
14
15
  from souleyez.core.version_utils import (
15
- parse_version_spec,
16
16
  matches_version,
17
17
  normalize_product_name,
18
+ parse_version_spec,
18
19
  )
19
20
 
20
21
  logger = logging.getLogger(__name__)
@@ -2,8 +2,9 @@
2
2
  """
3
3
  CVE Matcher - Extract and match CVEs from scan output
4
4
  """
5
+
5
6
  import re
6
- from typing import List, Dict, Tuple
7
+ from typing import Dict, List, Tuple
7
8
 
8
9
 
9
10
  class CVEMatcher:
@@ -2,8 +2,10 @@
2
2
  """
3
3
  souleyez.core.msf_auto_mapper - Automatically map engagement data to MSF modules
4
4
  """
5
+
5
6
  import re
6
7
  from typing import Dict, List
8
+
7
9
  from souleyez.core.msf_integration import MSFModuleSelector, VersionMatcher
8
10
 
9
11
 
@@ -2,9 +2,11 @@
2
2
  """
3
3
  souleyez.core.msf_chain_engine - Orchestrate progressive MSF attack chains
4
4
  """
5
+
5
6
  from typing import Dict, List
7
+
6
8
  from souleyez.core.msf_auto_mapper import MSFAutoMapper
7
- from souleyez.core.msf_integration import MSFResourceGenerator, MSFModuleSelector
9
+ from souleyez.core.msf_integration import MSFModuleSelector, MSFResourceGenerator
8
10
 
9
11
 
10
12
  class MSFChainEngine:
@@ -7,8 +7,8 @@ credentials, and sessions directly from MSF.
7
7
  """
8
8
 
9
9
  import logging
10
- from typing import Optional, List, Dict, Any
11
10
  from datetime import datetime
11
+ from typing import Any, Dict, List, Optional
12
12
 
13
13
  try:
14
14
  import psycopg2
@@ -157,14 +157,12 @@ class MSFDatabase:
157
157
  # or check for schema_migrations to infer version
158
158
  with self.conn.cursor(cursor_factory=RealDictCursor) as cur:
159
159
  # Check latest schema migration
160
- cur.execute(
161
- """
160
+ cur.execute("""
162
161
  SELECT version
163
162
  FROM schema_migrations
164
163
  ORDER BY version DESC
165
164
  LIMIT 1
166
- """
167
- )
165
+ """)
168
166
  result = cur.fetchone()
169
167
 
170
168
  if result:
@@ -209,13 +207,11 @@ class MSFDatabase:
209
207
  return False
210
208
 
211
209
  # Validate key columns exist in hosts table
212
- cur.execute(
213
- """
210
+ cur.execute("""
214
211
  SELECT column_name
215
212
  FROM information_schema.columns
216
213
  WHERE table_name = 'hosts'
217
- """
218
- )
214
+ """)
219
215
  columns = {row[0] for row in cur.fetchall()}
220
216
 
221
217
  required_columns = {"id", "address", "workspace_id"}
@@ -241,8 +237,7 @@ class MSFDatabase:
241
237
  """
242
238
  try:
243
239
  with self.conn.cursor(cursor_factory=RealDictCursor) as cur:
244
- cur.execute(
245
- """
240
+ cur.execute("""
246
241
  SELECT id, name, created_at, updated_at,
247
242
  boundary,
248
243
  description,
@@ -250,8 +245,7 @@ class MSFDatabase:
250
245
  limit_to_network
251
246
  FROM workspaces
252
247
  ORDER BY name
253
- """
254
- )
248
+ """)
255
249
  return [dict(row) for row in cur.fetchall()]
256
250
  except Exception as e:
257
251
  logger.error(f"Failed to list workspaces: {e}")
@@ -2,12 +2,12 @@
2
2
  """
3
3
  souleyez.core.msf_integration - Metasploit Framework integration utilities
4
4
  """
5
+
5
6
  import os
6
7
  import re
7
8
  import shlex
8
9
  import subprocess
9
- from typing import List, Dict, Optional, Tuple
10
-
10
+ from typing import Dict, List, Optional, Tuple
11
11
 
12
12
  # CVE Database mapping CVEs to MSF modules
13
13
  CVE_DATABASE = {
@@ -7,10 +7,11 @@ session management, and result tracking.
7
7
  """
8
8
 
9
9
  import logging
10
+ import time
10
11
  import warnings
12
+ from typing import Any, Dict, List, Optional, Tuple
13
+
11
14
  import requests
12
- from typing import Optional, List, Dict, Any, Tuple
13
- import time
14
15
 
15
16
  # Suppress SSL warnings for self-signed certs (msfrpcd uses self-signed)
16
17
  from urllib3.exceptions import InsecureRequestWarning
@@ -12,13 +12,13 @@ This is a Pro-only feature. Free users fall back to msfconsole subprocess execut
12
12
 
13
13
  import logging
14
14
  import os
15
- import time
16
- import subprocess
17
15
  import shutil
18
- from typing import Optional, Dict, Any
16
+ import subprocess
17
+ import time
18
+ from typing import Any, Dict, Optional
19
19
 
20
- from souleyez.core.msf_rpc_client import MSFRPCClient, MSGPACK_AVAILABLE
21
20
  from souleyez import config
21
+ from souleyez.core.msf_rpc_client import MSGPACK_AVAILABLE, MSFRPCClient
22
22
 
23
23
  logger = logging.getLogger(__name__)
24
24
 
@@ -11,21 +11,21 @@ and SoulEyez, including:
11
11
 
12
12
  import logging
13
13
  import os
14
- from pathlib import Path
15
- from typing import Optional, Dict, Any, List, Tuple
16
- from datetime import datetime
17
14
  import re
15
+ from datetime import datetime
16
+ from pathlib import Path
17
+ from typing import Any, Dict, List, Optional, Tuple
18
18
 
19
19
  from souleyez.core.msf_database import MSFDatabase, MSFDatabaseSchemaError
20
20
  from souleyez.core.msf_rpc_client import MSFRPCClient
21
- from souleyez.storage.hosts import HostManager
22
- from souleyez.storage.findings import FindingsManager
23
21
  from souleyez.storage.credentials import CredentialsManager
24
22
  from souleyez.storage.exploit_attempts import record_attempt
23
+ from souleyez.storage.findings import FindingsManager
24
+ from souleyez.storage.hosts import HostManager
25
25
  from souleyez.storage.msf_sessions import (
26
26
  add_msf_session,
27
- get_msf_sessions,
28
27
  close_msf_session,
28
+ get_msf_sessions,
29
29
  )
30
30
 
31
31
  logger = logging.getLogger(__name__)
@@ -109,7 +109,7 @@ def get_msf_active_sessions_count() -> Optional[int]:
109
109
  """
110
110
  # Method 1: Try MSF RPC first (most reliable when msfrpcd is running)
111
111
  try:
112
- from souleyez.core.msf_rpc_client import MSFRPCClient, MSGPACK_AVAILABLE
112
+ from souleyez.core.msf_rpc_client import MSGPACK_AVAILABLE, MSFRPCClient
113
113
 
114
114
  if MSGPACK_AVAILABLE:
115
115
  # Try connecting without password first (some setups don't require it)
@@ -5,9 +5,9 @@ Provides functions for detecting VM host (gateway) and validating
5
5
  that Ollama connections only go to trusted destinations.
6
6
  """
7
7
 
8
+ import re
8
9
  import socket
9
10
  import subprocess
10
- import re
11
11
  from typing import Optional, Tuple
12
12
  from urllib.parse import urlparse
13
13
 
@@ -4,9 +4,10 @@ souleyez.core.parser_handler
4
4
 
5
5
  Centralized parser handling with error recovery and logging.
6
6
  """
7
+
7
8
  import logging
8
- from typing import Dict, Any, Optional
9
9
  from pathlib import Path
10
+ from typing import Any, Dict, Optional
10
11
 
11
12
  logger = logging.getLogger(__name__)
12
13
 
@@ -6,13 +6,14 @@ Manages chains that require user approval before execution.
6
6
  This enables "active orchestration" where users review and approve
7
7
  suggested follow-up scans instead of auto-executing them.
8
8
  """
9
- import os
9
+
10
10
  import json
11
- import time
11
+ import os
12
12
  import tempfile
13
13
  import threading
14
- from typing import List, Dict, Any, Optional
14
+ import time
15
15
  from pathlib import Path
16
+ from typing import Any, Dict, List, Optional
16
17
 
17
18
  DATA_DIR = os.path.join(os.path.expanduser("~"), ".souleyez", "data")
18
19
  CHAINS_DIR = os.path.join(DATA_DIR, "chains")
@@ -5,8 +5,9 @@ souleyez.core.templates - Workflow presets for different pentest types
5
5
  Presets provide recommended tools, scan phases, and tips to help users
6
6
  get started quickly with common engagement types.
7
7
  """
8
+
8
9
  from dataclasses import dataclass, field
9
- from typing import List, Dict, Any, Optional
10
+ from typing import Any, Dict, List, Optional
10
11
 
11
12
 
12
13
  @dataclass
@@ -481,8 +482,10 @@ def queue_initial_scan(
481
482
 
482
483
  def display_scan_phases_guide(template_id: str, clear_screen: bool = True) -> None:
483
484
  """Display the scan phases guide for a template."""
484
- import click
485
485
  import shutil
486
+
487
+ import click
488
+
486
489
  from souleyez.ui.design_system import DesignSystem
487
490
 
488
491
  template = get_template(template_id)