souleyez 2.40.0__py3-none-any.whl → 2.43.3__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.
@@ -23,11 +23,19 @@ from datetime import datetime
23
23
  from pathlib import Path
24
24
  from typing import Optional, Tuple
25
25
 
26
+
27
+ def _add_base64_padding(data: str) -> str:
28
+ """Add padding to base64 string if missing."""
29
+ padding = 4 - len(data) % 4
30
+ if padding != 4:
31
+ data += '=' * padding
32
+ return data
33
+
26
34
  # Ed25519 public key for license verification (Base64 encoded)
27
35
  # Private key is kept secure by the license issuer
28
36
  # This public key can only VERIFY signatures, not create them
29
37
  LICENSE_PUBLIC_KEY = """-----BEGIN PUBLIC KEY-----
30
- MCowBQYDK2VwAyEAQcYKDuMbdSnw0Ra8PX1BedqyNV7JBKeFnULM5PbINN0=
38
+ MCowBQYDK2VwAyEABS0eqd9OPCtqOvQI1Aw8vGnXiX1qecBjZ0UY7esPk1I=
31
39
  -----END PUBLIC KEY-----"""
32
40
 
33
41
 
@@ -109,7 +117,8 @@ class LicenseValidator:
109
117
  try:
110
118
  # Decode the license key
111
119
  try:
112
- decoded = base64.urlsafe_b64decode(license_key.strip())
120
+ padded_key = _add_base64_padding(license_key.strip())
121
+ decoded = base64.urlsafe_b64decode(padded_key)
113
122
  payload = json.loads(decoded)
114
123
  except Exception as e:
115
124
  return LicenseInfo(
@@ -232,7 +241,7 @@ class LicenseValidator:
232
241
  message = json.dumps(data, sort_keys=True, separators=(',', ':')).encode()
233
242
 
234
243
  # Decode signature
235
- signature = base64.urlsafe_b64decode(signature_b64)
244
+ signature = base64.urlsafe_b64decode(_add_base64_padding(signature_b64))
236
245
 
237
246
  # Verify
238
247
  public_key.verify(signature, message)
@@ -258,7 +267,7 @@ class LicenseValidator:
258
267
  ).digest()
259
268
 
260
269
  try:
261
- actual = base64.urlsafe_b64decode(signature_b64)
270
+ actual = base64.urlsafe_b64decode(_add_base64_padding(signature_b64))
262
271
  return hmac.compare_digest(expected, actual)
263
272
  except Exception:
264
273
  return False
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.40.0')
176
+ @click.version_option(version='2.43.3')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -704,7 +704,7 @@ class ReportGenerator:
704
704
  if user.tier != Tier.PRO:
705
705
  raise PermissionError(
706
706
  "AI-enhanced reports require a PRO license. "
707
- "Upgrade at https://souleyez.com/pricing"
707
+ "Upgrade at https://www.cybersoulsecurity.com/souleyez"
708
708
  )
709
709
  except ImportError:
710
710
  # Auth module not available - allow
@@ -203,7 +203,7 @@ def _show_upgrade_prompt(feature_name: str):
203
203
  f" • MSF Integration - Metasploit attack chains\n"
204
204
  f" • Reports & Export - Professional deliverables\n"
205
205
  f" • Team Dashboard - Collaboration & activity tracking\n\n"
206
- f"[cyan]Visit: https://souleyez.com/pricing[/cyan]",
206
+ f"[cyan]Visit: https://www.cybersoulsecurity.com/souleyez[/cyan]",
207
207
  title="🔒 Upgrade Required",
208
208
  border_style="yellow"
209
209
  ))
@@ -8593,7 +8593,7 @@ def _license_management_menu():
8593
8593
  click.echo(" [y] Sync User Tier - Update your account to PRO")
8594
8594
  click.echo(" [d] Deactivate - Remove license (revert to FREE)")
8595
8595
  click.echo()
8596
- click.echo(" [p] Purchase Pro - Visit souleyez.com/pricing")
8596
+ click.echo(" [p] Purchase Pro - Visit cybersoulsecurity.com/souleyez")
8597
8597
  click.echo()
8598
8598
  click.echo(" [q] ← Back")
8599
8599
  click.echo()
@@ -8742,9 +8742,9 @@ def _license_management_menu():
8742
8742
 
8743
8743
  elif choice == "p":
