Horizont Write-up
0
0

Horizont Write-up

Passo a passo de como eu resolvi a maquina Horizont da Crowsec.

Roberto Francisco
4 min
0
0
Email image

Introdução

A máquina Horizont é disponibilizada no laboratório da Crowsec, para poder ter acesso a essa máquina é preciso ser aluno do Webhacking-na-pratica 2.0. ela está classificada como nível Médio e seu sistema operacional é Linux.

Reconhecimento

O primeiro passo é descobrir quais os serviços que estão sendo executados na máquina, para isso utilizei o Nmap com os seguintes parâmetros:

Nmap -sV -vvv <IP-da-Maquina>

e obtive o seguinte resultado:

Email image

Então decidir olhar o serviço http na porta 80.

Email image

Depois de olhar e tentar algumas interações, decidir olhar o código fonte da página e encontrei algo bastante interessante

Email image

Era um comentário, solicitando que define-se um valor para o parâmetro url, decidir então testar, colocando a url do google como valor do parâmetro.

Email image

Opa, o servidor retornou o conteúdo da página web do google =D, mas não parei por aí, fui mais a fundo, e subir um servidor web em python na minha máquina com o comando

python3 -m http.server 8080 e coloquei minha url no parâmetro.

Então descobrir que o IP que fazia a requisição http era o da máquina Horizont.

Email image

Ou seja, era um server-side request forgery(SSRF).

Explorando o SSRF

Através, desse SSRF conseguir extrair do metadados da AWS credencias de acesso ao s3.

Email image

Com essas informações, configurei o aws cli no meu sistema operacional e executei o comando:  aws s3 ls.

Email image

Então achei interessante o nome de um diretório s3-ctf

Email image

Em seu conteúdo tinha

Email image

Então executei o download do arquivo de texto.

Email image

Depois abrir o arquivo e nele continha um base64.

Email image

Ganhando acesso a aplicação

Eu precisava decodificar o base64, então executei o comando no terminal

base64 -d superadmin_login_backup.txt

e este base64 tinha credenciais de acesso há alguma aplicação

Email image

Então fui dar uma olhada no serviço http da porta 8080 que estava sendo executada na maquina

Email image

Eee de cara tinha uma função de login

Email image

Coloquei as credencias do base64 e pressionei o botão de Login

Email image

Conseguir logar no sistema :D. Pressionei o Admin Area.

Email image

E fui redirecionado para essa página

Email image

Era uma aplicação de CMS, era preciso entender ela e dar um pesquisada por possíveis pontos de exploração. Foi então que encontrei esse artigo escrito por bigb0ss,  que demostrou a utilização de um plugin malicioso no HorizontCMS

Explorando HorizontCMS

Fiz o download do plugin disponibilizado no repositório do github do autor do HorizontCMS.

Email image

E fui para o seguinte diretório.

Email image

E neste diretório continha alguns arquivos.

Email image

Abrir o arquivo messages.php com o nano e inserir um código de reverse shell.

.
.

Depois compactei novamente no formato zip todos os arquivos. Voltei para aplicação HorizontCMS e naveguei para o sistema de plugin.

Email image

Então fui para a opção de upload new plugin.

Email image

Selecionei o meu plugin modificado com a extensão .zip.

Email image

E pressionei upload, install, activate e pronto plugin instalado e pronto para testar

Email image
Email image
Email image

Conseguindo uma shell

Então coloquei meu netcat para escutar na porta configurada no código reverse shell, porta 1337.

Email image

No Google Maps, pressionei add location.

Email image

E inserir dados fictícios, e pressionei Save.

Email image

Voltei para o netcat e.

Email image

Obtive uma shell no servidor :p, comecei a navegar pelos diretórios e encontrei na raiz do sistema operacional uma flag.

Email image

Encontrei a flag de usuário 😊.

Escalando Privilégios

Comecei a procurar por binários com SUID configurados com o comando.

Email image

E encontrei esses.

Email image

Acessei o site https://gtfobins.github.io/ e comecei a procurar por binários que continha na lista que me permite-se virar root.

Encontrei o binário find.

Email image

Naveguei para /usr/bin e executei o comando

Email image

E executei o comando whoami, eee

Email image

Virei root do sistema operacional. LoL. Fui para o diretório raiz do usuário root e executei o cat no arquivo root.txt

Email image

E a peguei a flag root. Maquina Finalizada com sucesso U.u.

Considerações finais

O comprometimento da máquina Horizont, deu em consequência da aplicação permitir que o usuário consiga manipular requisições feitas pelo servidor web, falha chamada de SSRF(Server-side Request Forgery), somando a uma má configuração de permissões dos metadados da AWS, foi possível tornar-se administrador da aplicação CMS.

A escalação de privilegio ocorreu devido o bit SUID está ativado no binário find do sistema operacional.