souleyez 2.16.0__py3-none-any.whl → 2.26.0__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 (38) hide show
  1. souleyez/__init__.py +1 -1
  2. souleyez/assets/__init__.py +1 -0
  3. souleyez/assets/souleyez-icon.png +0 -0
  4. souleyez/core/msf_sync_manager.py +15 -5
  5. souleyez/core/tool_chaining.py +221 -29
  6. souleyez/detection/validator.py +4 -2
  7. souleyez/docs/README.md +2 -2
  8. souleyez/docs/user-guide/installation.md +14 -1
  9. souleyez/engine/background.py +25 -1
  10. souleyez/engine/result_handler.py +129 -0
  11. souleyez/integrations/siem/splunk.py +58 -11
  12. souleyez/main.py +103 -4
  13. souleyez/parsers/crackmapexec_parser.py +101 -43
  14. souleyez/parsers/dnsrecon_parser.py +50 -35
  15. souleyez/parsers/enum4linux_parser.py +101 -21
  16. souleyez/parsers/http_fingerprint_parser.py +319 -0
  17. souleyez/parsers/hydra_parser.py +56 -5
  18. souleyez/parsers/impacket_parser.py +123 -44
  19. souleyez/parsers/john_parser.py +47 -14
  20. souleyez/parsers/msf_parser.py +20 -5
  21. souleyez/parsers/nmap_parser.py +145 -28
  22. souleyez/parsers/smbmap_parser.py +69 -25
  23. souleyez/parsers/sqlmap_parser.py +72 -26
  24. souleyez/parsers/theharvester_parser.py +21 -13
  25. souleyez/plugins/gobuster.py +96 -3
  26. souleyez/plugins/http_fingerprint.py +592 -0
  27. souleyez/plugins/msf_exploit.py +6 -3
  28. souleyez/plugins/nuclei.py +41 -17
  29. souleyez/ui/interactive.py +130 -20
  30. souleyez/ui/setup_wizard.py +424 -58
  31. souleyez/ui/tool_setup.py +52 -52
  32. souleyez/utils/tool_checker.py +75 -13
  33. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/METADATA +16 -3
  34. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/RECORD +38 -34
  35. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/WHEEL +0 -0
  36. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/entry_points.txt +0 -0
  37. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/licenses/LICENSE +0 -0
  38. {souleyez-2.16.0.dist-info → souleyez-2.26.0.dist-info}/top_level.txt +0 -0
souleyez/ui/tool_setup.py CHANGED
@@ -82,32 +82,38 @@ def _ensure_path_configured():
82
82
  os.environ["PATH"] = ":".join(new_paths) + ":" + current_path
83
83
 
84
84
 
85
- def _add_paths_to_bashrc():
86
- """Add tool paths to ~/.bashrc if not already present."""
87
- bashrc = Path.home() / ".bashrc"
85
+ def _add_paths_to_shell_rc():
86
+ """Add tool paths to shell rc files (bash and zsh) if not already present."""
88
87
  paths_to_add = [
89
88
  ('export PATH="$HOME/go/bin:$PATH"', "go/bin"),
90
89
  ('export PATH="$HOME/.local/bin:$PATH"', ".local/bin"),
91
90
  ]
92
91
 
93
- if not bashrc.exists():
94
- return
92
+ # Update both .bashrc and .zshrc (Kali Linux uses zsh by default)
93
+ rc_files = [
94
+ Path.home() / ".bashrc",
95
+ Path.home() / ".zshrc",
96
+ ]
95
97
 
96
- try:
97
- content = bashrc.read_text()
98
- additions = []
99
-
100
- for line, marker in paths_to_add:
101
- if marker not in content:
102
- additions.append(line)
103
-
104
- if additions:
105
- with open(bashrc, "a") as f:
106
- f.write("\n# Added by souleyez setup\n")
107
- for line in additions:
108
- f.write(line + "\n")
109
- except Exception:
110
- pass # Don't fail on PATH configuration issues
98
+ for rc_file in rc_files:
99
+ if not rc_file.exists():
100
+ continue
101
+
102
+ try:
103
+ content = rc_file.read_text()
104
+ additions = []
105
+
106
+ for line, marker in paths_to_add:
107
+ if marker not in content:
108
+ additions.append(line)
109
+
110
+ if additions:
111
+ with open(rc_file, "a") as f:
112
+ f.write("\n# Added by souleyez setup\n")
113
+ for line in additions:
114
+ f.write(line + "\n")
115
+ except Exception:
116
+ pass # Don't fail on PATH configuration issues
111
117
 
112
118
 
113
119
  def _run_command(cmd: str, console, description: str = "", capture: bool = False) -> tuple:
@@ -319,15 +325,16 @@ def _ensure_msfdb_initialized(console):
319
325
 
320
326
  if not click.confirm(" Initialize MSF database now?", default=True):
321
327
  console.print()
322
- console.print(" [yellow]Skipped.[/yellow] Run 'msfdb init' manually when needed.")
328
+ console.print(" [yellow]Skipped.[/yellow] Run 'sudo msfdb init' manually when needed.")
323
329
  return
324
330
 
325
331
  console.print()
326
332
  console.print(" [dim]Initializing MSF database (this may take a minute)...[/dim]")
327
333
 
328
334
  try:
335
+ # Use sudo for msfdb init (required on Kali and some other distros)
329
336
  result = subprocess.run(
330
- [msfdb_path, 'init'],
337
+ ['sudo', msfdb_path, 'init'],
331
338
  capture_output=True,
332
339
  timeout=300 # 5 minute timeout
333
340
  )
@@ -392,32 +399,12 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
392
399
  console.print(f" Detected OS: [bold]{distro_names.get(distro, distro)}[/bold]")
393
400
  console.print()
394
401
 
402
+ # Show distro-specific messaging
395
403
  if distro in ('kali', 'parrot'):
396
404
  console.print(" [green]✓ You're on a pentesting distro![/green]")
397
- console.print(" All tools should be available via apt install.")
405
+ console.print(" Most tools are available via apt. Some may use pipx or direct download.")
398
406
  console.print()
399
- _show_tool_status(console)
400
-
401
- if check_only:
402
- return
403
-
404
- missing = get_missing_tools(distro)
405
- if missing:
406
- console.print()
407
- if install_all or click.confirm(" Install missing tools via apt?", default=True):
408
- _install_apt_tools(console, missing)
409
- else:
410
- console.print(" [green]✓ All tools are installed![/green]")
411
-
412
- # Configure sudoers for privileged scans
413
- _configure_sudoers(console)
414
-
415
- # Initialize MSF database if needed
416
- _ensure_msfdb_initialized(console)
417
- return
418
-
419
- # Ubuntu/Debian path
420
- if distro in ('ubuntu', 'debian'):
407
+ elif distro in ('ubuntu', 'debian'):
421
408
  console.print(" [yellow]Note:[/yellow] Some pentesting tools aren't in Ubuntu/Debian repos.")
