souleyez 2.43.15__py3-none-any.whl → 2.43.18__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,2 +1,2 @@
1
- __version__ = '2.43.15'
1
+ __version__ = '2.43.18'
2
2
 
souleyez/docs/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # SoulEyez Documentation
2
2
 
3
- **Version:** 2.43.15
3
+ **Version:** 2.43.18
4
4
  **Last Updated:** January 12, 2026
5
5
  **Organization:** CyberSoul Security
6
6
 
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.15')
176
+ @click.version_option(version='2.43.18')
177
177
  def cli():
178
178
  """SoulEyez - AI-Powered Pentesting Platform by CyberSoul Security"""
179
179
  from souleyez.log_config import init_logging
@@ -334,6 +334,10 @@ class HttpFingerprintPlugin(PluginBase):
334
334
 
335
335
  is_https = parsed.scheme == 'https'
336
336
 
337
+ # Check if target is an IP address (for special handling)
338
+ import re
339
+ is_ip_target = bool(re.match(r'^(\d{1,3}\.){3}\d{1,3}$', parsed.hostname or ''))
340
+
337
341
  # Create request with common browser headers
338
342
  req = urllib.request.Request(
339
343
  url,
@@ -346,14 +350,15 @@ class HttpFingerprintPlugin(PluginBase):
346
350
  }
347
351
  )
348
352
 
353
+ # Always create SSL context with verification disabled
354
+ # This handles: 1) HTTPS targets, 2) HTTP->HTTPS redirects, 3) IP targets with invalid certs
355
+ ctx = ssl.create_default_context()
356
+ ctx.check_hostname = False
357
+ ctx.verify_mode = ssl.CERT_NONE
358
+
349
359
  try:
350
- # Create SSL context for HTTPS
360
+ # Get TLS info for HTTPS targets
351
361
  if is_https:
352
- ctx = ssl.create_default_context()
353
- ctx.check_hostname = False
354
- ctx.verify_mode = ssl.CERT_NONE
355
-
356
- # Get TLS info
357
362
  try:
358
363
  with socket.create_connection((parsed.hostname, parsed.port or 443), timeout=timeout) as sock:
359
364
  with ctx.wrap_socket(sock, server_hostname=parsed.hostname) as ssock:
@@ -368,9 +373,8 @@ class HttpFingerprintPlugin(PluginBase):
368
373
  except Exception:
369
374
  pass # TLS info is optional
370
375
 
371
- response = urllib.request.urlopen(req, timeout=timeout, context=ctx) # nosec B310 - scheme validated above
372
- else:
373
- response = urllib.request.urlopen(req, timeout=timeout) # nosec B310 - scheme validated above
376
+ # Always pass SSL context (handles HTTP->HTTPS redirects)
377
+ response = urllib.request.urlopen(req, timeout=timeout, context=ctx) # nosec B310 - scheme validated above
374
378
 
375
379
  result['status_code'] = response.getcode()
376
380
 
souleyez/ui/dashboard.py CHANGED
@@ -2358,6 +2358,31 @@ def render_live_log(job_id: Optional[int], width: int, height: int):
2358
2358
  find_word = "finding" if findings_added == 1 else "findings"
2359
2359
  lines.append(click.style(f" • {findings_added} security {find_word} detected", fg='red', bold=True))
2360
2360
 
2361
+ elif tool == 'http_fingerprint':
2362
+ # Show fingerprint summary
2363
+ server = result.get('server')
2364
+ managed_hosting = result.get('managed_hosting')
2365
+ waf = result.get('waf', [])
2366
+ cdn = result.get('cdn', [])
2367
+ technologies = result.get('technologies', [])
2368
+ redirect_url = result.get('redirect_url')
2369
+ status_code = result.get('status_code')
2370
+
2371
+ if status_code:
2372
+ lines.append(f" • HTTP Status: {status_code}")
2373
+ if redirect_url:
2374
+ lines.append(f" • Redirects to: {redirect_url}")
2375
+ if server:
2376
+ lines.append(f" • Server: {server}")
2377
+ if managed_hosting:
2378
+ lines.append(click.style(f" • Managed Hosting: {managed_hosting}", fg='yellow'))
2379
+ if waf:
2380
+ lines.append(click.style(f" • WAF Detected: {', '.join(waf)}", fg='red', bold=True))
2381
+ if cdn:
2382
+ lines.append(f" • CDN: {', '.join(cdn)}")
2383
+ if technologies:
2384
+ lines.append(f" • Technologies: {', '.join(technologies[:5])}")
2385
+
2361
2386
  else:
2362
2387
  # Generic result display
2363
2388
  for key, value in result.items():
@@ -3360,7 +3385,7 @@ def _show_dashboard_menu(engagement_id: int) -> str:
3360
3385
  click.echo(" " + "─" * 76)
3361
3386
  click.echo(" " + click.style("[h]", fg='cyan', bold=True) + " or " +
3362
3387
  click.style("[8]", fg='cyan') + " 🎯 Hosts - Discovered hosts, tags, filtering")
3363
- click.echo(" " + click.style("[v]", fg='cyan', bold=True) + " or " +
3388
+ click.echo(" " + click.style("[s]", fg='cyan', bold=True) + " or " +
3364
3389
  click.style("[9]", fg='cyan') + " 🔌 Services - Open ports, service enumeration")
3365
3390
  click.echo(" " + click.style("[f]", fg='cyan', bold=True) + " or " +
3366
3391
  click.style("[10]", fg='cyan') + " 🔍 Findings - All vulnerabilities (detailed view)")
@@ -3405,7 +3430,7 @@ def _show_dashboard_menu(engagement_id: int) -> str:
3405
3430
  'r': 'reports', '7': 'reports',
3406
3431
  # Data Management (10 items: 8-17)
3407
3432
  'h': 'hosts', '8': 'hosts',
3408
- 'v': 'services', '9': 'services',
3433
+ 's': 'services', '9': 'services',
3409
3434
  'f': 'findings', '10': 'findings',
3410
3435
  'c': 'credentials', '11': 'credentials',
3411
3436
  'b': 'web_paths', '12': 'web_paths',
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: souleyez
3
- Version: 2.43.15
3
+ Version: 2.43.18
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>
@@ -266,4 +266,4 @@ See [LICENSE](LICENSE) for details.
266
266
 
267
267
  ---
268
268
 
269
- **Version**: 2.43.1 | **Maintainer**: [CyberSoul Security](https://www.cybersoulsecurity.com)
269
+ **Version**: 2.43.18 | **Maintainer**: [CyberSoul Security](https://www.cybersoulsecurity.com)
@@ -1,10 +1,10 @@
1
- souleyez/__init__.py,sha256=slnfvvkWKYSrEzjlUbRNn3eLdpvlqHX0-gUtgkJAmx4,25
1
+ souleyez/__init__.py,sha256=Px8tXuFPUMsfvCpC9dq17p-kFvkY9xfhCAyR-X9AhDA,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=MKgVu0VaYdNpZsq0MWFNz33uX3P8MWwennF_2gmDjPQ,129101
7
+ souleyez/main.py,sha256=3TY6fuB1uAuZzgWnhMu2UcbKFYsBPGSPe--a6K8pTrk,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=hjhVK2ZaTUOWQWCum2agdKB_VL5O9FRLe74xMT2k-Xw,7188
107
+ souleyez/docs/README.md,sha256=9UmX416xxyGhj56UibcGsDt5p_qYoaT5ID1CzOHGvMk,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
@@ -229,7 +229,7 @@ souleyez/plugins/ffuf.py,sha256=7c1-Q7xXTMmH_2wHXikjmZnSgZL13Hj5E_asBxZ6Y5U,1165
229
229
  souleyez/plugins/firmware_extract.py,sha256=_hZXx6cHb9noM6uVgi3hwrJLw8hE9mDUelTEHwoIdCU,6460
230
230
  souleyez/plugins/gobuster.py,sha256=y8QeEjMR5_2tf-T63nxFRUtWmlCzrPez2I4nLqPNOfY,32114
231
231
  souleyez/plugins/hashcat.py,sha256=aigfwBu9IorXKgbyEIWx0qOCEdr1wnZaPqdYwh0PITc,10381
232
- souleyez/plugins/http_fingerprint.py,sha256=_D5UVAtDC0f-uy4pQcBI43c4jnsJ5wyvCIvttUiVurw,21202
232
+ souleyez/plugins/http_fingerprint.py,sha256=4ukU-TgcPjpccf929BpJbjfcijxsfWxhUPe0MrEoWf8,21424
233
233
  souleyez/plugins/hydra.py,sha256=kfVJwgh3x1DC0wEtA-lkoY7qhQH1qKViYexUECZSPY4,29520
234
234
  souleyez/plugins/impacket_getnpusers.py,sha256=6TBxVTO9NGUbn5ShV-dCxPP11CFqf-Y3lAgt8_oP2Vg,8652
235
235
  souleyez/plugins/impacket_psexec.py,sha256=gU_MDSazDMj1TeWm5V9cD6wrLe3ULwbDv4jhg3Vm2rQ,8813
@@ -336,7 +336,7 @@ souleyez/ui/ai_quotes.py,sha256=Ho2QCYIFfks6tPIRFwVUKpvfGChUduWLMpmIDJV4xh0,5489
336
336
  souleyez/ui/attack_surface.py,sha256=PMClCqiw1fIFFpYTghGKnXykamWFWgvraEBQzkiyuF8,196226
337
337
  souleyez/ui/chain_rules_view.py,sha256=BZ7I3UnQEDtt9AWVqufdu1soZLkBn3cMu5lfArnx9aI,63228
338
338
  souleyez/ui/correlation_view.py,sha256=BxJytk8Zq2-MhrMFgf4ZgN5G0-xU3ZdxqNWdRqMghxU,24674
339
- souleyez/ui/dashboard.py,sha256=xjyhC35CdK9QHSR2ZvJd3HiiBbrIEdH7EP2rsNcfJnA,179250
339
+ souleyez/ui/dashboard.py,sha256=N7Ipq5AbF_bJV9pVSsVxXuawrZN0rTMFlBM-KTnnoIU,180581
340
340
  souleyez/ui/deliverables_view.py,sha256=hxYCwcZNzT0loZMSQXODRuZXDNZFrHZ8FTKwcwuZdoI,9604
341
341
  souleyez/ui/design_system.py,sha256=wyI73gwBGQDzo3L_JYn7DiEGXWByFkRjlDkp5MEpZ3s,3415
342
342
  souleyez/ui/errors.py,sha256=vk4gMP5UyLd3W-Gfz06C2B_v4ra8qcie6NFmz1VjY8o,10645
@@ -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.15.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
375
- souleyez-2.43.15.dist-info/METADATA,sha256=5Ax1maa8aJJjBmPh5hCgS1u6HQFmxRhn9DZ3wuf0IVQ,10426
376
- souleyez-2.43.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
377
- souleyez-2.43.15.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
378
- souleyez-2.43.15.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
379
- souleyez-2.43.15.dist-info/RECORD,,
374
+ souleyez-2.43.18.dist-info/licenses/LICENSE,sha256=J7vDD5QMF4w2oSDm35eBgosATE70ah1M40u9W4EpTZs,1090
375
+ souleyez-2.43.18.dist-info/METADATA,sha256=kD8stPehWalncwAJpryqVuua6_J35FCre8UnGCAShH4,10427
376
+ souleyez-2.43.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
377
+ souleyez-2.43.18.dist-info/entry_points.txt,sha256=bN5W1dhjDZJl3TKclMjRpfQvGPmyrJLwwDuCj_X39HE,48
378
+ souleyez-2.43.18.dist-info/top_level.txt,sha256=afAMzS9p4lcdBNxhGo6jl3ipQE9HUvvNIPOdjtPjr_Q,9
379
+ souleyez-2.43.18.dist-info/RECORD,,