SimpleCTF
CTF para iniciantes com enumeração, exploração e escalação de privilégios.
Visão geral
A máquina SimpleCTF é um desafio introdutório que envolve enumeração de serviços, descoberta de diretórios, identificação de versão vulnerável de CMS, extração de credenciais via SQL Injection, acesso por SSH e escalação de privilégios com vim.
Informações da máquina
- Autor do write-up: Derick Andrighetti
- Plataforma: TryHackMe
- Sistema operacional: Linux
- IP / instância:
10.10.219.187 - Data: 12 de novembro de 2024
Habilidades
Necessárias
- Dirbusting
- Enumeration and Reconnaissance
- SSH
Praticadas / aprendidas
- Exploits
- Hashing
- Privilege Escalation
- SQL Injection
Recursos
Enumeração inicial
Portas abertas
21/tcp— FTP80/tcp— HTTP2222/tcp— SSH
Exemplo de reconhecimento
nmap -sC -sV -Pn 10.10.219.187
Primeiras observações
- A página inicial da porta 80 exibe a página padrão do Apache2.
- Isso sugere que o conteúdo principal pode estar em algum diretório oculto.
- O SSH está rodando na porta
2222, o que já é um detalhe relevante para o acesso posterior.
Enumeração web
Por meio de fuzzing, diretórios adicionais podem ser encontrados:
/simple/robots.txt
Exemplo de comando:
gobuster dir -u http://10.10.219.187 -w /usr/share/wordlists/dirb/common.txt
Ao acessar http://ip/simple, é exibida uma página do CMS Made Simple.
No rodapé da página, a versão identificada é:
- 2.2.8
Essa versão possui vulnerabilidade conhecida de SQL Injection, com exploit público disponível.
Exploração
A exploração foi feita usando o exploit público associado ao:
- CVE-2019-9053
Com ele, é possível obter as credenciais do usuário mitch.
Acesso inicial
Com as credenciais obtidas, o acesso pode ser feito por SSH na porta 2222:
ssh -p 2222 mitch@10.10.219.187
Depois de entrar, a flag do usuário pode ser lida com:
cat user.txt
Enumeração pós-exploração
Ao navegar pelos diretórios de usuários:
cd /home/
ls
é possível identificar outro usuário:
sunbath
O próximo passo é verificar permissões sudo disponíveis.
sudo -l
Escalação de privilégios
Foi identificado que o editor vim pode ser executado com sudo.
Esse binário pode ser abusado com base nas técnicas do GTFOBins.
Comando usado
sudo vim -c ':!/bin/sh'
Com isso, é possível obter shell com privilégios elevados.
Depois, para ler a flag de root:
cd /root
cat root.txt
Perguntas do desafio
Quantos serviços estão rodando abaixo da porta 1000?
2
O que está rodando na porta mais alta?
ssh
Qual é o CVE utilizado contra a aplicação?
CVE-2019-9053
A que tipo de vulnerabilidade a aplicação é vulnerável?
SQL Injection
Qual é a senha obtida?
secret
Onde é possível logar com os dados obtidos?
ssh
Há outro usuário no diretório home?
sunbath
O que pode ser usado para obter um shell privilegiado?
vim
Flags
- User flag: redacted
- Root flag: redacted
Lições aprendidas
- Nem sempre o serviço mais interessante aparece logo na página inicial.
- Descobrir a versão exata de uma aplicação pode ser suficiente para encontrar um caminho de exploração.
- Um acesso inicial simples pode evoluir rapidamente para root quando há permissões sudo mal configuradas.