souleyez 2.22.0__py3-none-any.whl → 2.24.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.
souleyez/__init__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '2.22.0'
1
+ __version__ = '2.24.0'
@@ -29,15 +29,25 @@ logger = logging.getLogger(__name__)
29
29
 
30
30
  def get_msf_database_config() -> Optional[Dict[str, Any]]:
31
31
  """
32
- Get MSF database configuration from ~/.msf4/database.yml
32
+ Get MSF database configuration from ~/.msf4/database.yml or system-wide config.
33
+
34
+ Checks user config first, then falls back to system-wide config (Kali Linux).
33
35
 
34
36
  Returns:
35
37
  Dictionary with database config or None if not found/parseable
36
38
  """
37
- db_yml_path = Path.home() / ".msf4" / "database.yml"
38
-
39
- if not db_yml_path.exists():
40
- logger.debug(f"MSF database.yml not found at {db_yml_path}")
39
+ # Check user config first, then system-wide config (Kali uses system-wide)
40
+ user_db_path = Path.home() / ".msf4" / "database.yml"
41
+ system_db_path = Path('/usr/share/metasploit-framework/config/database.yml')
42
+
43
+ db_yml_path = None
44
+ if user_db_path.exists():
45
+ db_yml_path = user_db_path
46
+ elif system_db_path.exists():
47
+ db_yml_path = system_db_path
48
+
49
+ if not db_yml_path:
50
+ logger.debug("MSF database.yml not found in user or system config")
41
51
  return None
42
52
 
43
53
  try:
@@ -156,8 +156,10 @@ class DetectionValidator:
156
156
  job_command = _reconstruct_command(job)
157
157
  # Use started_at or finished_at for execution time
158
158
  executed_at = job.get('started_at') or job.get('finished_at') or job.get('created_at')
159
- # Job is successful if status is 'done'
160
- success = job.get('status') == 'done'
159
+ # Job ran successfully if status is done, no_results, or warning
160
+ # (all of these sent network traffic that should be detectable by SIEM)
161
+ job_status = job.get('status', '')
162
+ success = job_status in ('done', 'no_results', 'warning')
161
163
 
162
164
  # Extract target IP from command (common patterns)
163
165
  target_ip = None
souleyez/docs/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.22.0
4
- **Last Updated:** January 6, 2026
3
+ **Version:** 2.24.0
4
+ **Last Updated:** January 8, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
7
7
  Welcome to the SoulEyez documentation! This documentation covers architecture, development, user guides, and operational information for the SoulEyez penetration testing platform.
@@ -40,12 +40,14 @@ pipx is the Python community's recommended way to install CLI applications. It h
40
40
  # One-time setup
41
41
  sudo apt install pipx
42
42
  pipx ensurepath
43
- source ~/.bashrc
43
+ source ~/.bashrc # Kali Linux: use 'source ~/.zshrc' instead
44
44
 
45
45
  # Install SoulEyez
46
46
  pipx install souleyez
47
47
  ```
48
48
 
49
+ > **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
50
+
49
51
  On first run, SoulEyez will prompt you to install pentesting tools (nmap, sqlmap, gobuster, etc.).
50
52
 
51
53
  ```bash
souleyez/main.py CHANGED
@@ -173,7 +173,7 @@ def _check_privileged_tools():
173
173
 
174
174
 
175
175
  @click.group()
176
- @click.version_option(version='2.22.0')
176
+ @click.version_option(version='2.24.0')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -1388,19 +1388,24 @@ def _run_doctor(fix=False, verbose=False):
1388
1388
  path_dirs = os.environ.get('PATH', '').split(':')
1389
1389
  pipx_bin = str(Path.home() / '.local' / 'bin')
1390
1390
  go_bin = str(Path.home() / 'go' / 'bin')
