👨🚀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
.

.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.

CTRL+Z
> stty raw -echo
> fg
> export TERM=xterm
Agora que possuo acesso ao servidor, procurei a flag user.txt
.

user.txt
Escalação de Privilégio
Para tentar escalar privilégios, verifiquei a existência de executáveis com permissão SUID.

systemctl
pode ser executado com permissões SUIDCom isso, criei um payload na pasta /tmp
que simula um serviço, cujo qual chama uma shell.

systemctl



root.txt
Last updated