souleyez 2.40.0__py3-none-any.whl → 2.43.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of souleyez might be problematic. Click here for more details.
- souleyez/__init__.py +1 -1
- souleyez/commands/license.py +1 -1
- souleyez/docs/README.md +4 -4
- souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md +2 -2
- souleyez/docs/architecture/decisions/002-master-password-approach.md +15 -11
- souleyez/docs/architecture/overview.md +5 -6
- souleyez/docs/security/credential-encryption.md +25 -7
- souleyez/docs/security/threat-model.md +1 -1
- souleyez/docs/user-guide/configuration.md +1 -1
- souleyez/docs/user-guide/dependencies.md +1 -1
- souleyez/docs/user-guide/getting-started.md +100 -90
- souleyez/docs/user-guide/installation.md +20 -31
- souleyez/docs/user-guide/rbac.md +3 -3
- souleyez/docs/user-guide/scope-management.md +1 -1
- souleyez/licensing/validator.py +13 -4
- souleyez/main.py +1 -1
- souleyez/reporting/generator.py +1 -1
- souleyez/ui/interactive.py +4 -4
- souleyez/ui/tool_setup.py +24 -0
- souleyez/ui/tutorial.py +16 -0
- souleyez-2.43.1.dist-info/METADATA +269 -0
- {souleyez-2.40.0.dist-info → souleyez-2.43.1.dist-info}/RECORD +26 -26
- souleyez-2.40.0.dist-info/METADATA +0 -265
- {souleyez-2.40.0.dist-info → souleyez-2.43.1.dist-info}/WHEEL +0 -0
- {souleyez-2.40.0.dist-info → souleyez-2.43.1.dist-info}/entry_points.txt +0 -0
- {souleyez-2.40.0.dist-info → souleyez-2.43.1.dist-info}/licenses/LICENSE +0 -0
- {souleyez-2.40.0.dist-info → souleyez-2.43.1.dist-info}/top_level.txt +0 -0
souleyez/licensing/validator.py
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
176
|
+
@click.version_option(version='2.43.1')
|
|
177
177
|
def cli():
|
|
178
178
|
"""SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
|
|
179
179
|
from souleyez.log_config import init_logging
|
souleyez/reporting/generator.py
CHANGED
|
@@ -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://
|
|
707
|
+
"Upgrade at https://www.cybersoulsecurity.com/souleyez"
|
|
708
708
|
)
|
|
709
709
|
except ImportError:
|
|
710
710
|
# Auth module not available - allow
|
souleyez/ui/interactive.py
CHANGED
|
@@ -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://
|
|
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
|
|
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://
|
|
8745
|
+
click.echo(" Visit: https://www.cybersoulsecurity.com/souleyez")
|
|
8746
8746
|
click.echo()
|
|
8747
|
-
click.echo(" Or contact:
|
|
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
|
|
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
|
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: souleyez
|
|
3
|
+
Version: 2.43.1
|
|
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
|
+
[](https://github.com/cyber-soul-security/souleyez/actions/workflows/python-ci.yml)
|
|
55
|
+
[](https://codecov.io/gh/cyber-soul-security/souleyez)
|
|
56
|
+
[](https://www.python.org/downloads/)
|
|
57
|
+
[](https://github.com/psf/black)
|
|
58
|
+
[](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)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
souleyez/__init__.py,sha256
|
|
1
|
+
souleyez/__init__.py,sha256=DJ8p496pzHrV1rC5NT4HTGE6R5GEybXzpIr4MXWUPN8,24
|
|
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=
|
|
7
|
+
souleyez/main.py,sha256=JxMzeX2Le-LlKZpI9Zevn_Tp4DT-8v71sd7oE7HJRqI,129100
|
|
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
|
|
@@ -41,7 +41,7 @@ souleyez/commands/audit.py,sha256=KviKaLv8Ry09H2S-j9dFGLrkzYOnyeWRErm1bvoo5dE,73
|
|
|
41
41
|
souleyez/commands/auth.py,sha256=4ed0zeWQqLbZOJ6MKd5iMWxt6wOQoNDKzRbMhNg3A00,4942
|
|
42
42
|
souleyez/commands/deliverables.py,sha256=qlIW9q3PmOoegYMB64zICHlWsgG-dZ5Y0eDYDqjl2kU,7766
|
|
43
43
|
souleyez/commands/engagement.py,sha256=KigGwjCtt8g7CDtRjS2pSeuT52JSBZEl0X3ZhuQuPf8,6337
|
|
44
|
-
souleyez/commands/license.py,sha256=
|
|
44
|
+
souleyez/commands/license.py,sha256=0Mz6WYHnAR-VpAxIU-NIsJY1mITTuPoybh-5V_vX1EE,6091
|
|
45
45
|
souleyez/commands/screenshots.py,sha256=EqTp56Zcow6JLqc7rsqAqhbOPw8-jznlN5QPZJi8sdg,5190
|
|
46
46
|
souleyez/commands/user.py,sha256=u2ogSLnzxY95xmPiWLgK9OdrrNyIDv_V33DYVJMYags,12008
|
|
47
47
|
souleyez/core/__init__.py,sha256=_WzKeywShaf_uQknBk-_d5LDqRKHoV5de6ZYP-JizKQ,109
|
|
@@ -104,15 +104,15 @@ souleyez/detection/__init__.py,sha256=QIhvXjFdjrquQ6A0VQ7GZQkK_EXB59t8Dv9PKXhEUe
|
|
|
104
104
|
souleyez/detection/attack_signatures.py,sha256=akgWwiIkh6WYnghCuLhRV0y6FS0SQ0caGF8tZUc49oA,6965
|
|
105
105
|
souleyez/detection/mitre_mappings.py,sha256=xejE80YK-g8kKaeQoo-vBl8P3t8RTTItbfN0NaVZw6s,20558
|
|
106
106
|
souleyez/detection/validator.py,sha256=-AJ7QSJ3-6jFKLnPG_Rc34IXyF4JPyI82BFUgTA9zw0,15641
|
|
107
|
-
souleyez/docs/README.md,sha256=
|
|
107
|
+
souleyez/docs/README.md,sha256=QV_P1kFEzxR7Ht2B1dtPpc4bjBssJRWy2VDb2cm0slc,7187
|
|
108
108
|
souleyez/docs/api-reference/cli-commands.md,sha256=lTLFnILN3YRVdqCaag7WgsYXfDGglb1TuPexkxDsVdE,12917
|
|
109
109
|
souleyez/docs/api-reference/engagement-api.md,sha256=nd-EvQMtiJrobg2bzFEADp853HP1Uhb9dmgok0_-neE,11672
|
|
110
110
|
souleyez/docs/api-reference/integration-guide.md,sha256=c96uX79ukHyYotLa54wZ20Kx-EUZnrKegTeGkfLD-pw,16285
|
|
111
111
|
souleyez/docs/api-reference/parser-formats.md,sha256=DRyASQ0O6ZWGgyrYKqMPC9XFYL5dwvWjuG_q0WRjY8k,15367
|
|
112
|
-
souleyez/docs/architecture/overview.md,sha256=
|
|
112
|
+
souleyez/docs/architecture/overview.md,sha256=gYqXTSV_abXbAFz8Mv_RIJto-spNR--ft7Rdwdvy8tg,43402
|
|
113
113
|
souleyez/docs/architecture/decisions/000-template.md,sha256=Db8xSIOogP1qdJ5SgBVEJZUh2un4EtCEwfs53-XGDvY,4467
|
|
114
|
-
souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md,sha256=
|
|
115
|
-
souleyez/docs/architecture/decisions/002-master-password-approach.md,sha256=
|
|
114
|
+
souleyez/docs/architecture/decisions/001-local-llm-over-cloud.md,sha256=LXf2d05ucnidl0vZrTL6vndPNKSnoRMR_CLt10pnLt0,14562
|
|
115
|
+
souleyez/docs/architecture/decisions/002-master-password-approach.md,sha256=8HZii9ROyst87HQiFF5sBlCrBX81ZR2JAEa-U9BMxP8,14781
|
|
116
116
|
souleyez/docs/architecture/decisions/003-database-schema-design.md,sha256=fUxsbVkpibVyZR4982J2Oeqx92a8oP9GQWr6jpuMjMY,20469
|
|
117
117
|
souleyez/docs/database/MIGRATIONS.md,sha256=bO92DEQxcl921T5Cd7QeEH4aEB1OexPccmtW-wrLosg,10584
|
|
118
118
|
souleyez/docs/database/SCHEMA.md,sha256=7k57iKslqEYAkwdf7McIqy_ME1rY30d5X7g-lyb0KO8,10590
|
|
@@ -121,24 +121,24 @@ souleyez/docs/developer-guide/test_coverage_plan.md,sha256=5m6p8iki89cb6u9WWhFkT
|
|
|
121
121
|
souleyez/docs/developer-guide/ui-design-system.md,sha256=xzznuNmwzU-mTRwG496TgKlFOa9K3fsAJbzT8qmvLu0,22327
|
|
122
122
|
souleyez/docs/images/README.md,sha256=Wek2mbJnGtLOCURvCmSGP2bS182OLgTbvxoC0b25gRo,4535
|
|
123
123
|
souleyez/docs/security/best-practices.md,sha256=cy9jy6zDMcUbPithoNv9qd4ur9WrIQPNUyeJhH5IB5g,18240
|
|
124
|
-
souleyez/docs/security/credential-encryption.md,sha256=
|
|
124
|
+
souleyez/docs/security/credential-encryption.md,sha256=shjNq8I9ycOohPTQ0U5LgEJk9vTmdiKat9X7VzGbsYQ,19060
|
|
125
125
|
souleyez/docs/security/password-protected-commands.md,sha256=ubTrZeLSCGKUsY3NW5ZP1w1SqGvtW27yTIojIdsX6CM,5878
|
|
126
126
|
souleyez/docs/security/secure-defaults.md,sha256=IEH0lTrThNokDCY8jMOWW5AEpqDd8T8p1NxCPS1jaXU,16605
|
|
127
|
-
souleyez/docs/security/threat-model.md,sha256=
|
|
127
|
+
souleyez/docs/security/threat-model.md,sha256=vwJ0k4EDi_MZNKFwzr6E3tfDr__dJCANpRAvp_mdE9Q,13594
|
|
128
128
|
souleyez/docs/user-guide/ai-integration.md,sha256=erC3Svg6XosKhT1BoHRQ98PUp71OdNQ6bkJIh7shN_Y,8859
|
|
129
129
|
souleyez/docs/user-guide/attack-surface.md,sha256=9QabVuuPkCNNDgAXx_Yerbtmnk61lPkU8Gjl_M6-rG8,12924
|
|
130
130
|
souleyez/docs/user-guide/auto-chaining.md,sha256=UjQ8J8rBgukQIikIrH3U7XoX0WF8EHO_a9i3qDomsXg,21144
|
|
131
|
-
souleyez/docs/user-guide/configuration.md,sha256=
|
|
131
|
+
souleyez/docs/user-guide/configuration.md,sha256=igWZgm18fdVv5oMJTi-N_IDC_01nfrzPamcQd3cVWH8,14650
|
|
132
132
|
souleyez/docs/user-guide/deliverables-screenshots.md,sha256=D5ATXKZRhwXu8OsGMEEUzbXW3hJl-qTh4wsUPx8gNUA,15148
|
|
133
|
-
souleyez/docs/user-guide/dependencies.md,sha256=
|
|
133
|
+
souleyez/docs/user-guide/dependencies.md,sha256=O7_YjUK19D8npNBHG2diqtm8zUPjtc3NObspG3xcsrs,7470
|
|
134
134
|
souleyez/docs/user-guide/evidence-vault.md,sha256=PNg7cIUlVXr41iMJTi66j4qUV2fkrPATljunx0pD5sI,9454
|
|
135
135
|
souleyez/docs/user-guide/exploit-suggestions.md,sha256=Qv9CPwDe9ypKoeUG3XAL6dtg4YA5PmlE5DA6JVHK4Nk,17971
|
|
136
|
-
souleyez/docs/user-guide/getting-started.md,sha256=
|
|
137
|
-
souleyez/docs/user-guide/installation.md,sha256=
|
|
136
|
+
souleyez/docs/user-guide/getting-started.md,sha256=_2jLTstG6hqjnQGCgu8jMPDRDLunJg-PZWLsWRUdvpQ,21074
|
|
137
|
+
souleyez/docs/user-guide/installation.md,sha256=45aWFh3MeZvzSXs8y-vN1C2nJAdt3D-ponnlqlQYkis,14243
|
|
138
138
|
souleyez/docs/user-guide/metasploit-integration.md,sha256=kSCai2PO4kiv3BEUSXa6mIC3vCdqIA70GyLVQH_Kaj4,10026
|
|
139
|
-
souleyez/docs/user-guide/rbac.md,sha256=
|
|
139
|
+
souleyez/docs/user-guide/rbac.md,sha256=DBILwrok4Qfeal9E49XgqJz88GPIdjMwDBpMDTtkWTc,21071
|
|
140
140
|
souleyez/docs/user-guide/report-generation.md,sha256=7Qe47jfPxmZ4U1uuM3kggPLQ6JM7_TCOOhYIvYen4Ao,20754
|
|
141
|
-
souleyez/docs/user-guide/scope-management.md,sha256=
|
|
141
|
+
souleyez/docs/user-guide/scope-management.md,sha256=rKE7CcumYRHDdZrxXvIs51CqVCdNA90glp-a1I-uZFs,18529
|
|
142
142
|
souleyez/docs/user-guide/siem-integration.md,sha256=RX9Bg6nZx4negxbnwFAm-qGikJLSVghWCTyvLUBQuEk,27141
|
|
143
143
|
souleyez/docs/user-guide/tools-reference.md,sha256=-Acl9OKlAJ1mF0heADTjK8jNvg2vWbS8zdWWj5On1OE,18334
|
|
144
144
|
souleyez/docs/user-guide/troubleshooting.md,sha256=SBBL5nqvVxLGUlUnCs2DKarCcg9k5autaQOqB8-V_YM,14063
|
|
@@ -188,7 +188,7 @@ souleyez/intelligence/service_parser.py,sha256=_RkpiI-EV8Maf5YAqM7mKB_7hqA7bZ2dn
|
|
|
188
188
|
souleyez/intelligence/surface_analyzer.py,sha256=uJbNeEQbjCBs4N2-l95Gee9GS5qEvDgJ0UdMBPicchw,25315
|
|
189
189
|
souleyez/intelligence/target_parser.py,sha256=3PaA_mj5WIs4hylKzJG6yI5KpP9OlID7gmB_GHhh0nM,11929
|
|
190
190
|
souleyez/licensing/__init__.py,sha256=YAp7FS8NMHEKxUsJUY8hzMYI8Wyl_yOSXwfMcr-77a4,524
|
|
191
|
-
souleyez/licensing/validator.py,sha256=
|
|
191
|
+
souleyez/licensing/validator.py,sha256=yDQ-tqm1wdA2FgJWofciRxGtwcQRtmYDMClmMInAtvo,11633
|
|
192
192
|
souleyez/migrations/__init__.py,sha256=S4ZorUykM6txYkZHuQ64QbzHWeNQ3QDFP-PvgMPbpsc,94
|
|
193
193
|
souleyez/migrations/fix_job_counter.py,sha256=-NSm7TQaGln5ut2vYVyJ7fPFOliX2rD7lPUQngPx04w,2423
|
|
194
194
|
souleyez/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -268,7 +268,7 @@ souleyez/reporting/charts.py,sha256=INz5CConGLyXG9JrMGVfUZmr1xjg4Jz2LKBVgGNAIt8,
|
|
|
268
268
|
souleyez/reporting/compliance_mappings.py,sha256=S94wjiHw8BlGf7XYE7-I1czmF0Z_UU2FyxHp8J13az4,11176
|
|
269
269
|
souleyez/reporting/detection_report.py,sha256=huS3iQ2yrSx5_hrJmOCErFmnCh1BaBiy5pplz-5JJuE,32396
|
|
270
270
|
souleyez/reporting/formatters.py,sha256=g8b5JXbTClISX7zDX1fvwgZygoFfyZgZfIz1CHDvoyw,146591
|
|
271
|
-
souleyez/reporting/generator.py,sha256=
|
|
271
|
+
souleyez/reporting/generator.py,sha256=0ANK_GbrHTTgzubZ2atn7ZrgE88lS8XCsdzCK7APM9M,41918
|
|
272
272
|
souleyez/reporting/metrics.py,sha256=uBVma0HhES-lCuZZ0FAuz-k9oTm1UBmMYkzV7FCwfjM,5604
|
|
273
273
|
souleyez/security/__init__.py,sha256=vDjPumWj259BuzPoDJLOfOHalajNsCFdZw5fA1B-Tkc,4621
|
|
274
274
|
souleyez/security/scope_validator.py,sha256=wh-DxVTcc1Z8PORKfdgxH2VKqOBnkKbGDfYPTBz3PjU,20258
|
|
@@ -347,7 +347,7 @@ souleyez/ui/export_view.py,sha256=0nQvVsKk7FU4uRzSfJ_qBZh_Lfn8hgGA2rbJ5bNg5-Y,65
|
|
|
347
347
|
souleyez/ui/gap_analysis_view.py,sha256=AytAOEBq010wwo9hne1TE-uJpY_xicjLrFANbvN3r3w,30727
|
|
348
348
|
souleyez/ui/help_system.py,sha256=nKGxLaMi-TKYs6xudTyw_tZqBb1cGFEuYYh6N-MAsJE,16648
|
|
349
349
|
souleyez/ui/intelligence_view.py,sha256=VeAQ-3mANRnLIVpRqocL3JV0HUmJtADdxDeC5lzQhE0,32168
|
|
350
|
-
souleyez/ui/interactive.py,sha256=
|
|
350
|
+
souleyez/ui/interactive.py,sha256=RxfZ3yOfCnpWV0K1ta5Op3hP82eYGN0UYV8ME-41fuY,1406653
|
|
351
351
|
souleyez/ui/interactive_selector.py,sha256=6A51fgmFRnemBY0aCPHIhK2Rpba16NjSGKLzC0Q5vI8,16407
|
|
352
352
|
souleyez/ui/log_formatter.py,sha256=akhIkYoO_cCaKxS1V5N3iPmIrHzgsU7pmsedx70s9TI,3845
|
|
353
353
|
souleyez/ui/menu_components.py,sha256=N8zq2QXGmfaLJ08l53MMYt1y-5LRWgpZH6r8nXHonj8,3519
|
|
@@ -364,15 +364,15 @@ souleyez/ui/team_dashboard.py,sha256=ejM_44nbJbEIPxxxdEK7SCPcqQtcuJLjoO-C53qED2Y
|
|
|
364
364
|
souleyez/ui/template_selector.py,sha256=qQJkFNnVjYctb-toeYlupP_U1asGrJWYi5-HR89Ab9g,19103
|
|
365
365
|
souleyez/ui/terminal.py,sha256=Sw9ma1-DZclJE1sENjTZ3Q7r-Ct1NiB3Lpmv-RZW5tE,2372
|
|
366
366
|
souleyez/ui/timeline_view.py,sha256=Ze8Mev9VE4_ECdNFEJwZK2V42EBguR83uCCdwAbJqmc,11111
|
|
367
|
-
souleyez/ui/tool_setup.py,sha256=
|
|
368
|
-
souleyez/ui/tutorial.py,sha256=
|
|
367
|
+
souleyez/ui/tool_setup.py,sha256=Ah-EfuAZm6POJc9I6KSkMVPBD4LafEeXOqBzvcemvfs,33669
|
|
368
|
+
souleyez/ui/tutorial.py,sha256=XxF06vNVbuzHjkbHbft6fDPj6RSH0tqr4FZ3K8DPSrY,14800
|
|
369
369
|
souleyez/ui/tutorial_state.py,sha256=Thf7_qCj4VKjG7UqgJqa9kjIqiFUU-7Q7kG4v-u2B4A,8123
|
|
370
370
|
souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lVEI,21830
|
|
371
371
|
souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
372
372
|
souleyez/utils/tool_checker.py,sha256=kQcXJVY5NiO-orQAUnpHhpQvR5UOBNHJ0PaT0fBxYoQ,30782
|
|
373
|
-
souleyez-2.
|
|
374
|
-
souleyez-2.
|
|
375
|
-
souleyez-2.
|
|
376
|
-
souleyez-2.
|
|
377
|
-
souleyez-2.
|
|
378
|
-
souleyez-2.
|
|
373
|
+
souleyez-2.43.1.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
|
|
374
|
+
souleyez-2.43.1.dist-info/METADATA,sha256=_QPUwJB_nRPuYIWH-QfIff98oyWrg2e_vH6Obn4Taic,10425
|
|
375
|
+
souleyez-2.43.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
376
|
+
souleyez-2.43.1.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
|
|
377
|
+
souleyez-2.43.1.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
|
|
378
|
+
souleyez-2.43.1.dist-info/RECORD,,
|