> For the complete documentation index, see [llms.txt](https://2h4ck.gitbook.io/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://2h4ck.gitbook.io/home/ctf/tryhackme/pickle-rick.md).

# 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:

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FbvApPAKb3qP9COd8mi64%2Fimage.png?alt=media&amp;token=a0a0ecbe-2ac3-4ced-ae05-3bfcd9c70185" alt=""><figcaption><p>Página inicial</p></figcaption></figure>

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

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2Fxx7cz2wsOh0H6S455UHZ%2Fimage.png?alt=media&amp;token=68aa0abd-d2e3-4cd8-9026-1d5104f253b7" alt=""><figcaption><p>Código-fonte da página contendo um nome de usuário em um comentário</p></figcaption></figure>

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.

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FQNwbRpQoUqRCxtQi9eTQ%2Fimage.png?alt=media&amp;token=ac5e46d6-d964-4a39-8b4f-04330545aa7f" alt=""><figcaption><p>Diretórios encontrados durante a varredura</p></figcaption></figure>

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

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FpE15Vn3dPXW2ASS1DEoV%2Fimage.png?alt=media&amp;token=b3da7aab-b27a-4664-be77-991e61d65fc7" alt=""><figcaption><p>Conteúdo do arquivo <code>robots.txt</code></p></figcaption></figure>

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FFfoPhwv3jQjJ7lTNCwhn%2Fimage.png?alt=media&amp;token=a3401617-f4a8-47b4-9e2e-f164c5d814f2" alt=""><figcaption><p>Conteúdo (Index of) do diretório <code>/assets</code></p></figcaption></figure>

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

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FIGBEFEruGnhYo8cnx4Wk%2Fimage.png?alt=media&amp;token=3b9a2f2d-c131-45bf-9532-6085f0c92646" alt=""><figcaption><p>Página de login</p></figcaption></figure>

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.

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FnZGOvQtcJZ7RUEhpvhFP%2Fimage.png?alt=media&amp;token=1fc4af14-9019-4a94-865c-7f584d26cb6b" alt=""><figcaption><p>Execução de comandos no servidor interno</p></figcaption></figure>

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FOFqDby1dOrDHhVfmYnl4%2Fimage.png?alt=media&amp;token=02c2be0f-2f82-47f4-b851-a178b57741ea" alt=""><figcaption><p>Com o comando <code>ls</code>, encontrei o primeiro ingrediente do desafio</p></figcaption></figure>

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

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FnToL4QXNKxPS7X9xo3Cj%2Fimage.png?alt=media&amp;token=e79da122-a6d4-460b-ab0f-e6a08b3edfee" alt=""><figcaption><p>O comando <code>cat</code> é bloqueado, mas posso tentar outros comandos</p></figcaption></figure>

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.

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FmFCs0fJWktFarDOAyYNH%2Fimage.png?alt=media&amp;token=5b97af03-7e2e-4833-afbb-3558b4c32698" alt=""><figcaption><p>Captura dos dois diretórios de usuários encontrados</p></figcaption></figure>

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FWhk3Y0EuN4DRkowQfea7%2Fimage.png?alt=media&amp;token=817e4e13-55cb-4644-a122-019844da017a" alt=""><figcaption><p>Encontrei o segundo ingrediente navegando pelas pastas do servidor. (Julguei importante lembrar da contrabarra (<code>\</code>) antes do espaço, para escapar o caractere)</p></figcaption></figure>

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.

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FnPPV6t9iAmCZ9pFQD1Ov%2Fimage.png?alt=media&amp;token=1e519107-4811-4287-aebe-e44bcfab331b" alt=""><figcaption><p>Comando de shell reversa</p></figcaption></figure>

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FB8Ljco1SNbyquhyTkvSk%2Fimage.png?alt=media&amp;token=7bf86280-71b6-448c-8aed-513811539b2d" alt=""><figcaption><p>Shell reversa obtida via RCE</p></figcaption></figure>

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.

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FgQjPax6hvq0z8NuQvJdK%2Fimage.png?alt=media&amp;token=4786d0ae-d262-4f7c-a162-0aea08a52ea0" alt=""><figcaption><p><code>find / -user root -perm -4000 -exec ls -ldb {} ;</code></p></figcaption></figure>

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

<figure><img src="https://2761915823-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1HmCASGp08H43yXrIGdx%2Fuploads%2FCKOBf8aE7SgoBv3ZYpu9%2Fimage.png?alt=media&amp;token=91804f07-1c64-4145-9fc6-171d5fbc4c8a" alt=""><figcaption><p>Captura do último ingrediente</p></figcaption></figure>
