souleyez 2.43.22__py3-none-any.whl → 2.43.23__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 +1 -1
- souleyez/docs/README.md +1 -1
- souleyez/main.py +1 -1
- souleyez/ui/interactive.py +110 -0
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/METADATA +1 -1
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/RECORD +10 -10
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/WHEEL +0 -0
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/entry_points.txt +0 -0
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/licenses/LICENSE +0 -0
- {souleyez-2.43.22.dist-info → souleyez-2.43.23.dist-info}/top_level.txt +0 -0
souleyez/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
__version__ = '2.43.
|
|
1
|
+
__version__ = '2.43.23'
|
|
2
2
|
|
souleyez/docs/README.md
CHANGED
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.43.
|
|
176
|
+
@click.version_option(version='2.43.23')
|
|
177
177
|
def cli():
|
|
178
178
|
"""SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
|
|
179
179
|
from souleyez.log_config import init_logging
|
souleyez/ui/interactive.py
CHANGED
|
@@ -5677,6 +5677,116 @@ def view_job_detail(job_id: int):
|
|
|
5677
5677
|
except Exception:
|
|
5678
5678
|
pass # Non-critical, just display the paths
|
|
5679
5679
|
|
|
5680
|
+
# Security concern patterns - check for interesting/dangerous paths
|
|
5681
|
+
security_concerns = []
|
|
5682
|
+
concern_patterns = {
|
|
5683
|
+
# Database files
|
|
5684
|
+
'database_files': {
|
|
5685
|
+
'patterns': [r'\.sql$', r'\.db$', r'\.mdb$', r'\.sqlite', r'/db\.', r'/database\.', r'\.bak\.sql'],
|
|
5686
|
+
'label': 'Database file exposed',
|
|
5687
|
+
'severity': 'high',
|
|
5688
|
+
},
|
|
5689
|
+
# Backup files
|
|
5690
|
+
'backup_files': {
|
|
5691
|
+
'patterns': [r'\.bak$', r'\.old$', r'\.backup$', r'\.orig$', r'\.save$', r'\.swp$', r'~$', r'\.zip$', r'\.tar', r'\.gz$', r'\.rar$'],
|
|
5692
|
+
'label': 'Backup/archive file',
|
|
5693
|
+
'severity': 'high',
|
|
5694
|
+
},
|
|
5695
|
+
# Config files
|
|
5696
|
+
'config_files': {
|
|
5697
|
+
'patterns': [r'web\.config', r'\.htaccess', r'\.htpasswd', r'\.env$', r'config\.php', r'config\.inc', r'settings\.py', r'\.ini$', r'\.conf$', r'\.cfg$'],
|
|
5698
|
+
'label': 'Configuration file exposed',
|
|
5699
|
+
'severity': 'high',
|
|
5700
|
+
},
|
|
5701
|
+
# Source code / dev files
|
|
5702
|
+
'source_files': {
|
|
5703
|
+
'patterns': [r'\.git/', r'\.svn/', r'\.DS_Store', r'\.vscode/', r'\.idea/', r'Thumbs\.db', r'\.log$', r'debug\.', r'test\.php', r'phpinfo'],
|
|
5704
|
+
'label': 'Development/debug file',
|
|
5705
|
+
'severity': 'medium',
|
|
5706
|
+
},
|
|
5707
|
+
# Legacy/vulnerable directories
|
|
5708
|
+
'legacy_dirs': {
|
|
5709
|
+
'patterns': [r'_vti_', r'/cgi-bin', r'/cgi/', r'/fcgi/', r'/admin/', r'/administrator/', r'/phpmyadmin', r'/pma/', r'/myadmin'],
|
|
5710
|
+
'label': 'Legacy/admin directory',
|
|
5711
|
+
'severity': 'medium',
|
|
5712
|
+
},
|
|
5713
|
+
# Sensitive endpoints
|
|
5714
|
+
'sensitive_endpoints': {
|
|
5715
|
+
'patterns': [r'/upload', r'/uploads/', r'/file/', r'/files/', r'/tmp/', r'/temp/', r'/private/', r'/internal/', r'/api/'],
|
|
5716
|
+
'label': 'Potentially sensitive directory',
|
|
5717
|
+
'severity': 'low',
|
|
5718
|
+
},
|
|
5719
|
+
}
|
|
5720
|
+
|
|
5721
|
+
import re
|
|
5722
|
+
for path_entry in paths:
|
|
5723
|
+
url = path_entry.get('url', '').lower()
|
|
5724
|
+
for concern_type, concern_info in concern_patterns.items():
|
|
5725
|
+
for pattern in concern_info['patterns']:
|
|
5726
|
+
if re.search(pattern, url, re.IGNORECASE):
|
|
5727
|
+
security_concerns.append({
|
|
5728
|
+
'url': path_entry.get('url', ''),
|
|
5729
|
+
'type': concern_type,
|
|
5730
|
+
'label': concern_info['label'],
|
|
5731
|
+
'severity': concern_info['severity'],
|
|
5732
|
+
'status_code': path_entry.get('status_code', 'unknown'),
|
|
5733
|
+
})
|
|
5734
|
+
break # Only match once per path per type
|
|
5735
|
+
|
|
5736
|
+
# Display security concerns if found
|
|
5737
|
+
if security_concerns:
|
|
5738
|
+
click.echo(click.style("=" * 70, fg='red'))
|
|
5739
|
+
click.echo(click.style("⚠️ SECURITY CONCERNS", bold=True, fg='red'))
|
|
5740
|
+
click.echo(click.style("=" * 70, fg='red'))
|
|
5741
|
+
click.echo()
|
|
5742
|
+
|
|
5743
|
+
# Group by severity
|
|
5744
|
+
high_concerns = [c for c in security_concerns if c['severity'] == 'high']
|
|
5745
|
+
medium_concerns = [c for c in security_concerns if c['severity'] == 'medium']
|
|
5746
|
+
low_concerns = [c for c in security_concerns if c['severity'] == 'low']
|
|
5747
|
+
|
|
5748
|
+
if high_concerns:
|
|
5749
|
+
click.echo(click.style("[HIGH] Critical findings:", fg='red', bold=True))
|
|
5750
|
+
# Group by label
|
|
5751
|
+
by_label = {}
|
|
5752
|
+
for c in high_concerns:
|
|
5753
|
+
if c['label'] not in by_label:
|
|
5754
|
+
by_label[c['label']] = []
|
|
5755
|
+
by_label[c['label']].append(c['url'])
|
|
5756
|
+
for label, urls in by_label.items():
|
|
5757
|
+
click.echo(click.style(f" • {label}:", fg='red'))
|
|
5758
|
+
for url in urls[:5]: # Limit to 5 per type
|
|
5759
|
+
click.echo(f" → {url}")
|
|
5760
|
+
if len(urls) > 5:
|
|
5761
|
+
click.echo(f" ... and {len(urls) - 5} more")
|
|
5762
|
+
click.echo()
|
|
5763
|
+
|
|
5764
|
+
if medium_concerns:
|
|
5765
|
+
click.echo(click.style("[MEDIUM] Notable findings:", fg='yellow', bold=True))
|
|
5766
|
+
by_label = {}
|
|
5767
|
+
for c in medium_concerns:
|
|
5768
|
+
if c['label'] not in by_label:
|
|
5769
|
+
by_label[c['label']] = []
|
|
5770
|
+
by_label[c['label']].append(c['url'])
|
|
5771
|
+
for label, urls in by_label.items():
|
|
5772
|
+
click.echo(click.style(f" • {label}:", fg='yellow'))
|
|
5773
|
+
for url in urls[:5]:
|
|
5774
|
+
click.echo(f" → {url}")
|
|
5775
|
+
if len(urls) > 5:
|
|
5776
|
+
click.echo(f" ... and {len(urls) - 5} more")
|
|
5777
|
+
click.echo()
|
|
5778
|
+
|
|
5779
|
+
if low_concerns:
|
|
5780
|
+
click.echo(click.style("[LOW] Worth investigating:", fg='cyan', bold=True))
|
|
5781
|
+
by_label = {}
|
|
5782
|
+
for c in low_concerns:
|
|
5783
|
+
if c['label'] not in by_label:
|
|
5784
|
+
by_label[c['label']] = []
|
|
5785
|
+
by_label[c['label']].append(c['url'])
|
|
5786
|
+
for label, urls in by_label.items():
|
|
5787
|
+
click.echo(f" • {label}: {len(urls)} path(s)")
|
|
5788
|
+
click.echo()
|
|
5789
|
+
|
|
5680
5790
|
click.echo(click.style("=" * 70, fg='cyan'))
|
|
5681
5791
|
click.echo(click.style("DISCOVERED WEB PATHS", bold=True, fg='cyan'))
|
|
5682
5792
|
click.echo(click.style("=" * 70, fg='cyan'))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: souleyez
|
|
3
|
-
Version: 2.43.
|
|
3
|
+
Version: 2.43.23
|
|
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>
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
souleyez/__init__.py,sha256=
|
|
1
|
+
souleyez/__init__.py,sha256=_O0zQDjjfN2p0SJ7vxTMimFsacmNRt7DRcREfGCtzsA,25
|
|
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=BISz7PzhK03R7UTB-0Cnozk3kVOx0ctBxtZdg4bCo78,129101
|
|
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
|
|
@@ -104,7 +104,7 @@ 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=1IbE4JAOBBHmIvSu9AiYaiXllUTR4kYFYexCGDEQy84,7188
|
|
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
|
|
@@ -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=x2THKw7npsTYEhK6qy7r-yor_uP2NtMdXjuGXTu0ANU,1423390
|
|
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
|
|
@@ -371,9 +371,9 @@ souleyez/ui/wazuh_vulns_view.py,sha256=3vJJEmrjgS2wD6EDB7ZV7WxgytBHTm-1WqNDjp7lV
|
|
|
371
371
|
souleyez/ui/wordlist_browser.py,sha256=iQ2YYxrVo8FGCfM-Bc0teVBijSAbd2rjbSQ2hOE7eiY,16110
|
|
372
372
|
souleyez/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
373
373
|
souleyez/utils/tool_checker.py,sha256=YzNajZpFyKJA5fp0Kq_gQ0YnKb7J1BaKJSZ8vP-IWj8,30868
|
|
374
|
-
souleyez-2.43.
|
|
375
|
-
souleyez-2.43.
|
|
376
|
-
souleyez-2.43.
|
|
377
|
-
souleyez-2.43.
|
|
378
|
-
souleyez-2.43.
|
|
379
|
-
souleyez-2.43.
|
|
374
|
+
souleyez-2.43.23.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
|
|
375
|
+
souleyez-2.43.23.dist-info/METADATA,sha256=KU_fLA17aF-ze8k-cCoWGoyKBlLrRT6WlE6_SOBfXdE,10427
|
|
376
|
+
souleyez-2.43.23.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
377
|
+
souleyez-2.43.23.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
|
|
378
|
+
souleyez-2.43.23.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
|
|
379
|
+
souleyez-2.43.23.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|