👨‍🚀Vulnversity

Olá, viajante! Neste artigo, trago um write-up do desafio Vulnversity.

Reconhecimento

Ao realizar um portscan básico, encontrei as seguintes portas abertas:

PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 3.0.3
22/tcp   open  ssh         OpenSSH 7.2p2 Ubuntu 4ubuntu2.7
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
3128/tcp open  http-proxy  Squid http proxy 3.5.12
3333/tcp open  http        Apache httpd 2.4.18 ((Ubuntu))
Service Info: Host: VULNUNIVERSITY; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Acessando a porta 3333 (Serviço Web), me deparei com a aplicação Vulnversity.

Analisei o código-fonte da página e não encontrei nada muito relevante. Partindo para a enumeração de diretórios, encontrei um diretório interessante.

Acessando o diretório encontrado, notei uma função de upload de arquivos.

Exploração

Eu poderia tentar subir uma shell reversa em PHP, levando em consideração que o site utiliza tal tecnologia...

O servidor não permite upload de arquivos com extensão .php... Posso tentar algumas outras alternativas, como .php2, .php3, .php4, .php5 ou .phtml.

Agora só preciso acessar o arquivo que fiz o upload.

Provavelmente o arquivo não está armazenado na mesma pasta... Então decidi realizar uma varredura de diretórios dentro da página encontrada inicialmente.

Subindo uma shell full PTY através do Python.

Agora que possuo acesso ao servidor, procurei a flag user.txt.

Escalação de Privilégio

Para tentar escalar privilégios, verifiquei a existência de executáveis com permissão SUID.

Com isso, criei um payload na pasta /tmp que simula um serviço, cujo qual chama uma shell.

Last updated