1391
+
1392
+ # Detect shell config file (zsh for Kali, bash for others)
1393
+ shell = os.environ.get('SHELL', '/bin/bash')
1394
+ shell_rc = '~/.zshrc' if 'zsh' in shell else '~/.bashrc'
1395
+
1391
1396
  if pipx_bin in path_dirs:
1392
1397
  if verbose:
1393
1398
  check_pass("PATH includes ~/.local/bin (pipx)")
1394
1399
  else:
1395
1400
  if Path(pipx_bin).exists() and any(Path(pipx_bin).iterdir()):
1396
- check_warn("~/.local/bin not in PATH", "Add to ~/.bashrc: export PATH=\"$HOME/.local/bin:$PATH\"")
1401
+ check_warn("~/.local/bin not in PATH", f"Add to {shell_rc}: export PATH=\"$HOME/.local/bin:$PATH\"")
1397
1402
 
1398
1403
  if go_bin in path_dirs:
1399
1404
  if verbose:
1400
1405
  check_pass("PATH includes ~/go/bin")
1401
1406
  else:
1402
1407
  if Path(go_bin).exists() and any(Path(go_bin).iterdir()):
1403
- check_warn("~/go/bin not in PATH", "Add to ~/.bashrc: export PATH=\"$HOME/go/bin:$PATH\"")
1408
+ check_warn("~/go/bin not in PATH", f"Add to {shell_rc}: export PATH=\"$HOME/go/bin:$PATH\"")
1404
1409
 
1405
1410
  # Check database is writable
1406
1411
  if db_path.exists():
@@ -1430,8 +1435,10 @@ def _run_doctor(fix=False, verbose=False):
1430
1435
  # Section 7: MSF Database (if msfconsole available)
1431
1436
  if shutil.which('msfconsole'):
1432
1437
  click.echo(click.style("Metasploit", bold=True))
1438
+ # Check user config first, then system-wide config (Kali uses system-wide)
1433
1439
  msf_db = Path.home() / '.msf4' / 'database.yml'
1434
- if msf_db.exists():
1440
+ system_msf_db = Path('/usr/share/metasploit-framework/config/database.yml')
1441
+ if msf_db.exists() or system_msf_db.exists():
1435
1442
  check_pass("MSF database configured")
1436
1443
  else:
1437
1444
  check_fail("MSF database not initialized", "msfdb init")
@@ -29526,11 +29526,11 @@ def _check_msfdb_ready() -> bool:
29526
29526
  click.echo(" The Metasploit database needs to be initialized for full functionality.")
29527
29527
  click.echo(" Without it, you won't be able to store hosts, credentials, or loot.")
29528
29528
  click.echo()
29529
- if click.confirm(" Initialize database now? (runs: msfdb init)", default=True):
29529
+ if click.confirm(" Initialize database now? (runs: sudo msfdb init)", default=True):
29530
29530
  click.echo()
29531
- click.echo(click.style(" Running msfdb init...", fg='cyan'))
29531
+ click.echo(click.style(" Running sudo msfdb init...", fg='cyan'))
29532
29532
  try:
29533
- result = subprocess.run(['msfdb', 'init'], capture_output=False, text=True)
29533
+ result = subprocess.run(['sudo', 'msfdb', 'init'], capture_output=False, text=True)
29534
29534
  if result.returncode == 0:
29535
29535
  click.echo(click.style(" Database initialized successfully!", fg='green'))
29536
29536
  click.echo()
@@ -834,14 +834,16 @@ def _install_ollama() -> bool:
834
834
 
835
835
  click.echo()
836
836
  click.echo(" Installing Ollama...")
837
- click.echo(" " + click.style("(This may take a minute)", fg='bright_black'))
837
+ click.echo(" " + click.style("(This may take a minute - downloading ~100MB)", fg='bright_black'))
838
838
  click.echo()
839
839
 
840
840
  try:
