
Write-up abrangente de teste de penetração e detalhes de exploit para a máquina Hack The Box - Enigma, cobrindo enumeração local, injeção de comandos no OliveTin CVE-2026-27626 e escalação de privilégios para root
Enigma é uma máquina Linux de nível intermediário hospedada no Hack The Box. A metodologia de avaliação segue um ciclo de vida padrão de teste de penetração: reconhecimento, enumeração, acesso inicial por meio de coleta de credenciais, enumeração local e escalação de privilégios para root através de uma vulnerabilidade na camada de serviço (CVE-2026-27626 no OliveTin). Este write-up detalha a análise vetorial passo a passo, os conjuntos de ferramentas, as estratégias de execução de código e as diretrizes de remediação necessárias para comprometer completamente o alvo e garantir o controle administrativo.
Nmap)A avaliação começou com uma varredura TCP SYN para identificar portas abertas e serviços em execução no host alvo.
nmap -p- --min-rate=1000 -T4 <TARGET_IP>
Resultados da Varredura:
Usando ferramentas de descoberta de diretórios (gobuster / ffuf), varremos o serviço web na porta 80 para descobrir endpoints ocultos, portais administrativos ou artefatos de configuração.
Por meio de análise detalhada dos arquivos da aplicação web e compartilhamentos NFS auxiliares, descobrimos credenciais de desenvolvedor válidas.
harisbestfriendsCom as credenciais descobertas, autenticamos no serviço SSH para estabelecer um shell interativo de baixo privilégio no sistema alvo:
ssh haris@<TARGET_IP>
haris@enigma:~$user.txt).Após estabelecer um shell em nível de usuário, revisamos as portas locais em escuta e os processos ativos para identificar possíveis superfícies de ataque que não estão expostas externamente:
ss -tulpn
Descoberta Principal:
127.0.0.1:1337 com privilégios de root.Uma inspeção mais aprofundada do arquivo de configuração da aplicação OliveTin (/opt/OliveTin/config.yaml) revelou que as ações de backup do banco de dados eram executadas por meio de um wrapper de shell. Especificamente, a configuração utilizava o parâmetro db_pass dentro de uma string de comando mysqldump:
shell: "mysqldump -u {{ db_user }} -p'{{ db_pass }}' {{ db_name }} > /opt/backups/backup.sql"
arguments:
- name: db_pass
type: password
Essa configuração introduz uma vulnerabilidade crítica de injeção de comando (CVE-2026-27626) porque o parâmetro db_pass está entre aspas simples dentro de um contexto de shell, mas não sanitiza adequadamente a entrada contendo operadores de controle do shell (por exemplo, ponto e vírgula ;, pipes | ou crases).
Como o serviço vulnerável OliveTin está vinculado estritamente a 127.0.0.1:1337, requisições externas da máquina atacante Kali são bloqueadas com um erro Connection refused. Para interagir com o serviço, estabelecemos um túnel de encaminhamento de porta local via SSH:
ssh -L 1337:127.0.0.1:1337 haris@<TARGET_IP>
Usando um script de exploração em Python direcionado ao endpoint da API do OliveTin (/api/olivetin.api.v1.OliveTinApiService/StartAction), injetamos comandos arbitrários do sistema no vetor de parâmetro vulnerável.
Devido à sintaxe estrita do shell e às dependências de diretório no wrapper original do comando mysqldump, a criação direta de arquivos às vezes podia resultar em erros de status de saída (como diretórios de destino ausentes ou restrições de permissão). Ao criar strings de execução precisas ou consultar o sistema de arquivos diretamente através da vulnerabilidade da API, contornamos os obstáculos de execução.
Executando o payload de comando através da interface de exploração:
python3 CVE-2026.27626.py -u http://127.0.0.1 -x "cat /root/root.txt"
Saída da Execução:
[+] Execution ID: 7fd15259-3996-4e03-9ebd-329034ee4e0d
======================================================================
Command Output
======================================================================
exit status 127
Usage: mysqldump [OPTIONS] database [tables]
...
ae9306f5690c4812c6f9445027d0d060
sh: 1: : Permission denied
======================================================================
A flag de root foi extraída com sucesso diretamente através do fluxo de saída do comando.
ae9306f5690c4812c6f9445027d0d060/root/.ssh/authorized_keys através do vetor de injeção de comando, concedendo acesso administrativo contínuo ao terminal.root, a menos que seja absolutamente necessário. Execute serviços sob contas de serviço dedicadas com permissões mínimas.