Write-up da maquina Vaccinate Hackingclub.
|
|
A máquina Vaccinate pertence ao Hackingclub, para poder ter acesso a essa máquina é necessário assinar o Hackingclub.
A máquina está classificada como nível Médio e seu sistema operacional é Linux.
Primeira etapa é fazer o reconhecimento inicial de portas e serviços disponíveis no alvo. Para essa finalidade utilizaremos a ferramenta Nmap.
Nmap -sS -sV -v <IP>
Resultado:
|
|
Vamos iniciar o reconhecimento do serviço web.
Na página home da aplicação é possível encontrar um formulário.
|
|
Executaremos o wfuzz para tentar encontrar algum arquivo ou diretório na aplicação.
|
|
Um arquivo de texto disponível no servidor web. Vamos dar uma olhada.
|
|
Encontramos duas coisas interessantes, a nossa primeira flag e que possivelmente a aplicação está utilizando a função “call_user_func”.
No site do PHP https://www.php.net/manual/pt_BR/function.call-user-func.php
Obtemos a seguinte informação:
|
|
Basicamente a função “call_user_func” pode ser utilizada para chamar diretamente uma função no php e os seus argumentos.
Pesquisando possíveis formas de exploração dessa função, encontramos “dynamic function injection” uma vulnerabilidade que permite o usuário chamar uma função do php diretamente, como por exemplo a função System.
Voltando para o formulário que encontramos na página home e capturamos a requisição com Burpsuite.
|
|
Encontramos dois arrays, data e usuario, temos um problema, de acordo com o site do php a função system não aceita array.
|
|
Vamos converter o parâmetro data em string e chamar o system pelo usuário, caso não funcione vamos inverter os valores.
|
|
Vamos enviar a requisição.
|
|
Temos nosso Remote Code Execution.
Vamos utilizar o Curl para obter nossa shell.
|
|
Resultado:
|
|
|
|
Encontramos a 2º flag.
Agora precisamos escalar nosso privilegio para root ou outro usuário que nos permita conseguir o root.
Executando o netstat podemos ver quais portas estão abertas na máquina.
|
|
Porta 8000 tem algum serviço escutando através dela, porem somente está disponível localmente.
Para acessar pela nossa máquina, utilizaremos o chisel que é um programa para tunelamento.
https://github.com/jpillora/chisel
Na nossa máquina executaremos o chisel como servidor.
|
|
Na máquina alvo executaremos como cliente.
|
|
Conexão feita, agora temos acesso a porta 8000.
|
|
Laravel com o modo debug ON, pesquisando por isso no google encontrei esse repositório no GitHub.
https://github.com/ambionics/laravel-exploits
ele explora o Laravel ignition, para confirmar que é essa versão do laravel podemos verificar as requisições que saem da nossa máquina.
|
|
Pronto, agora podemos executar o exploit.
|
|
Conseguimos nosso RCE agora como root.
Executamos uma reverse shell bash.
|
|
Pegamos a última flag.
Obrigado por chegarem até o final do meu write-up.
|