841
- # Run the official Ollama install script - let it output directly to terminal
841
+ # Run the official Ollama install script with timeout
842
+ # Add curl timeouts to fail faster on network issues
842
843
  result = subprocess.run(
843
- ['bash', '-c', 'curl -fsSL https://ollama.ai/install.sh | sh'],
844
- check=False
844
+ ['bash', '-c', 'curl --connect-timeout 30 --max-time 300 -fsSL https://ollama.ai/install.sh | sh'],
845
+ check=False,
846
+ timeout=360 # 6 minute total timeout
845
847
  )
846
848
 
847
849
  if result.returncode == 0:
@@ -853,10 +855,25 @@ def _install_ollama() -> bool:
853
855
  else:
854
856
  click.echo()
855
857
  click.echo(" " + click.style("✗ Installation failed", fg='red'))
856
- click.echo(" You can install manually from https://ollama.ai")
858
+ click.echo(" " + click.style("This is usually a network issue (slow connection or timeout).", fg='yellow'))
859
+ click.echo()
860
+ click.echo(" To install manually:")
861
+ click.echo(" curl -fsSL https://ollama.ai/install.sh | sh")
862
+ click.echo()
863
+ click.echo(" Or visit: https://ollama.ai")
857
864
  click.pause(" Press any key to continue...")
858
865
  return False
859
866
 
867
+ except subprocess.TimeoutExpired:
868
+ click.echo()
869
+ click.echo(" " + click.style("✗ Installation timed out", fg='red'))
870
+ click.echo(" " + click.style("The download took too long. Check your internet connection.", fg='yellow'))
871
+ click.echo()
872
+ click.echo(" To install manually:")
873
+ click.echo(" curl -fsSL https://ollama.ai/install.sh | sh")
874
+ click.pause(" Press any key to continue...")
875
+ return False
876
+
860
877
  except Exception as e:
861
878
  click.echo()
862
879
  click.echo(click.style(f" ✗ Error: {e}", fg='red'))
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):
@@ -223,9 +223,9 @@ EXTERNAL_TOOLS = {
223
223
  },
224
224
  'dalfox': {
225
225
  'command': 'dalfox',
226
- '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',
227
- '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',
228
- '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',
229
229
  'description': 'XSS vulnerability scanner'
230
230
  },
231
231
  },
@@ -721,6 +721,7 @@ def check_msfdb_status() -> Dict[str, any]:
721
721
  - message: str - Human-readable status message