8744
8744
  click.echo()
8745
- click.echo(" Visit: https://souleyez.com/pricing")
8745
+ click.echo(" Visit: https://www.cybersoulsecurity.com/souleyez")
8746
8746
  click.echo()
8747
- click.echo(" Or contact: sales@souleyez.com")
8747
+ click.echo(" Or contact: cysoul.secit@gmail.com")
8748
8748
  click.pause("\n Press Enter to continue...")
8749
8749
 
8750
8750
  else:
souleyez/ui/tool_setup.py CHANGED
@@ -24,6 +24,19 @@ from souleyez.utils.tool_checker import (
24
24
  )
25
25
  from souleyez.ui.design_system import DesignSystem
26
26
 
27
+
28
+ def _reset_terminal():
29
+ """Reset terminal to sane state after interrupt."""
30
+ try:
31
+ # Reset terminal using stty
32
+ subprocess.run(['stty', 'sane'], check=False, timeout=5)
33
+ # Also try the reset command for good measure
34
+ subprocess.run(['reset', '-I'], check=False, timeout=5,
35
+ stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)
36
+ except Exception:
37
+ pass
38
+
39
+
27
40
  # Prerequisites needed for various install methods
28
41
  PREREQUISITES = {
29
42
  'build-deps': {
@@ -380,6 +393,17 @@ def _ensure_msfdb_initialized(console):
380
393
 
381
394
  def run_tool_setup(check_only: bool = False, install_all: bool = False):
382
395
  """Run the tool setup wizard."""
396
+ try:
397
+ _run_tool_setup_impl(check_only, install_all)
398
+ except KeyboardInterrupt:
399
+ # Reset terminal to sane state after Ctrl+C
400
+ _reset_terminal()
401
+ print("\n\n Setup cancelled.")
402
+ raise
403
+
404
+
405
+ def _run_tool_setup_impl(check_only: bool = False, install_all: bool = False):
406
+ """Internal implementation of tool setup wizard."""
383
407
  console = DesignSystem.get_console()
384
408
  distro = detect_distro()
385
409
 
@@ -773,22 +797,87 @@ def _install_snap_tool(console, tool: Dict) -> bool:
773
797
 
774
798
  def _install_git_tool(console, tool: Dict) -> bool:
775
799
  """Install a tool from git (requires sudo for /opt)."""
800
+ import re
801
+
776
802
  name = tool['name']
777
803
  cmd = tool['install']
778
804
 
779
- console.print(f" {name}...", end=" ")
805
+ console.print(f" {name}...")
806
+
807
+ # Parse the command to handle existing directories properly
808
+ # Commands are typically: git clone <url> <dir> && pip install ... && ln -sf ...
809
+ commands = [c.strip() for c in cmd.split('&&')]
810
+
811
+ clone_cmd = None
812
+ post_clone_cmds = []
813
+ target_dir = None
814
+
815
+ for i, c in enumerate(commands):
816
+ if 'git clone' in c:
817
+ clone_cmd = c
818
+ post_clone_cmds = commands[i + 1:]
819
+ # Extract target directory from clone command
820
+ # Pattern: git clone <url> <directory>
821
+ match = re.search(r'git clone\s+\S+\s+(\S+)', c)
822
+ if match:
823
+ target_dir = match.group(1)
824
+ break
825
+
826
+ # If we found a git clone command and target directory
827
+ if clone_cmd and target_dir:
828
+ dir_exists = Path(target_dir).exists()
829
+
830
+ if dir_exists:
831
+ console.print(f" [dim]Directory {target_dir} exists, updating...[/dim]")
832
+ # Try to update with git pull
833
+ pull_cmd = f"sudo git -C {target_dir} pull"
834
+ success, _, stderr = _run_command(pull_cmd, console, capture=True)
835
+
836
+ if not success and "not a git repository" in stderr.lower():
837
+ # Directory exists but isn't a git repo - remove and re-clone
838
+ console.print(f" [dim]Not a git repo, re-cloning...[/dim]")
839
+ rm_cmd = f"sudo rm -rf {target_dir}"
840
+ _run_command(rm_cmd, console, capture=True)
841
+ success, _, stderr = _run_command(clone_cmd, console, capture=True)
842
+ if not success:
843
+ console.print(f"[red]✗[/red]")
844
+ if stderr:
845
+ console.print(f" [dim]{stderr[:80]}[/dim]")
846
+ return False
847
+ elif not success:
848
+ # Pull failed for other reasons, try to continue anyway
849
+ console.print(f" [yellow]⚠ git pull failed, continuing with existing files[/yellow]")
850
+ else:
851
+ # Directory doesn't exist, run the clone
852
+ success, _, stderr = _run_command(clone_cmd, console, capture=True)
853
+ if not success:
854
+ console.print(f"[red]✗[/red]")
855
+ if stderr:
856
+ console.print(f" [dim]{stderr[:80]}[/dim]")
857
+ return False
858
+
859
+ # Run post-clone commands (pip install, symlink, etc.)
860
+ for post_cmd in post_clone_cmds:
861
+ post_cmd = post_cmd.strip()
862
+ if not post_cmd:
863
+ continue
864
+ success, _, stderr = _run_command(post_cmd, console, capture=True)
865
+ if not success:
866
+ console.print(f"[red]✗[/red]")
867
+ if stderr:
868
+ console.print(f" [dim]{stderr[:80]}[/dim]")
869
+ return False
780
870
 
781
- # These typically clone to /opt and need sudo
871
+ console.print(f" [green]✓[/green]")
872
+ return True
873
+
874
+ # Fallback: run the full command as-is (no git clone detected)
782
875
  success, _, stderr = _run_command(cmd, console, capture=True)
783
876
 
784
877
  if success:
785
878
  console.print("[green]✓[/green]")
786
879
  return True
787
880
  else:
788
- # Check if directory already exists
789
- if "already exists" in stderr:
790
- console.print("[green]✓ (already installed)[/green]")
791
- return True
792
881
  console.print(f"[red]✗[/red]")
793
882
  if stderr:
794
883
  console.print(f" [dim]{stderr[:80]}[/dim]")
souleyez/ui/tutorial.py CHANGED
@@ -292,6 +292,14 @@ def _show_tutorial_complete():
292
292
  click.echo(click.style("⚠️ NEVER scan systems without permission!", fg='red', bold=True))
293
293
  click.echo()
294
294
 
295
+ # Always disable auto-chaining (it's a PRO feature, tutorial enabled for demo)
296
+ try:
297
+ from souleyez.core.tool_chaining import ToolChaining
298
+ chaining = ToolChaining()
299
+ chaining.disable_chaining()
300
+ except Exception:
301
+ pass
302
+
295
303
  # Offer to clean up tutorial data
296
304
  click.echo()
297
305
  if click.confirm("Clean up tutorial engagement and jobs?", default=True):
@@ -316,6 +324,14 @@ def _cleanup_tutorial_data():
316
324
  try:
317
325
  from souleyez.storage.engagements import EngagementManager
318
326
  from souleyez.engine.background import list_jobs, delete_job, kill_job
327
+ from souleyez.core.tool_chaining import ToolChaining
328
+
329
+ # Disable auto-chaining (it's a PRO feature, tutorial enabled it for demo)
330
+ try:
331
+ chaining = ToolChaining()
332
+ chaining.disable_chaining()
333
+ except Exception:
334
+ pass
319
335
 
320
336
  em = EngagementManager()
321
337
 
@@ -320,8 +320,8 @@ EXTERNAL_TOOLS = {
320
320
  },
321
321
  'responder': {
322
322
  'command': 'responder',
323
- 'install_kali': 'sudo apt install responder && sudo pip install aioquic',
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',
323
+ 'install_kali': 'sudo apt install responder && sudo pip install --break-system-packages aioquic',
324
+ 'install_ubuntu': 'sudo git clone https://github.com/lgandx/Responder.git /opt/Responder && sudo pip install --break-system-packages -r /opt/Responder/requirements.txt aioquic && sudo ln -sf /opt/Responder/Responder.py /usr/local/bin/responder',
325
325
  'install_method': 'kali_only',
326
326
  'description': 'LLMNR, NBT-NS and MDNS poisoner',
327
327
  'needs_sudo': True # Required for network poisoning
@@ -0,0 +1,269 @@
1
+ Metadata-Version: 2.4
2
+ Name: souleyez
3
+ Version: 2.43.3
4
+ Summary: AI-Powered Penetration Testing Platform with 40+ integrated tools
5
+ Author-email: CyberSoul Security <contact@cybersoulsecurity.com>
6
+ Maintainer-email: CyberSoul Security <contact@cybersoulsecurity.com>
7
+ License: MIT
8
+ Project-URL: Homepage, https://github.com/cyber-soul-security/SoulEyez
9
+ Project-URL: Documentation, https://github.com/cyber-soul-security/SoulEyez#readme
10
+ Project-URL: Repository, https://github.com/cyber-soul-security/SoulEyez.git
11
+ Project-URL: Issues, https://github.com/cyber-soul-security/SoulEyez/issues
12
+ Keywords: pentesting,security,hacking,penetration-testing,cybersecurity,nmap,metasploit
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Environment :: Console
15
+ Classifier: Environment :: Console :: Curses
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Intended Audience :: Information Technology
18
+ Classifier: Intended Audience :: System Administrators
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: MacOS
22
+ Classifier: Programming Language :: Python :: 3
23
+ Classifier: Programming Language :: Python :: 3.8
24
+ Classifier: Programming Language :: Python :: 3.9
25
+ Classifier: Programming Language :: Python :: 3.10
26
+ Classifier: Programming Language :: Python :: 3.11
27
+ Classifier: Programming Language :: Python :: 3.12
28
+ Classifier: Programming Language :: Python :: 3.13
29
+ Classifier: Topic :: Security
30
+ Classifier: Topic :: System :: Networking
31
+ Requires-Python: >=3.8
32
+ Description-Content-Type: text/markdown
33
+ License-File: LICENSE
34
+ Requires-Dist: anthropic>=0.40.0
35
+ Requires-Dist: click>=8.0.0
36
+ Requires-Dist: cryptography>=3.4.0
37
+ Requires-Dist: defusedxml>=0.7.0
38
+ Requires-Dist: impacket>=0.11.0
39
+ Requires-Dist: markdown>=3.4.0
40
+ Requires-Dist: msgpack>=1.0.0
41
+ Requires-Dist: ollama>=0.1.0
42
+ Requires-Dist: psycopg2-binary>=2.9.0
43
+ Requires-Dist: psutil>=5.9.0
44
+ Requires-Dist: python-json-logger>=2.0.0
45
+ Requires-Dist: requests>=2.28.0
46
+ Requires-Dist: rich>=10.0.0
47
+ Requires-Dist: wcwidth>=0.2.0
48
+ Provides-Extra: dev
49
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
50
+ Dynamic: license-file
51
+
52
+ # SoulEyez — AI-Powered Penetration Testing Platform
53
+
54
+ [![CI](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml/badge.svg)](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
55
+ [![codecov](https://codecov.io/gh/cyber-soul-security/souleyez/branch/main/graph/badge.svg)](https://codecov.io/gh/cyber-soul-security/souleyez)
56
+ [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
57
+ [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
58
+ [![Security: bandit](https://img.shields.io/badge/security-bandit-yellow.svg)](https://github.com/PyCQA/bandit)
59
+
60
+ ---
61
+
62
+ ## What is SoulEyez?
63
+
64
+ **SoulEyez is your penetration testing command center.** Instead of juggling dozens of terminal windows and text files, SoulEyez gives you one organized place to:
65
+
66
+ - **Run security scans** — Execute tools like Nmap, Gobuster, SQLMap with simple commands
67
+ - **Auto-discover next steps** — When one scan finds something interesting, SoulEyez automatically suggests (or runs) the next logical tool
68
+ - **Stay organized** — Keep all your targets, findings, and credentials in one searchable database
69
+ - **Generate reports** — Export professional reports when you're done
70
+
71
+ ---
72
+
73
+ ## Who is this for?
74
+
75
+ - **Security professionals** conducting authorized penetration tests
76
+ - **CTF players** who want better organization during competitions
77
+ - **Students** learning penetration testing methodology
78
+
79
+ > **Important:** Only use SoulEyez on systems you have explicit authorization to test. Unauthorized scanning or exploitation is illegal.
80
+
81
+ ---
82
+
83
+ ## Features
84
+
85
+ ### Core Capabilities
86
+
87
+ - 🎯 **Interactive Dashboard** — Real-time engagement monitoring with live updates
88
+ - 🔗 **Smart Tool Chaining** — Automatic follow-up scans based on discoveries
89
+ - 📊 **Findings Management** — Track and categorize vulnerabilities by severity
90
+ - 🔑 **Credential Vault** — Encrypted storage for discovered credentials
91
+ - 🌐 **Network Mapping** — Host discovery and service enumeration
92
+ - 📈 **Progress Tracking** — Monitor scan completion and tool execution
93
+ - 💾 **SQLite Storage** — Local database for all engagement data
94
+ - 🔄 **Background Jobs** — Queue-based tool execution with status monitoring
95
+
96
+ ### Integrated Tools (40+)
97
+
98
+ - **Reconnaissance**: nmap, masscan, theHarvester, whois, dnsrecon
99
+ - **Web Testing**: nikto, gobuster, ffuf, sqlmap, nuclei, wpscan
100
+ - **Enumeration**: enum4linux-ng, smbmap, crackmapexec, snmpwalk
101
+ - **Exploitation**: Metasploit integration, searchsploit
102
+ - **Password Attacks**: hydra, hashcat, john
103
+ - **Post-Exploitation**: impacket suite, bloodhound
104
+
105
+ ### Pentest Workflow & Intelligence
106
+
107
+ - 📁 **Evidence Vault** — Unified artifact collection organized by PTES phases
108
+ - 🎯 **Attack Surface Dashboard** — Track what's exploited vs pending with priority scoring
109
+ - 💣 **Exploit Suggestions** — Automatic CVE/Metasploit recommendations for discovered services
110
+ - 🔗 **Correlation Engine** — Cross-phase attack tracking and gap analysis
111
+ - 📝 **Report Generator** — Professional reports in Markdown/HTML/PDF formats
112
+ - ✅ **Deliverable Tracking** — Manage testing requirements and acceptance criteria
113
+ - 📸 **Screenshot Management** — Organized visual evidence by methodology phase
114
+
115
+ ### SIEM Integration
116
+
117
+ - 🛡️ **SIEM Connectors** — Connect to Wazuh, Splunk, and other SIEM platforms
118
+ - ✓ **Detection Validation** — Verify if your attacks triggered SIEM alerts
119
+ - 🔍 **Vulnerability Management** — View CVEs from SIEM vulnerability data
120
+ - ⚖️ **Gap Analysis** — Compare passive (SIEM) vs active (scan) findings
121
+ - 🗺️ **MITRE ATT&CK Reports** — Detection coverage heatmaps by technique
122
+ - 📡 **Real-time Alerts** — Monitor SIEM alerts during live engagements
123
+
124
+ ### FREE vs PRO
125
+
126
+ | Feature | FREE | PRO |
127
+ |---------|------|-----|
128
+ | Core features (scans, findings, credentials) | ✅ | ✅ |
129
+ | Report generation | ✅ | ✅ |
130
+ | AI-powered suggestions & auto-chaining | ❌ | ✅ |
131
+ | Metasploit integration & exploit suggestions | ❌ | ✅ |
132
+ | SIEM integration & detection validation | ❌ | ✅ |
133
+ | MITRE ATT&CK reports | ❌ | ✅ |
134
+
135
+ ---
136
+
137
+ ## Quick Start
138
+
139
+ ### Step 1: Install Prerequisites
140
+
141
+ ```bash
142
+ sudo apt install pipx # Install pipx
143
+ pipx ensurepath # Add pipx apps to your PATH
144
+ source ~/.bashrc # Reload shell (Kali: use ~/.zshrc)
145
+ ```
146
+
147
+ ### Step 2: Install SoulEyez
148
+
149
+ ```bash
150
+ pipx install souleyez
151
+ ```
152
+
153
+ ### Step 3: Launch SoulEyez
154
+
155
+ ```bash
156
+ souleyez interactive
157
+ ```
158
+
159
+ ### Step 4: First-Time Setup
160
+
161
+ On your first run, the setup wizard guides you through:
162
+
163
+ 1. **Vault Password** — Create a master password that encrypts sensitive data
164
+ 2. **First Engagement** — Set up your first project and select engagement type
165
+ 3. **Tool Check** — Detect and optionally install missing security tools
166
+ 4. **AI Setup** — Configure Ollama for AI features (optional)
167
+ 5. **Tutorial** — Option to run the interactive tutorial (recommended)
168
+
169
+ ### Step 5: You're Ready!
170
+
171
+ Once setup completes, you'll see the main menu.
172
+
173
+ ---
174
+
175
+ ## System Requirements
176
+
177
+ | Component | Minimum | Recommended |
178
+ |-----------|---------|-------------|
179
+ | **OS** | Ubuntu 22.04+ | Kali Linux |
180
+ | **Python** | 3.9+ | 3.11+ |
181
+ | **RAM** | 4GB | 8GB+ |
182
+ | **Disk** | 10GB | 50GB+ |
183
+
184
+ ### Supported Operating Systems
185
+
186
+ | OS | Status | Notes |
187
+ |----|--------|-------|
188
+ | **Kali Linux** | ✅ Recommended | All pentesting tools pre-installed |
189
+ | **Ubuntu 22.04+** | ✅ Supported | Tools installed via `souleyez setup` |
190
+ | **Parrot OS** | ✅ Supported | Security-focused distro |
191
+ | **Debian 12+** | ✅ Supported | Stable base system |
192
+ | **macOS/Windows** | ❌ Not Supported | Use Linux in a VM |
193
+
194
+ ---
195
+
196
+ ## Common Commands
197
+
198
+ | Command | What it does |
199
+ |---------|--------------|
200
+ | `souleyez interactive` | Launch the main interface |
201
+ | `souleyez dashboard` | Real-time monitoring view |
202
+ | `souleyez doctor` | Check if everything is set up correctly |
203
+ | `souleyez setup` | Install/update pentesting tools |
204
+ | `souleyez --help` | Show all available commands |
205
+
206
+ ---
207
+
208
+ ## Security & Encryption
209
+
210
+ SoulEyez encrypts all stored credentials using **Fernet (AES-128-CBC + HMAC-SHA256)** with PBKDF2 key derivation (600k iterations).
211
+
212
+ - Master password is never stored (cannot be recovered if lost)
213
+ - Credentials encrypted at rest with industry-standard cryptography
214
+ - Sensitive data is masked in the UI until explicitly revealed
215
+
216
+ See [SECURITY.md](SECURITY.md) for complete security guidelines.
217
+
218
+ ---
219
+
220
+ ## Documentation
221
+
222
+ - **[Getting Started](souleyez/docs/user-guide/getting-started.md)** — Your first engagement in 10 minutes
223
+ - **[Installation Guide](souleyez/docs/user-guide/installation.md)** — Detailed setup instructions
224
+ - **[Workflows](souleyez/docs/user-guide/workflows.md)** — Complete pentesting workflows
225
+ - **[Auto-Chaining](souleyez/docs/user-guide/auto-chaining.md)** — Automatic follow-up scans
226
+ - **[Configuration](souleyez/docs/user-guide/configuration.md)** — All configuration options
227
+ - **[Troubleshooting](souleyez/docs/user-guide/troubleshooting.md)** — Common issues and fixes
228
+
229
+ ---
230
+
231
+ ## Troubleshooting
232
+
233
+ | Problem | Solution |
234
+ |---------|----------|
235
+ | "command not found: souleyez" | Run `pipx ensurepath` then restart terminal |
236
+ | "Tool not found" errors | Run `souleyez setup` to install missing tools |
237
+ | Forgot vault password | Data is encrypted — start fresh with `rm -rf ~/.souleyez` |
238
+ | Something seems broken | Run `souleyez doctor` to diagnose |
239
+
240
+ ---
241
+
242
+ ## Glossary
243
+
244
+ New to pentesting? Here are some common terms:
245
+
246
+ | Term | Meaning |
247
+ |------|---------|
248
+ | **Engagement** | A project or assessment — contains all data for one test |
249
+ | **Target/Host** | A computer, server, or device you're testing |
250
+ | **Finding** | A security issue or vulnerability you discovered |
251
+ | **Credential** | Username/password combo found during testing |
252
+
253
+ ---
254
+
255
+ ## Support & Feedback
256
+
257
+ - **Issues**: https://github.com/cyber-soul-security/souleyez/issues
258
+ - **Security Issues**: cysoul.secit@gmail.com (see [SECURITY.md](SECURITY.md))
259
+ - **General**: cysoul.secit@gmail.com
260
+
261
+ ---
262
+
263
+ ## License
264
+
265
+ See [LICENSE](LICENSE) for details.
266
+
267
+ ---
268
+
269
+ **Version**: 2.43.1 | **Maintainer**: [CyberSoul Security](https://www.cybersoulsecurity.com)