422
409
  console.print(" This wizard will install them using pipx, go, snap, or from source.")
423
410
  console.print()
@@ -431,6 +418,8 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
431
418
  if not missing:
432
419
  console.print()
433
420
  console.print(" [green]✓ All tools are installed![/green]")
421
+ # Still need to run post-install tasks (sudoers, MSF db, etc.)
422
+ _run_post_install_tasks(console, distro)
434
423
  return
435
424
 
436
425
  console.print()
@@ -528,8 +517,8 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
528
517
  else:
529
518
  failed_tools.append(tool['name'])
530
519
 
531
- # Configure PATH in bashrc
532
- _add_paths_to_bashrc()
520
+ # Configure PATH in shell rc files (bash and zsh)
521
+ _add_paths_to_shell_rc()
533
522
 
534
523
  # Final status
535
524
  console.print()
@@ -547,6 +536,15 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
547
536
  _ensure_path_configured()
548
537
  _show_tool_status(console)
549
538
 
539
+ # Run post-install tasks
540
+ _run_post_install_tasks(console, distro)
541
+
542
+
543
+ def _run_post_install_tasks(console, distro: str):
544
+ """Run tasks that should happen after tool installation or when all tools are present."""
545
+ # Ensure PATH is configured in shell rc files
546
+ _add_paths_to_shell_rc()
547
+
550
548
  # Configure passwordless sudo for privileged scans
551
549
  _configure_sudoers(console)
552
550
 
@@ -554,12 +552,14 @@ def run_tool_setup(check_only: bool = False, install_all: bool = False):
554
552
  _ensure_msfdb_initialized(console)
555
553
 
556
554
  # Remind about PATH for pipx/go tools
557
- if distro in ('ubuntu', 'debian'):
558
- console.print()
559
- console.print(" [yellow]Important:[/yellow] To use newly installed tools, either:")
560
- console.print(" 1. Restart your terminal, OR")
555
+ console.print()
556
+ console.print(" [yellow]Important:[/yellow] To use newly installed tools, either:")
557
+ console.print(" 1. Restart your terminal, OR")
558
+ if distro in ('kali', 'parrot'):
559
+ console.print(" 2. Run: [cyan]source ~/.zshrc[/cyan] (Kali uses zsh)")
560
+ else:
561
561
  console.print(" 2. Run: [cyan]source ~/.bashrc[/cyan]")
562
- console.print()
562
+ console.print()
563
563
 
564
564
 
565
565
  def _show_tool_status(console):
@@ -50,7 +50,7 @@ def version_meets_requirement(installed: str, required: str) -> bool:
50
50
  return installed_tuple >= required_tuple
51
51
 
52
52
 