722
722
  """
723
723
  import subprocess
724
+ from pathlib import Path
724
725
 
725
726
  result = {
726
727
  'initialized': False,
@@ -734,6 +735,32 @@ def check_msfdb_status() -> Dict[str, any]:
734
735
  result['message'] = 'msfdb command not found - Metasploit may not be installed'
735
736
  return result
736
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
+
737
764
  try:
738
765
  # Run msfdb status
739
766
  proc = subprocess.run(
@@ -743,10 +770,23 @@ def check_msfdb_status() -> Dict[str, any]:
743
770
  timeout=10
744
771
  )
745
772
  output = proc.stdout + proc.stderr
746
-
747
- # Parse output for status indicators
748
773
  output_lower = output.lower()
749
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
+
750
790
  # Check if database is initialized
751
791
  if 'no database' in output_lower or 'not initialized' in output_lower:
752
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.22.0
3
+ Version: 2.24.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.22.0
75
+ ## Version: 2.24.0
76
76
 
77
77
  ### What's Included
78
78
 
@@ -127,6 +127,8 @@ pipx ensurepath # Add pipx apps to your PATH
127
127
  source ~/.bashrc # Reload your shell (or close and reopen terminal)
128
128
  ```
129
129
 
130
+ > **Kali Linux users:** Kali uses zsh by default. Use `source ~/.zshrc` instead of `source ~/.bashrc`
131
+
130
132
  > 💡 **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
133
 
132
134
  ### Step 2: Install SoulEyez
@@ -297,4 +299,4 @@ Happy hacking! 🛡️
297
299
 
298
300
  ---
299
301
 
300
- **Version**: 2.22.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
302
+ **Version**: 2.24.0 | **Release Date**: January 2026 | **Maintainer**: CyberSoul Security
@@ -1,10 +1,10 @@
1
- souleyez/__init__.py,sha256=e3wnfK3ygeP11qAKgDmVNJ8-dgOHy1rRHY_GUip8WZo,23
1
+ souleyez/__init__.py,sha256=sIT006uMNit4Q9eFyGhgp_bwaM2S573cnnpqwUjTwVs,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=xoMR5YWGvd7z90RGb_y-T-P0LMRLUAt3cSTMXOAPd_g,118990
7
+ souleyez/main.py,sha256=LPbIditsOKFHf8N9tUfNnn0JCWp6G8TrOSzAWsGimDw,119362
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
@@ -52,7 +52,7 @@ souleyez/core/msf_database.py,sha256=xaGt0wMX15CQv3-s2NobLK8niHgrE98qAkmS9zhrLe8
52
52
  souleyez/core/msf_integration.py,sha256=J9EXecxq72q65Itv1lBqjSkhh8Zx6SbZO2VPtlZXuOg,64842
53
53
  souleyez/core/msf_rpc_client.py,sha256=DL-_uJz_6G1pQud8iTg3_SjRJmgl4-W1YWmb0xg6f8Q,15994
54
54
  souleyez/core/msf_rpc_manager.py,sha256=8irWzXdiASVIokGSTf8DV57Uh_DUJ3Q6L-2oR9y8qeI,15572
55
- souleyez/core/msf_sync_manager.py,sha256=iEZ8_CJNdFAaEpp4PecIqrqslSH5oR23qrfJnrPntOg,27354
55
+ souleyez/core/msf_sync_manager.py,sha256=1alAqM2jHiMxbBdPTQL9Vjzbl8XVhrnS2VYhVdfNwUw,27779
56
56
  souleyez/core/network_utils.py,sha256=-4WgUE91RBzyXDFgGTxMa0zsWowJ47cEOAKXNeVa-Wc,4555
57
57
  souleyez/core/parser_handler.py,sha256=cyZtEDctqMdWgubsU0Jg6o4XqBgyfaJ_AeBHQmmv4hM,5564
58
58
  souleyez/core/pending_chains.py,sha256=Dnka7JK7A8gTWCGpTu6qrIgIDIXprkZmwJ0Rm2oWqRE,10972
@@ -101,8 +101,8 @@ souleyez/data/wordlists/web_files_common.txt,sha256=mORKPa5K9LrV0OJIVHPvF4tSeIN2
101
101
  souleyez/detection/__init__.py,sha256=QIhvXjFdjrquQ6A0VQ7GZQkK_EXB59t8Dv9PKXhEUeM,221
102
102
  souleyez/detection/attack_signatures.py,sha256=akgWwiIkh6WYnghCuLhRV0y6FS0SQ0caGF8tZUc49oA,6965
103
103
  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=wPkim83qx2f76XVt_B-j83oUVotg1gQDeomYVrO0fe8,7183
104
+ souleyez/detection/validator.py,sha256=-AJ7QSJ3-6jFKLnPG_Rc34IXyF4JPyI82BFUgTA9zw0,15641
105
+ souleyez/docs/README.md,sha256=CTxwJFGPz0ZYlyO0l0ZKmF_cxtZlGZB5jYjfPw3ha4o,7183
106
106
  souleyez/docs/api-reference/cli-commands.md,sha256=lTLFnILN3YRVdqCaag7WgsYXfDGglb1TuPexkxDsVdE,12917
107
107
  souleyez/docs/api-reference/engagement-api.md,sha256=nd-EvQMtiJrobg2bzFEADp853HP1Uhb9dmgok0_-neE,11672
108
108
  souleyez/docs/api-reference/integration-guide.md,sha256=c96uX79ukHyYotLa54wZ20Kx-EUZnrKegTeGkfLD-pw,16285
@@ -132,7 +132,7 @@ souleyez/docs/user-guide/dependencies.md,sha256=WOPilg0W0U3KnsdGREkM5_gAG7Rr5P10
132
132
  souleyez/docs/user-guide/evidence-vault.md,sha256=PNg7cIUlVXr41iMJTi66j4qUV2fkrPATljunx0pD5sI,9454
133
133
  souleyez/docs/user-guide/exploit-suggestions.md,sha256=Qv9CPwDe9ypKoeUG3XAL6dtg4YA5PmlE5DA6JVHK4Nk,17971
134
134
  souleyez/docs/user-guide/getting-started.md,sha256=4QfZiQlYnReORAUpsy2gWzKe1uFHOePZyzDSz8zldgc,20932
135
- souleyez/docs/user-guide/installation.md,sha256=ljRdRCX2nekUmZLIsw1Jy-pgkX-8l3uC6BWQ4OJMr9o,13761
135
+ souleyez/docs/user-guide/installation.md,sha256=HGD4G2UYydiO-lp_VEvyClLtyBqnpqq52IuE6_al8lQ,13911
136
136
  souleyez/docs/user-guide/metasploit-integration.md,sha256=kSCai2PO4kiv3BEUSXa6mIC3vCdqIA70GyLVQH_Kaj4,10026
137
137
  souleyez/docs/user-guide/rbac.md,sha256=ULY5IbTCoNGOnvRrT1oH5XayCqD10PKoUwRDBRzpK2g,21055
138
138
  souleyez/docs/user-guide/report-generation.md,sha256=7Qe47jfPxmZ4U1uuM3kggPLQ6JM7_TCOOhYIvYen4Ao,20754
@@ -338,7 +338,7 @@ souleyez/ui/export_view.py,sha256=0nQvVsKk7FU4uRzSfJ_qBZh_Lfn8hgGA2rbJ5bNg5-Y,65
338
338
  souleyez/ui/gap_analysis_view.py,sha256=AytAOEBq010wwo9hne1TE-uJpY_xicjLrFANbvN3r3w,30727
339
339
  souleyez/ui/help_system.py,sha256=nKGxLaMi-TKYs6xudTyw_tZqBb1cGFEuYYh6N-MAsJE,16648
340
340
  souleyez/ui/intelligence_view.py,sha256=VeAQ-3mANRnLIVpRqocL3JV0HUmJtADdxDeC5lzQhE0,32168
341
- souleyez/ui/interactive.py,sha256=Wj6tMr5h_DQx8myIFeTOimZNq2DxDqmBO45R_pJ8vEg,1371261
341
+ souleyez/ui/interactive.py,sha256=3jhlwxhrc0NzGTsYNiakWcdB516Gn2wNzYbgzpT7jR8,1371279
342
342
  souleyez/ui/interactive_selector.py,sha256=6A51fgmFRnemBY0aCPHIhK2Rpba16NjSGKLzC0Q5vI8,16407
343
343
  souleyez/ui/log_formatter.py,sha256=akhIkYoO_cCaKxS1V5N3iPmIrHzgsU7pmsedx70s9TI,3845
344
344
  souleyez/ui/menu_components.py,sha256=N8zq2QXGmfaLJ08l53MMYt1y-5LRWgpZH6r8nXHonj8,3519
@@ -347,7 +347,7 @@ souleyez/ui/pending_chains_view.py,sha256=FTxBbZ6zVgYC2dFqppx2GIHkwcS7TcFPgmck6A
347
347
  souleyez/ui/progress_indicators.py,sha256=CqAbnz_c6A7UHtGvsZwTCR2tcQkiCZpqVIyldvbhRio,4709
348
348
  souleyez/ui/recommendations_view.py,sha256=MbfDzOWrvZziRHg74O3KXU237MX7UrCj33jj0apSGwQ,10590
349
349
  souleyez/ui/rule_builder.py,sha256=GbH1JyqyG2XAbC2Utjlqm0hcjDYbIRXcaFzU0gpa_iY,19089
350
- souleyez/ui/setup_wizard.py,sha256=5XQhceznymRe1JsbJuxRnWA6aRVfQbvMTjbu_VYwpdo,45727
350
+ souleyez/ui/setup_wizard.py,sha256=vTkNTmDZnKU0UCIWt7N83pVzsScq4AJdAkHam7k1Kx0,46613
351
351
  souleyez/ui/shortcuts.py,sha256=2rKWOh5H1LfHeP7dF3_iAbBE0_LhXILlUH4NfA98Ge8,10988
352
352
  souleyez/ui/splunk_gap_analysis_view.py,sha256=pjEVnXw7AUVDCRSgzAqf4OdjFDEor8ti9gcplXrkJ7o,39909
353
353
  souleyez/ui/splunk_vulns_view.py,sha256=sRHP8DpoUeDb9BIZuClq7Hl1po7dYnMeYlo-c0XUoKQ,13740
@@ -355,15 +355,15 @@ souleyez/ui/team_dashboard.py,sha256=ejM_44nbJbEIPxxxdEK7SCPcqQtcuJLjoO-C53qED2Y
355
355
  souleyez/ui/template_selector.py,sha256=qQJkFNnVjYctb-toeYlupP_U1asGrJWYi5-HR89Ab9g,19103
356
356
  souleyez/ui/terminal.py,sha256=Sw9ma1-DZclJE1sENjTZ3Q7r-Ct1NiB3Lpmv-RZW5tE,2372
357
357
  souleyez/ui/timeline_view.py,sha256=Ze8Mev9VE4_ECdNFEJwZK2V42EBguR83uCCdwAbJqmc,11111
358
- souleyez/ui/tool_setup.py,sha256=pb9GoK_UtW5H2bF3NVkYmcJmN6wJLyNaBBJE2rui260,32302
358
+ souleyez/ui/tool_setup.py,sha256=pkOUr-1inZlYnvaIc8Kj-Qaxk2KHWR2opJAgI_Er-Wo,32591
359
359
  souleyez/ui/tutorial.py,sha256=GGbBsze0ioL00WBWKEwPKy1ikegP1eusI2REDVMx4gY,14262
360
360
  souleyez/ui/tutorial_state.py,sha256=Thf7_qCj4VKjG7UqgJqa9kjIqiFUU-7Q7kG4v-u2B4A,8123
361
361
  souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lVEI,21830
362
362
  souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
363
- souleyez/utils/tool_checker.py,sha256=zMUNS0IRfInp5yCyJ8tbGHmeYvCJnLwJl9E48rF5NFw,29550
364
- souleyez-2.22.0.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
365
- souleyez-2.22.0.dist-info/METADATA,sha256=U6RNDuqreIVKkI4ja2pa0eW4-XXBBt5adIHu-ALXi78,10068
366
- souleyez-2.22.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
367
- souleyez-2.22.0.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
368
- souleyez-2.22.0.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
369
- souleyez-2.22.0.dist-info/RECORD,,
363
+ souleyez/utils/tool_checker.py,sha256=kQcXJVY5NiO-orQAUnpHhpQvR5UOBNHJ0PaT0fBxYoQ,30782
364
+ souleyez-2.24.0.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
365
+ souleyez-2.24.0.dist-info/METADATA,sha256=AAMZ0WSeavH4Ijo3hKdL3r5LNX7U4qpePbLHEGCaAjU,10171
366
+ souleyez-2.24.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
367
+ souleyez-2.24.0.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
368
+ souleyez-2.24.0.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
369
+ souleyez-2.24.0.dist-info/RECORD,,