🥒Pickle Rick

Olá, viajante! Neste artigo, trago um write-up do desafio Pickle Rick, da plataforma TryHackMe.

Reconhecimento

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

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.6 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Acessando a aplicação web, temos a seguinte página:

Página inicial

Analisando o código-fonte da página, pude encontrar um nome de usuário em um comentário.

Código-fonte da página contendo um nome de usuário em um comentário

Se temos um usuário, então provavelmente temos alguma página de login escondida nessa aplicação, ou esse usuário pode ser usado para acessar o serviço SSH.

Realizando uma enumeração de subdiretórios, encontrei alguns interessantes.

Diretórios encontrados durante a varredura

Analisando o conteúdo do arquivo robots.txt, encontrei um conteúdo estranho, que faz referência ao conteúdo do desenho animado.

Conteúdo do arquivo robots.txt
Conteúdo (Index of) do diretório /assets

Nada interessante. Partindo para a página de login encontrada durante a enumeração de diretórios.

Página de login

Com um nome de usuários e uma possível senha em mãos, posso tentar acessar a página acima.

Exploração

Temos um painel de comandos. Provavelmente conseguirei executar comandos diretamente no servidor.

Execução de comandos no servidor interno
Com o comando ls, encontrei o primeiro ingrediente do desafio

Ao tentar capturar o conteúdo do arquivo, obtive um bloqueio.

O comando cat é bloqueado, mas posso tentar outros comandos

Através do comando less, consegui obter o conteúdo do arquivo com sucesso.

Navegando um pouco mais no servidor, descobri que existem dois usuários com pasta /home habilitada.

Captura dos dois diretórios de usuários encontrados
Encontrei o segundo ingrediente navegando pelas pastas do servidor. (Julguei importante lembrar da contrabarra (\) antes do espaço, para escapar o caractere)

Imagino que o último dos 3 ingredientes necessite de escalação de privilégios.

Escalação de Privilégio

Se tenho a possibilidade de executar comandos remotamente, posso tentar subir uma shell reversa.

Comando de shell reversa
Shell reversa obtida via RCE

Após o acesso, consegui uma shell full PTY (CTRL+Z > stty raw -echo > fg > export TERM=xterm).

Consegui encontrar um executável com permissões SUID, onde eu conseguiria escalar meu privilégio.

find / -user root -perm -4000 -exec ls -ldb {} ;

Podemos executar o comando sudo. Tendo isso em vista, consigo listar os arquivos na pasta /root com permissões elevadas.

Captura do último ingrediente

Last updated