53
- def get_tool_version(command: str, version_cmd: str = None, version_regex: str = None) -> Optional[str]:
53
+ def get_tool_version(command: str, version_cmd: str = None, version_regex: str = None, version_fallback: str = None) -> Optional[str]:
54
54
  """
55
55
  Get the version of an installed tool.
56
56
 
@@ -58,6 +58,7 @@ def get_tool_version(command: str, version_cmd: str = None, version_regex: str =
58
58
  command: The tool command (e.g., 'gobuster')
59
59
  version_cmd: Command to get version (default: '{command} --version')
60
60
  version_regex: Regex to extract version from output
61
+ version_fallback: Fallback version string if detection fails (e.g., 'v2.x (upgrade needed)')
61
62
 
62
63
  Returns:
63
64
  Version string or None if not found
@@ -99,6 +100,10 @@ def get_tool_version(command: str, version_cmd: str = None, version_regex: str =
99
100
  if match:
100
101
  return match.group(1)
101
102
 
103
+ # If no version found but tool exists, use fallback
104
+ if version_fallback:
105
+ return version_fallback
106
+
102
107
  return None
103
108
  except Exception:
104
109
  return None
@@ -149,7 +154,8 @@ EXTERNAL_TOOLS = {
149
154
  'install_kali': 'sudo apt install nmap',
150
155
  'install_ubuntu': 'sudo apt install nmap',
151
156
  'install_method': 'apt',
152
- 'description': 'Network scanner for host/port discovery'
157
+ 'description': 'Network scanner for host/port discovery',
158
+ 'needs_sudo': True # Required for SYN/UDP/OS detection scans
153
159
  },
154
160
  'theharvester': {
155
161
  'command': 'theHarvester',
@@ -188,9 +194,11 @@ EXTERNAL_TOOLS = {
188
194
  'install_method': 'kali_only',
189
195
  'description': 'Directory/file & DNS brute-forcing tool (v3.x required)',
190
196
  'min_version': '3.0.0',
191
- 'version_cmd': '{command} dir --help',
192
- 'version_regex': r'gobuster/(\d+\.\d+\.\d+)',
193
- 'version_note': 'SoulEyez requires gobuster v3+ (uses subcommand syntax)'
197
+ 'version_cmd': '{command} -v',
198
+ 'version_regex': r'version\s+(\d+\.\d+\.\d+)',
199
+ 'version_note': 'SoulEyez requires gobuster v3+ (uses subcommand syntax)',
200
+ 'upgrade_kali': 'go install github.com/OJ/gobuster/v3@latest',
201
+ 'upgrade_ubuntu': 'go install github.com/OJ/gobuster/v3@latest'
194
202
  },
195
203
  'ffuf': {
196
204
  'command': 'ffuf',
@@ -215,9 +223,9 @@ EXTERNAL_TOOLS = {
215
223
  },
216
224
  'dalfox': {
217
225
  'command': 'dalfox',
218
- 'install_kali': 'ARCH=$(uname -m | sed "s/x86_64/amd64/;s/aarch64/arm64/") && wget -q https://github.com/hahwul/dalfox/releases/download/v2.12.0/dalfox-linux-${ARCH}.tar.gz -O /tmp/dalfox.tar.gz && tar -xzf /tmp/dalfox.tar.gz -C /tmp && sudo mv /tmp/dalfox-linux-${ARCH} /usr/local/bin/dalfox && sudo chmod +x /usr/local/bin/dalfox && rm /tmp/dalfox.tar.gz',
219
- 'install_ubuntu': 'ARCH=$(uname -m | sed "s/x86_64/amd64/;s/aarch64/arm64/") && wget -q https://github.com/hahwul/dalfox/releases/download/v2.12.0/dalfox-linux-${ARCH}.tar.gz -O /tmp/dalfox.tar.gz && tar -xzf /tmp/dalfox.tar.gz -C /tmp && sudo mv /tmp/dalfox-linux-${ARCH} /usr/local/bin/dalfox && sudo chmod +x /usr/local/bin/dalfox && rm /tmp/dalfox.tar.gz',
220
- 'install_method': 'kali_only',
226
+ 'install_kali': 'go install github.com/hahwul/dalfox/v2@latest',
227
+ 'install_ubuntu': 'go install github.com/hahwul/dalfox/v2@latest',
228
+ 'install_method': 'go',
221
229
  'description': 'XSS vulnerability scanner'
222
230
  },
223
231
  },
@@ -284,7 +292,9 @@ EXTERNAL_TOOLS = {
284
292
  'install_kali': 'sudo apt install smbmap',
285
293
  'install_ubuntu': 'pipx install --force smbmap && pipx inject smbmap impacket',
286
294
  'install_method': 'kali_only',
287
- 'description': 'SMB share enumeration tool'
295
+ 'description': 'SMB share enumeration tool',
296
+ 'known_issues': 'All versions have pickling bug with impacket. Use netexec instead.',
297
+ 'optional': True
288
298
  },
289
299
  'netexec': {
290
300
  'command': 'nxc',
@@ -313,7 +323,8 @@ EXTERNAL_TOOLS = {
313
323
  'install_kali': 'sudo apt install responder && sudo pip install aioquic',
314
324
  'install_ubuntu': 'sudo git clone https://github.com/lgandx/Responder.git /opt/Responder && sudo pip install -r /opt/Responder/requirements.txt aioquic && sudo ln -sf /opt/Responder/Responder.py /usr/local/bin/responder',
315
325
  'install_method': 'kali_only',
316
- 'description': 'LLMNR, NBT-NS and MDNS poisoner'
326
+ 'description': 'LLMNR, NBT-NS and MDNS poisoner',
327
+ 'needs_sudo': True # Required for network poisoning
317
328
  },
318
329
  },
319
330
  'router_iot': {
@@ -376,6 +387,16 @@ def get_install_command(tool_info: dict, distro: Optional[str] = None) -> str:
376
387
  return tool_info.get('install_ubuntu', tool_info.get('install_kali', ''))
377
388
 
378
389
 
390
+ def get_upgrade_command(tool_info: dict, distro: Optional[str] = None) -> Optional[str]:
391
+ """Get upgrade command if available, else None."""
392
+ if distro is None:
393
+ distro = detect_distro()
394
+ if distro in ('kali', 'parrot'):
395
+ return tool_info.get('upgrade_kali')
396
+ else:
397
+ return tool_info.get('upgrade_ubuntu')
398
+
399
+
379
400
  def check_tool(command: str, alt_commands: list = None) -> bool:
380
401
  """Check if a tool is installed and in PATH."""
381
402
  if shutil.which(command) is not None:
@@ -534,6 +555,7 @@ def check_tool_version(tool_info: dict) -> Dict[str, any]:
534
555
  # Always try to get version for display purposes
535
556
  version_cmd = tool_info.get('version_cmd')
536
557
  version_regex = tool_info.get('version_regex')
558
+ version_fallback = tool_info.get('version_fallback')
537
559
 
538
560
  # Use actual_cmd for version detection, but version_cmd template uses {command}
539
561
  if version_cmd:
@@ -542,7 +564,7 @@ def check_tool_version(tool_info: dict) -> Dict[str, any]:
542
564
  else:
543
565
  actual_version_cmd = None
544
566
 
545
- installed_version = get_tool_version(actual_cmd, actual_version_cmd, version_regex)
567
+ installed_version = get_tool_version(actual_cmd, actual_version_cmd, version_regex, version_fallback)
546
568
  result['version'] = installed_version
547
569
 
548
570
  # Check against min_version if there is one
@@ -699,6 +721,7 @@ def check_msfdb_status() -> Dict[str, any]:
699
721
  - message: str - Human-readable status message
700
722
  """
701
723
  import subprocess
724
+ from pathlib import Path
702
725
 
