Levram é uma máquina Linux de dificuldade fácil do Proving Grounds Practice. Nela é preciso abusar de um RCE na aplicação Gerapy para conseguir uma shell reversa e depois escalar privilégios a partir das capabilites no python.


Começando escaneando as portas com o nmap para encontrar quais estão abertas. Foram encontradas apenas a 22 de SSH e 8000 com uma servidor web.

portscan

Acessando a aplicação web somos redirecionados para uma página de login do Gerapy que solicita um usuário e senha.

login

É possível acessar com as credenciais admin:admin. Na pagína inicial, após fazer login, há informações sobre a versão do software, sendo ele 0.9.7. Essa versão possui uma vulnerabilidade de execução de código (RCE).

gerapy

A ferramenta searchsploit já possui o exploit para explorar essa vulnerabilidade.

searchsploit

Ao tentar executar o exploit com os parâmetros necessários ocore um erro. Isso devido há não ter nenhum projeto cadastrado no Gerapy. Então é preciso criar um projeto que seja possível avançar.

error

Com o projeto criado, o exploit consegue executar normalmente e obtém uma shell reversa como usuário app na máquina. Aqui já obtemos acesso à primeira flag.

exploit

Com o uso do Linpeas, foi encontrado que o interpretador de Python possui permissões de setuid. Assim, ele é capaz de manipular o UID dos processos, fazendo com que possa executar binários como se fosse qualquer outro usuário.

linpeas

Baseado no código do GTFObins, executamos um código que define o UID como 0, ou seja de root, e executa o bash. Dessa forma, conseguimos obter uma shell com permissões de administrador local e podemos ler a segunda flag.

python3.10 -c 'import os; os.setuid(0); os.system("/bin/bash")'

proof