🌶️Startup

Olá, viajante! Neste artigo, trago um write-up do desafio Startup, da plataforma TryHackMe.

Reconhecimento

Ao realizar um portscan básico, encontrei as seguintes portas abertas:

PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Analisando a aplicação web, não encontrei nada relevante.

Olhando o código-fonte, também não encontrei nada muito interessante.

Enquanto a enumeração de subdiretórios com o gobuster ainda não foi concluída, analisei o serviço FTP e notei que o servidor permite login anônimo.

Realizei o download dos arquivos acima e notei que a imagem important.jpg, na verdade, não é tão importante assim.

Porém, no arquivo notice.txt, temos um possível nome de usuário.

#Whoever is leaving these damn Among Us memes in this share, it IS NOT FUNNY. People downloading documents from our website will think we are a joke! Now I dont know who it is, but Maya is looking pretty sus.

Retomando a enumeração de diretórios, encontrei o diretório /files.

Exploração

Tenho acesso ao serviço FTP e a um diretório de arquivos... Posso tentar subir uma shell reversa através do serviço FTP.

Tentarei obter uma shell full TTY através do Python.

python3 -c 'import pty;pty.spawn("/bin/bash")'
CTRL + Z
stty raw -echo
fg
export TERM=xterm

Agora posso checar por arquivos e, ao realizar tal procedimento, encontrei a primeira flag.

Analisando os arquivos em maior profundidade, encontrei uma pasta chamada incidents e, dentro dela, um arquivo de extensão .pcapng.

Realizando a cópia do arquivo para a minha máquina via scp e analisando o arquivo com o Wireshark, encontrei um pacote que continha uma possível (e aparente) senha.

Movimentação Lateral

Analisando a pasta /home para verificar a existência de outros usuários, encontrei outro usuário. Agora com um nome de usuário genuíno e uma possível senha, posso tentar realizar uma movimentação lateral.

Escalação de Privilégio

Analisando a pasta scripts, encontrei um script em shell chamado planner.sh, pertencente ao usuário root mas com permissão de execução para qualquer usuário.

O script acima basicamente envia o conteúdo da variável LIST para dentro do arquivo /scripts/startup_list.txt e, após o envio, executa o script /etc/print.sh, ao qual investigarei agora.

Checando o conteúdo do script, trata-se apenas de uma chamada de shell e a exibição de uma mensagem de conclusão.

#!/bin/bash
echo "Done!"

Checando executáveis com permissão SUID, encontrei o executável crontab. Apontarei o script planner.sh no crontab do usuário que acessei para tentar obter uma shell reversa com permissões elevadas.

Last updated