GameBuzz
Write Up da máquina GameBuzz do TryHackMe

Objetivo
Essa máquina é parte do Incognito 2.0 CTF, e é só essa informação que ele trás sobre a máquina.
Enumeração
Iniciando o processo de enumeração, utilizei o nmap para descobrir quais portas estavam abertas no host.

A máquina possuí apenas a porta web aberta, então acessei o endereço para identificar qual aplicação estava rodando no servidor.

Navegando na aplicação para entender o seu funcionamento, foi possível encontrar um botão de gamming rating.

Analisando as requisições ao clicar no botão, é possível ver que a aplicação passa o caminho de um arquivo para buscar o rating do jogo escolhido.

A aplicação realiza a leitura de um arquivo .pkl que é um arquivo serializado em Python. Nesse momento, a minha ideia foi que se eu conseguir fazer o upload de um arquivo na aplicação, provavelmente vou conseguir explorar a desserialização desse arquivo.
Então realizei uma enumeração diretórios para encontrar mais informações sobre a aplicação.

O resultado da enumeração não trouxe nada de relevante, então também realizei uma enumeração de subdomínios na aplicação.

Acessando o subdomínio encontrado, a aplicação retorna somente uma mensagem.

Lendo o arquivo "robots.txt", foi possível descobrir um diretório na aplicação.

Então, tentei acessar esse diretório, porém não temos permissão para acesso.

Na requisição do gamming rating, o caminho passa pelo diretório "/upload", então tentei acessar esse diretório e dessa vez não tive nenhuma restrição.

Exploração
Então, criei um arquivo com código abaixo e enviei para aplicação sem nenhuma restrição.

Após isso, aproveitei a requisição do gamming rating para chamar o arquivo enviado, e assim, consegui uma shell na máquina.

Olhando os arquivos do sistema, foi possível encontrar uma email contendo uma senha.


A mensagem tbm trás uma dica, então, fiz a leitura do arquivo de configuração do knockd e encontrei a sequência de portas correta para abrir a porta 22.

Com essa informação e com a senha encontrada, foi possível acessar a máquina via SSH.

A senha era a hash, não precisava quebrar
Vendo as permissões do usuário, foi possível identificar que ele pode executar o knockd com permissão de root.

Então, alterei o conteúdo do arquivo "knock.conf" para fazer uma cópia do binário do bash com permissão de execução como root.

Após isso reiniciei o serviço do knockd.

E então, executei novamente o knock na minha máquina.
Após isso, olhando o /tmp encontrei o binário do bash.

Então, bastou executar e pegar o root na máquina.

Last updated