703
726
  result = {
704
727
  'initialized': False,
@@ -712,6 +735,32 @@ def check_msfdb_status() -> Dict[str, any]:
712
735
  result['message'] = 'msfdb command not found - Metasploit may not be installed'
713
736
  return result
714
737
 
738
+ # Helper to check if PostgreSQL is running
739
+ def check_postgresql_running() -> bool:
740
+ try:
741
+ proc = subprocess.run(
742
+ ['systemctl', 'is-active', 'postgresql'],
743
+ capture_output=True,
744
+ text=True,
745
+ timeout=5
746
+ )
747
+ return proc.returncode == 0 and 'active' in proc.stdout.lower()
748
+ except Exception:
749
+ return False
750
+
751
+ # Helper to check system-wide MSF database config (Kali fallback)
752
+ def check_system_config() -> bool:
753
+ """Check if system-wide database.yml exists with valid PostgreSQL config."""
754
+ config_path = Path('/usr/share/metasploit-framework/config/database.yml')
755
+ if config_path.exists():
756
+ try:
757
+ content = config_path.read_text()
758
+ # Check for PostgreSQL adapter configuration
759
+ return 'adapter: postgresql' in content and 'database: msf' in content
760
+ except Exception:
761
+ return False
762
+ return False
763
+
715
764
  try:
716
765
  # Run msfdb status
717
766
  proc = subprocess.run(
@@ -721,10 +770,23 @@ def check_msfdb_status() -> Dict[str, any]:
721
770
  timeout=10
722
771
  )
723
772
  output = proc.stdout + proc.stderr
724
-
725
- # Parse output for status indicators
726
773
  output_lower = output.lower()
727
774
 
775
+ # Check if msfdb requires root (common on Kali)
776
+ if 'run as root' in output_lower or (proc.returncode != 0 and 'error' in output_lower):
777
+ # Fall back to checking system config file and PostgreSQL status
778
+ result['running'] = check_postgresql_running()
779
+ if check_system_config():
780
+ result['initialized'] = True
781
+ if result['running']:
782
+ result['connected'] = True
783
+ result['message'] = 'Database initialized and running'
784
+ else:
785
+ result['message'] = 'Database initialized but PostgreSQL not running - run: sudo systemctl start postgresql'
786
+ else:
787
+ result['message'] = 'Need sudo to verify - run: sudo msfdb status'
788
+ return result
789
+
728
790
  # Check if database is initialized
729
791
  if 'no database' in output_lower or 'not initialized' in output_lower:
730
792
  result['message'] = 'Database not initialized - run: msfdb init'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.16.0
3
+ Version: 2.26.0
4
4
  Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
5
  Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
6
  Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
@@ -72,7 +72,7 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
72
72
 
73
73
  > ⚠️ **Important**: Only use SoulEyez on systems you have explicit authorization to test.
74
74
 
75
- ## Version: 2.16.0
75
+ ## Version: 2.26.0
76
76
 
77
77
  ### What's Included
78
78
 
@@ -110,6 +110,17 @@ Welcome to the SoulEyez beta! Thank you for helping us test and improve this pen
110
110
  - **Python**: 3.8 or newer
111
111
  - **Storage**: ~500MB for SoulEyez + tools
112
112
 
113
+ > **🐉 Kali Linux Recommended**
114
+ >
115
+ > SoulEyez performs significantly better on **Kali Linux** than other distributions:
116
+ > - All pentesting tools pre-installed and optimized
117
+ > - Metasploit database and RPC already configured
118
+ > - Security-focused kernel and networking stack
119
+ > - No dependency hunting or version conflicts
120
+ > - Wordlists, databases, and tool configs ready to go
121
+ >
122
+ > While Ubuntu and other Debian-based distros are supported, you may experience slower setup times and occasional tool compatibility issues.
123
+
113
124
  ### Known Issues
114
125
 
115
126
  - Very large scan outputs (>10MB) may slow the interface
@@ -127,6 +138,8 @@ pipx ensurepath # Add pipx apps to your PATH
127
138
  source ~/.bashrc # Reload your shell (or close and reopen terminal)
128
139
  ```
129
140
 
141
+ > **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
142
+
130
143
  > 💡 **What's pipx?** It's like `apt` but for Python command-line tools. It keeps each tool isolated so they don't conflict with each other.
131
144
 
132
145
  ### Step 2: Install SoulEyez
@@ -297,4 +310,4 @@ Happy hacking! 🛡️
297
310
 
298
311
  ---
299
312
 
300
- **Version**: 2.16.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
313
+ **Version**: 2.24.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
@@ -1,10 +1,10 @@
1
- souleyez/__init__.py,sha256=xt2yYVrBeaonY-ISiVg8BvA0zIqiHQ-0BcmwIHWuEjs,23
1
+ souleyez/__init__.py,sha256=AQLQTfTAunRI82MROjAdq13BluGH3dFd7gjy2F09lHc,23
2
2
  souleyez/config.py,sha256=av357I3GYRWAklv8Dto-9-5Db699Wq5znez7zo7241Q,11595
3
3
  souleyez/devtools.py,sha256=rptmUY4a5eVvYjdEc6273MSagL-D9xibPOFgohVqUno,3508
4
4
  souleyez/feature_flags.py,sha256=mo6YAq07lc6sR3lEFKmIwTKxXZ2JPxwa5X97uR_mu50,4642
5
5
  souleyez/history.py,sha256=gzs5I_j-3OigIP6yfmBChdqxaFmyUIxvTpzWUPe_Q6c,2853
6
6
  souleyez/log_config.py,sha256=MMhPAJOqgXDfuE-xm5g0RxAfWndcmbhFHvIEMm1a_Wo,5830
7
- souleyez/main.py,sha256=UyeIOvNDL9uGKWrhr6KwJYZU_UFbeoqVSJfOJ_yF7P4,118990
7
+ souleyez/main.py,sha256=7_GQB9cCjAfPAFNtnpKCBK2NXCD8Jfv5aV9Ij-LQcYo,122774
8
8
  souleyez/scanner.py,sha256=U3IWHRrJ5aQ32dSHiVAHB60w1R_z0E0QxfM99msYNlw,3124
9
9
  souleyez/security.py,sha256=S84m1QmnKz_6NgH2I6IBIAorMHxRPNYVFSnks5xjihQ,2479
10
10
  souleyez/ui.py,sha256=15pfsqoDPnojAqr5S0TZHJE2ZkSHzkHpNVfVvsRj66A,34301
@@ -28,6 +28,8 @@ souleyez/ai/report_prompts.py,sha256=5LjCoqYfDtXGHp9oevgrX9avhzMJdfnx1YmPNnuTaeM
28
28
  souleyez/ai/report_service.py,sha256=N5yVMCGeNcrtFPMTV4eROZbVyh6QLLlLaJNBl-G_7L4,14130
29
29
  souleyez/ai/result_parser.py,sha256=nB38fxo7PcQxLqGx2eJ2FC2vsDAZIa-jd2LG251fSls,16155
30
30
  souleyez/ai/safety.py,sha256=6xIeXFbOLw7hXrwbAkO8eNdylEdFd5hQSe-LodyR0po,5374
31
+ souleyez/assets/__init__.py,sha256=q_whKfZE_dG80ZYzbRA1WbW4TPr5YkRGjZujHof_Dhg,26
32
+ souleyez/assets/souleyez-icon.png,sha256=pKhXWuUH3y--9GyD7hmyq8CWiPOYwh_MCm9iykljk_c,11978
31
33
  souleyez/auth/__init__.py,sha256=9oCzIyabC1MgboYBXYoSa34jGS8teHLdhnLfbAaMLDE,2171
32
34
  souleyez/auth/audit.py,sha256=fucBP0s0cpB1wgJE4sG1UDrupfxoNTPCmEPMyGPBOhs,9638
33
35
  souleyez/auth/engagement_access.py,sha256=b3XafCq7XDMe5f9Po3o7O1EnWwOWb0mi0WZCeQC1K4A,10852
@@ -52,12 +54,12 @@ souleyez/core/msf_database.py,sha256=xaGt0wMX15CQv3-s2NobLK8niHgrE98qAkmS9zhrLe8
52
54
  souleyez/core/msf_integration.py,sha256=J9EXecxq72q65Itv1lBqjSkhh8Zx6SbZO2VPtlZXuOg,64842
53
55
  souleyez/core/msf_rpc_client.py,sha256=DL-_uJz_6G1pQud8iTg3_SjRJmgl4-W1YWmb0xg6f8Q,15994
54
56
  souleyez/core/msf_rpc_manager.py,sha256=8irWzXdiASVIokGSTf8DV57Uh_DUJ3Q6L-2oR9y8qeI,15572
55
- souleyez/core/msf_sync_manager.py,sha256=iEZ8_CJNdFAaEpp4PecIqrqslSH5oR23qrfJnrPntOg,27354
57
+ souleyez/core/msf_sync_manager.py,sha256=1alAqM2jHiMxbBdPTQL9Vjzbl8XVhrnS2VYhVdfNwUw,27779
56
58
  souleyez/core/network_utils.py,sha256=-4WgUE91RBzyXDFgGTxMa0zsWowJ47cEOAKXNeVa-Wc,4555
57
59
  souleyez/core/parser_handler.py,sha256=cyZtEDctqMdWgubsU0Jg6o4XqBgyfaJ_AeBHQmmv4hM,5564
58
60
  souleyez/core/pending_chains.py,sha256=Dnka7JK7A8gTWCGpTu6qrIgIDIXprkZmwJ0Rm2oWqRE,10972
59
61
  souleyez/core/templates.py,sha256=DzlXlAz8_lwAFjjUWPp3r81KCCzbNeK-bkN1IlgQBSU,18112
60
- souleyez/core/tool_chaining.py,sha256=Gn_Tulg1pC_K4DdYe7RfF_WRGJxuoesqg_AKOtEQ5Ak,265114
62
+ souleyez/core/tool_chaining.py,sha256=TNA11cxDaTeDcLJy26Mdgr_BKtQgItBS24PeYh2W2gE,274537
61
63
  souleyez/core/version_utils.py,sha256=UOrOa3qfUdLKdzWT6GAGNV9TauwinXyLyelS8sOk0eE,11769
62
64
  souleyez/core/vuln_correlation.py,sha256=U69MSI5I-AtiyOAbXohGDKMpEHRW9y4G_0M1ppRGX18,14765
63
65
  souleyez/core/web_utils.py,sha256=f-Dqa6tH8ROnygn6-k7J1y8Qz2f1FmeJnPjPE0WRn34,4902
@@ -101,8 +103,8 @@ souleyez/data/wordlists/web_files_common.txt,sha256=mORKPa5K9LrV0OJIVHPvF4tSeIN2
101
103
  souleyez/detection/__init__.py,sha256=QIhvXjFdjrquQ6A0VQ7GZQkK_EXB59t8Dv9PKXhEUeM,221
102
104
  souleyez/detection/attack_signatures.py,sha256=akgWwiIkh6WYnghCuLhRV0y6FS0SQ0caGF8tZUc49oA,6965
103
105
  souleyez/detection/mitre_mappings.py,sha256=xejE80YK-g8kKaeQoo-vBl8P3t8RTTItbfN0NaVZw6s,20558
104
- souleyez/detection/validator.py,sha256=3AUUqOu-8BDmvcl-Bw1CQ8iGWpk5rD6-kTB5DiRdZ2U,15473
105
- souleyez/docs/README.md,sha256=fAfDWxqOi6po7_OSxrJxOm7A_SceweaJhyigqq5ZspE,7183
106
+ souleyez/detection/validator.py,sha256=-AJ7QSJ3-6jFKLnPG_Rc34IXyF4JPyI82BFUgTA9zw0,15641
107
+ souleyez/docs/README.md,sha256=CTJNTubBYLySkPqQX3s1LfusFLgwk_dsHto8__cANDc,7183
106
108
  souleyez/docs/api-reference/cli-commands.md,sha256=lTLFnILN3YRVdqCaag7WgsYXfDGglb1TuPexkxDsVdE,12917
107
109
  souleyez/docs/api-reference/engagement-api.md,sha256=nd-EvQMtiJrobg2bzFEADp853HP1Uhb9dmgok0_-neE,11672
108
110
  souleyez/docs/api-reference/integration-guide.md,sha256=c96uX79ukHyYotLa54wZ20Kx-EUZnrKegTeGkfLD-pw,16285
@@ -132,7 +134,7 @@ souleyez/docs/user-guide/dependencies.md,sha256=WOPilg0W0U3KnsdGREkM5_gAG7Rr5P10
132
134
  souleyez/docs/user-guide/evidence-vault.md,sha256=PNg7cIUlVXr41iMJTi66j4qUV2fkrPATljunx0pD5sI,9454
133
135
  souleyez/docs/user-guide/exploit-suggestions.md,sha256=Qv9CPwDe9ypKoeUG3XAL6dtg4YA5PmlE5DA6JVHK4Nk,17971
134
136
  souleyez/docs/user-guide/getting-started.md,sha256=4QfZiQlYnReORAUpsy2gWzKe1uFHOePZyzDSz8zldgc,20932
135
- souleyez/docs/user-guide/installation.md,sha256=ljRdRCX2nekUmZLIsw1Jy-pgkX-8l3uC6BWQ4OJMr9o,13761
137
+ souleyez/docs/user-guide/installation.md,sha256=uM_qBpgG5YjkxSf8u6gUJh0TGYtPlo4pbn_wEXJHX0Q,14431
136
138
  souleyez/docs/user-guide/metasploit-integration.md,sha256=kSCai2PO4kiv3BEUSXa6mIC3vCdqIA70GyLVQH_Kaj4,10026
137
139
  souleyez/docs/user-guide/rbac.md,sha256=ULY5IbTCoNGOnvRrT1oH5XayCqD10PKoUwRDBRzpK2g,21055
138
140
  souleyez/docs/user-guide/report-generation.md,sha256=7Qe47jfPxmZ4U1uuM3kggPLQ6JM7_TCOOhYIvYen4Ao,20754
@@ -143,13 +145,13 @@ souleyez/docs/user-guide/uninstall.md,sha256=gDknetFhjZ0tnYk4JqhLa369NT4bIRb50rm
143
145
  souleyez/docs/user-guide/worker-management.md,sha256=hNu6eSTVb6XM4Zbb0I9Y5aL4AA2EiWOSFI6iGjn17kU,12035
144
146
  souleyez/docs/user-guide/workflows.md,sha256=4EyZKWRyuWf9wrENJwtidWKN25PGis1Pk33HIHk5UHM,22261
145
147
  souleyez/engine/__init__.py,sha256=THI_89hQfAPJDsfzDcur6H9sEGhGAnTxSNim7UOExYc,110
146
- souleyez/engine/background.py,sha256=w4Ikdjrb_Lu0MBm7ChC5_T8xfOkE8uSFYaQj35iz0Ro,64738
148
+ souleyez/engine/background.py,sha256=Wm7dBzwq8qTi1vYvJk7T2TRktkdNzk50YQGZddcI3NU,66278
147
149
  souleyez/engine/base.py,sha256=G35U1d-fygUvzmHH8zxLXw-vyQ9JzcfhGaSYOsHJtzQ,728
148
150
  souleyez/engine/job_status.py,sha256=OAEf2rAzapm55m4tc3PSilotdA5ONX15JavUMLre0is,2685
149
151
  souleyez/engine/loader.py,sha256=ke6QQVVWozDnqGNBotajC3RBYOa2_DZmv5DAnDZVgIc,2769
150
152
  souleyez/engine/log_sanitizer.py,sha256=QHF6zSms-wHo6SbL6fHXIh1GG-8G34lE7kl45nbPn70,7130
151
153
  souleyez/engine/manager.py,sha256=aBQMoib-VWNXtIp5Qn34tRj1P1jiLpwAIoo1fexAaLU,3629
152
- souleyez/engine/result_handler.py,sha256=z1yunEo-8u-6C4wiDUTOhyjXToQ2Z-KVgEwdxP_Yix4,124454
154
+ souleyez/engine/result_handler.py,sha256=KN2l02mcXW8M69NHouP4se-ZK9CNtEEZsR6lZaSb3xY,129520
153
155
  souleyez/engine/worker_manager.py,sha256=exepzHnyUc2PpAxVJSdrU7LCrlm-s6JBMgQyivSV46Y,2905
154
156
  souleyez/export/__init__.py,sha256=2kFHftSqqrRUG6PhtfhCyhnkpkjc-8Zb4utGo-Nb6B4,61
155
157
  souleyez/export/evidence_bundle.py,sha256=hqPn_h2CidhL-1VAT0qraZ8r1yfnUTnLZ3RfPPCK5Ds,9966
@@ -164,7 +166,7 @@ souleyez/integrations/siem/base.py,sha256=JmbhRlHl7wsRyd3nOhCqDHFP4VwBv-VR7uIKWo
164
166
  souleyez/integrations/siem/elastic.py,sha256=LuxheashiOO-AJbtUEK_BZ1T8EUAr1KlZkOheWPPgrQ,14712
165
167
  souleyez/integrations/siem/factory.py,sha256=aRTV2IFTF1e5PvmTrAVk1UsrVzm476esY2mLsey3F9Q,8061
166
168
  souleyez/integrations/siem/sentinel.py,sha256=8zxuMgqlfCeGu_gHPNjfmBfBR5PEmtMTbqliC9dnbcI,15789
167
- souleyez/integrations/siem/splunk.py,sha256=Po0df1T1ZAgdF83h14DYkPZBChLnbC5AfZwylQqe1ps,26061
169
+ souleyez/integrations/siem/splunk.py,sha256=Vi6RMSqjXCVhy6AmQ0kFs_OrP6jDez3Vis8ZYJtWIGA,28587
168
170
  souleyez/integrations/siem/wazuh.py,sha256=vltBhkP5BkgJLmdmF6u_b2RgTvP7iE9sFDxOt9v71qM,10245
169
171
  souleyez/integrations/siem/rule_mappings/__init__.py,sha256=PbCLigl6Zo8ClvxZ29ydsXAWVMIG1adTGMWSdxwaKU4,207
170
172
  souleyez/integrations/siem/rule_mappings/wazuh_rules.py,sha256=tfduSFFVxUOgL19w4ZFmOC0JDlnewz3PwA94a_XFTmI,8307
@@ -189,25 +191,26 @@ souleyez/migrations/__init__.py,sha256=S4ZorUykM6txYkZHuQ64QbzHWeNQ3QDFP-PvgMPbp
189
191
  souleyez/migrations/fix_job_counter.py,sha256=-NSm7TQaGln5ut2vYVyJ7fPFOliX2rD7lPUQngPx04w,2423
190
192
  souleyez/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
191
193
  souleyez/parsers/bloodhound_parser.py,sha256=r1f5ePsuPc90CJOySnZ6WkfYQoeVJWraTiE7dnI8BbI,3134
192
- souleyez/parsers/crackmapexec_parser.py,sha256=1dzS_jGzTulODVsupCBGttidSAX6l4JeMmO051MHYgc,8056
194
+ souleyez/parsers/crackmapexec_parser.py,sha256=HN3nCBMdCEoP1OuYPLmf080b2YmMphZ7Wtm1ByrKGu0,10849
193
195
  souleyez/parsers/dalfox_parser.py,sha256=w_eCeyL-Eu9zGyXqYmq0XKbnOIR7lnDD-zbRT7SPco0,6856
194
- souleyez/parsers/dnsrecon_parser.py,sha256=sFVZ4ag2CMBLgTOQyE1qKjRUdZpA6iMv9f3zHVY-MlA,7364
195
- souleyez/parsers/enum4linux_parser.py,sha256=ycMiVKsBHEu4zOJpl337kccx9WLQgVjyYGr-Q_B_7Lw,14324
196
+ souleyez/parsers/dnsrecon_parser.py,sha256=zy9_d-dxVSWSSNy7UgMQ2J_r8uoPacHiAMwkAjomXcM,7885
197
+ souleyez/parsers/enum4linux_parser.py,sha256=8C9VQ0f-VzKFBkRmScPM84Q8CYvPwidBuQFLH2TJ48c,17728
196
198
  souleyez/parsers/ffuf_parser.py,sha256=xoLicqbwjgJqMrkGEyUFmBIx1Jn7t2OG7OtXkN-wvUE,1706
197
199
  souleyez/parsers/gobuster_parser.py,sha256=-DS8fpA7uoSKhrGnoMdjowhl7OcitAPoEee-LXiogYs,5960
198
200
  souleyez/parsers/hashcat_parser.py,sha256=fQl8r9xko5dbbUXAYJEQonUhrp9gqK5WnJioAAk3TsU,5036
199
- souleyez/parsers/hydra_parser.py,sha256=EAqtfj7Wtr6UhzogaIN3ArCKH38025VaAev4RNdG6Lw,10971
200
- souleyez/parsers/impacket_parser.py,sha256=yADVWMlBveRXJGol1wS_scH417wXxcxqEmTjt92dd3Y,9200
201
- souleyez/parsers/john_parser.py,sha256=PcWWbLFdQNKq7oGFAvJ85JG9JHAw-lwKWgdMgydCjYg,6194
202
- souleyez/parsers/msf_parser.py,sha256=rn2YwAzccRAWciWFBaH0IcbXOsJORCkWmoimhGWADQU,39495
201
+ souleyez/parsers/http_fingerprint_parser.py,sha256=UESf59YQwMxplBV2cr7ZrZW8qv2kxawaYQxAUAGuVrs,9629
202
+ souleyez/parsers/hydra_parser.py,sha256=lTB_ja18ZEyrLrQAyovqaq_5MyyN5Flij7WeZ6xOsUg,13249
203
+ souleyez/parsers/impacket_parser.py,sha256=RV9ZU3aPn7UWM5blZsRMLTKlQvygc0rPAsCC0sJSNvI,12541
204
+ souleyez/parsers/john_parser.py,sha256=M-vzMoiC5E7UXeDv38n6cTZZnimdtQA40Ky6LEALYOw,7734
205
+ souleyez/parsers/msf_parser.py,sha256=DlpIcwwV5HzHoNZiLPTMDoQca_6vwO2dH23ci3u9GRg,40428
203
206
  souleyez/parsers/nikto_parser.py,sha256=faNxu1S1FhLble9lVN4Xjr5v2u3kzGKStdvsKO2CpH0,7160
204
- souleyez/parsers/nmap_parser.py,sha256=8SPxjGBQA4T-z5___wLJEmTMTaZJgOdV7n-SPrRbPMY,25315
207
+ souleyez/parsers/nmap_parser.py,sha256=LXZWGZVf7VdZhPPUe6q_Hgb22jlSSj5XRt2aUl3qeWc,30106
205
208
  souleyez/parsers/nuclei_parser.py,sha256=Magk6ID5WJNtGOGP7e6-R12pgtYcGdoFHmuB68fOTlo,3975
206
209
  souleyez/parsers/responder_parser.py,sha256=3LInW7ZnrSyktlpk8Boid1ftcdGf8SaSBfMpcLGzJ2g,3494
207
210
  souleyez/parsers/searchsploit_parser.py,sha256=XEXkpN0uixS85WvhtSXZslv2ELXQM7l9q0T5v79GUok,7560
208
- souleyez/parsers/smbmap_parser.py,sha256=73ovoHUiOOnWgAR_aZa12YQJtcfgTBI0uLeQvUvOOlM,11169
209
- souleyez/parsers/sqlmap_parser.py,sha256=QFe9DQ9P7ksDNFNo8s04-BnE4jmRwMcRgcDglqtqen4,32662
210
- souleyez/parsers/theharvester_parser.py,sha256=j2eV8t7vh4GxUBUPVh_ru4aYCu1MKKmelxUu-5lJY-Y,5045
211
+ souleyez/parsers/smbmap_parser.py,sha256=cKK026Bhs2m6jLKk_S706XaYb0plG75OHhDiTjcZnzU,13395
212
+ souleyez/parsers/sqlmap_parser.py,sha256=CYh4rpxrdSgkJdQLWqWzERTmloKsBUqLZA_1fpR8de4,35413
213
+ souleyez/parsers/theharvester_parser.py,sha256=Pu9lQ8ip3FAt-XlwSnTpLqaTLHVpK5nSRFSxCNrz-YI,5844
211
214
  souleyez/parsers/whois_parser.py,sha256=o0dUR0Ow2HNXV_3SksCtX8DvblJ0X1fjSDtEmRVUu8c,9451
212
215
  souleyez/parsers/wpscan_parser.py,sha256=qKxJitB7_yOAoGc-2WwtYFRztRv8-utGipfQrzUG6J8,15014
213
216
  souleyez/plugins/__init__.py,sha256=ZuA8EzOdz7SvbB1kAj6pnyjgPLZShINGZAiSwEDZ0Bo,109
@@ -222,8 +225,9 @@ souleyez/plugins/dnsrecon.py,sha256=nxeVgwACUyw5VYEyD-5U277d1U72EkWBX9nR9_DMZrI,
222
225
  souleyez/plugins/enum4linux.py,sha256=VHkKPs8PWX90RLsGdYt5Ieuc3Sz52fbeWvKCL1KquIY,10876
223
226
  souleyez/plugins/ffuf.py,sha256=7c1-Q7xXTMmH_2wHXikjmZnSgZL13Hj5E_asBxZ6Y5U,11652
224
227
  souleyez/plugins/firmware_extract.py,sha256=_hZXx6cHb9noM6uVgi3hwrJLw8hE9mDUelTEHwoIdCU,6460
225
- souleyez/plugins/gobuster.py,sha256=qQRzCb4zdn7YuSCCl31IqMAGjSeB9FO66W6chruhJlU,25306
228
+ souleyez/plugins/gobuster.py,sha256=GMTUyfkVnZ2gp3kh_R-KQ4EIGEBX5fxBIMfHZrwkVFo,29285
226
229
  souleyez/plugins/hashcat.py,sha256=aigfwBu9IorXKgbyEIWx0qOCEdr1wnZaPqdYwh0PITc,10381
230
+ souleyez/plugins/http_fingerprint.py,sha256=jC6Awq63zFUBBi7hCzTvthZkOjCB-11-lFST45JSjQM,20857
227
231
  souleyez/plugins/hydra.py,sha256=kfVJwgh3x1DC0wEtA-lkoY7qhQH1qKViYexUECZSPY4,29520
228
232
  souleyez/plugins/impacket_getnpusers.py,sha256=6TBxVTO9NGUbn5ShV-dCxPP11CFqf-Y3lAgt8_oP2Vg,8652
229
233
  souleyez/plugins/impacket_psexec.py,sha256=gU_MDSazDMj1TeWm5V9cD6wrLe3ULwbDv4jhg3Vm2rQ,8813
@@ -233,10 +237,10 @@ souleyez/plugins/john.py,sha256=ZTdwX5wu0LcTc0CW1IHbxGDexz8gSSWAOM9Xo4YsCHI,8785
233
237
  souleyez/plugins/macos_ssh.py,sha256=F5MzlIZN0L2BMhqCGsN38hSxsvCpnuqpoVj-4QKYODg,4844
234
238
  souleyez/plugins/mdns.py,sha256=wiYUKk-HlQigGJEwO86ECZG9z2ra3qEuRONQQ8WMgZA,4487
235
239
  souleyez/plugins/msf_auxiliary.py,sha256=pOL9yLJr_L0niwaHLPguM2Gaunr3iAe7HdIFbDLrkoU,24028
236
- souleyez/plugins/msf_exploit.py,sha256=EkIxEuVqExpY00RelkZLOYKUQY17Hxc5G3FpsW-6VXI,23430
240
+ souleyez/plugins/msf_exploit.py,sha256=BNAZz5EO4jgwx64dEB4OE-CQdYkqJk5N4eXT140DRqs,23765
237
241
  souleyez/plugins/nikto.py,sha256=_BPzypwNTliBg2Tr6sPGMKYFTvnQgqEHO1xesDZ-6uo,9957
238
242
  souleyez/plugins/nmap.py,sha256=Bh3xauEfsDw_hxSarNfLN-J6tNda-mG3DqHHkphpttE,15997
239
- souleyez/plugins/nuclei.py,sha256=wIqlkwfLvn2NfHog8Z_P7roxMFyJs0xmuclL584UaqI,14999
243
+ souleyez/plugins/nuclei.py,sha256=A2pbSVFGJCu1QlokpV4-d4SJWw4Yv8FrQiLHE9lwRfc,15862
240
244
  souleyez/plugins/plugin_base.py,sha256=zB0wzZBBx5V63Ipc7CUEApYADLC8T-A__CLnTaXb49A,6731
241
245
  souleyez/plugins/plugin_template.py,sha256=Tcd_JrCBNgT1o88On4vjG5Y7mlGSVGh-hXyUak_KXlE,1786
242
246
  souleyez/plugins/responder.py,sha256=ImhISPLtvzqvJSUQrgavlZ_h9ZrJ4s9NrTkPAhEcHQM,13160
@@ -338,7 +342,7 @@ souleyez/ui/export_view.py,sha256=0nQvVsKk7FU4uRzSfJ_qBZh_Lfn8hgGA2rbJ5bNg5-Y,65
338
342
  souleyez/ui/gap_analysis_view.py,sha256=AytAOEBq010wwo9hne1TE-uJpY_xicjLrFANbvN3r3w,30727
339
343
  souleyez/ui/help_system.py,sha256=nKGxLaMi-TKYs6xudTyw_tZqBb1cGFEuYYh6N-MAsJE,16648
340
344
  souleyez/ui/intelligence_view.py,sha256=VeAQ-3mANRnLIVpRqocL3JV0HUmJtADdxDeC5lzQhE0,32168
341
- souleyez/ui/interactive.py,sha256=aUlOa8k78OYh0vvNNsIwXx203qlB1lBChLx-Z5J0Zo8,1369865
345
+ souleyez/ui/interactive.py,sha256=d-fGuSDG1n2a5GeF1aY_mZMTDWqMsQfBB2_-1kpSobw,1375354
342
346
  souleyez/ui/interactive_selector.py,sha256=6A51fgmFRnemBY0aCPHIhK2Rpba16NjSGKLzC0Q5vI8,16407
343
347
  souleyez/ui/log_formatter.py,sha256=akhIkYoO_cCaKxS1V5N3iPmIrHzgsU7pmsedx70s9TI,3845
344
348
  souleyez/ui/menu_components.py,sha256=N8zq2QXGmfaLJ08l53MMYt1y-5LRWgpZH6r8nXHonj8,3519
@@ -347,7 +351,7 @@ souleyez/ui/pending_chains_view.py,sha256=FTxBbZ6zVgYC2dFqppx2GIHkwcS7TcFPgmck6A
347
351
  souleyez/ui/progress_indicators.py,sha256=CqAbnz_c6A7UHtGvsZwTCR2tcQkiCZpqVIyldvbhRio,4709
348
352
  souleyez/ui/recommendations_view.py,sha256=MbfDzOWrvZziRHg74O3KXU237MX7UrCj33jj0apSGwQ,10590
349
353
  souleyez/ui/rule_builder.py,sha256=GbH1JyqyG2XAbC2Utjlqm0hcjDYbIRXcaFzU0gpa_iY,19089
350
- souleyez/ui/setup_wizard.py,sha256=gamtKMpnB5eBr0cZIfjhTXfXD23MkqAlWKesybJFxRA,35189
354
+ souleyez/ui/setup_wizard.py,sha256=flzJqN5KhoALNmwnZ4edvic4lyq4i-nbb-ar2gcC6no,49056
351
355
  souleyez/ui/shortcuts.py,sha256=2rKWOh5H1LfHeP7dF3_iAbBE0_LhXILlUH4NfA98Ge8,10988
352
356
  souleyez/ui/splunk_gap_analysis_view.py,sha256=pjEVnXw7AUVDCRSgzAqf4OdjFDEor8ti9gcplXrkJ7o,39909
353
357
  souleyez/ui/splunk_vulns_view.py,sha256=sRHP8DpoUeDb9BIZuClq7Hl1po7dYnMeYlo-c0XUoKQ,13740
@@ -355,15 +359,15 @@ souleyez/ui/team_dashboard.py,sha256=ejM_44nbJbEIPxxxdEK7SCPcqQtcuJLjoO-C53qED2Y
355
359
  souleyez/ui/template_selector.py,sha256=qQJkFNnVjYctb-toeYlupP_U1asGrJWYi5-HR89Ab9g,19103
356
360
  souleyez/ui/terminal.py,sha256=Sw9ma1-DZclJE1sENjTZ3Q7r-Ct1NiB3Lpmv-RZW5tE,2372
357
361
  souleyez/ui/timeline_view.py,sha256=Ze8Mev9VE4_ECdNFEJwZK2V42EBguR83uCCdwAbJqmc,11111
358
- souleyez/ui/tool_setup.py,sha256=pb9GoK_UtW5H2bF3NVkYmcJmN6wJLyNaBBJE2rui260,32302
362
+ souleyez/ui/tool_setup.py,sha256=pkOUr-1inZlYnvaIc8Kj-Qaxk2KHWR2opJAgI_Er-Wo,32591
359
363
  souleyez/ui/tutorial.py,sha256=GGbBsze0ioL00WBWKEwPKy1ikegP1eusI2REDVMx4gY,14262
360
364
  souleyez/ui/tutorial_state.py,sha256=Thf7_qCj4VKjG7UqgJqa9kjIqiFUU-7Q7kG4v-u2B4A,8123
361
365
  souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lVEI,21830
362
366
  souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
- souleyez/utils/tool_checker.py,sha256=4iEEqXH9FfK5Brv6KFvcASP2afsG-KCTiuizcRCy-1E,28463
364
- souleyez-2.16.0.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
365
- souleyez-2.16.0.dist-info/METADATA,sha256=cm767GfF7oibLDhgQPLh1EMwwhKT8heffeRCwXeWaW8,10068
366
- souleyez-2.16.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
367
- souleyez-2.16.0.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
368
- souleyez-2.16.0.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
369
- souleyez-2.16.0.dist-info/RECORD,,
367
+ souleyez/utils/tool_checker.py,sha256=kQcXJVY5NiO-orQAUnpHhpQvR5UOBNHJ0PaT0fBxYoQ,30782
368
+ souleyez-2.26.0.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
369
+ souleyez-2.26.0.dist-info/METADATA,sha256=e6ejF-F9IVoFtz4IJNhCTi6OaEKM73_U5X8nkfk0rvk,10691
370
+ souleyez-2.26.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
371
+ souleyez-2.26.0.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
372
+ souleyez-2.26.0.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
373
+ souleyez-2.26.0.dist-info/RECORD,,