> 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/startup.md).

# Startup

## Reconhecimento

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

```
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
```

Analisando a aplicação web, não encontrei nada relevante.

<figure><img src="/files/lgSHwIWp4SJr2ki2FkTy" alt=""><figcaption><p>Página inicial</p></figcaption></figure>

Olhando o código-fonte, também não encontrei nada muito interessante.

<figure><img src="/files/UqTiPq2jVHCtXyylrAli" alt=""><figcaption><p>Código-fonte da página inicial</p></figcaption></figure>

Enquanto a enumeração de subdiretórios com o `gobuster` ainda não foi concluída, analisei o serviço FTP e notei que o servidor permite login anônimo.

<figure><img src="/files/wkhBirGwQDUd0DxOZq3I" alt=""><figcaption><p>Captura de banner do serviço de FTP</p></figcaption></figure>

Realizei o download dos arquivos acima e notei que a imagem `important.jpg`, na verdade, não é tão importante assim.

<figure><img src="/files/SUxWx7Blls7SgQYijPLm" alt=""><figcaption><p><span data-gb-custom-inline data-tag="emoji" data-code="1f604">😄</span></p></figcaption></figure>

Porém, no arquivo `notice.txt`, temos um possível nome de usuário.

```
#Whoever is leaving these damn Among Us memes in this share, it IS NOT FUNNY. People downloading documents from our website will think we are a joke! Now I dont know who it is, but Maya is looking pretty sus.
```

Retomando a enumeração de diretórios, encontrei o diretório `/files`.

<figure><img src="/files/Wg8SXoOucGo6UBuvBCoE" alt=""><figcaption><p>Diretório encontrado durante a enumeração</p></figcaption></figure>

## Exploração

Tenho acesso ao serviço FTP e a um diretório de arquivos... Posso tentar subir uma shell reversa através do serviço FTP.

<figure><img src="/files/TjSabkyx8CSCu9Iaoegu" alt=""><figcaption><p>Success!</p></figcaption></figure>

Tentarei obter uma shell full TTY através do Python.

```
python3 -c 'import pty;pty.spawn("/bin/bash")'
CTRL + Z
stty raw -echo
fg
export TERM=xterm
```

<figure><img src="/files/nuUjLswdPqHQAW8xF1Fe" alt=""><figcaption><p>Shell full TTY obtida</p></figcaption></figure>

Agora posso checar por arquivos e, ao realizar tal procedimento, encontrei a primeira flag.

<figure><img src="/files/0ksA8gVhoNMfTgAdouwn" alt=""><figcaption><p>Captura da primeira flag</p></figcaption></figure>

Analisando os arquivos em maior profundidade, encontrei uma pasta chamada `incidents` e, dentro dela, um arquivo de extensão `.pcapng`.

<figure><img src="/files/80uZ7hEoyhKfJDy2M7z0" alt=""><figcaption><p>Arquivo interessante encontrado</p></figcaption></figure>

Realizando a cópia do arquivo para a minha máquina via `scp` e analisando o arquivo com o `Wireshark`, encontrei um pacote que continha uma possível (e aparente) senha.

<figure><img src="/files/H19NsDx0FjohjL9WiT6R" alt=""><figcaption><p>Captura do pacote contendo uma possível senha</p></figcaption></figure>

## Movimentação Lateral

Analisando a pasta `/home` para verificar a existência de outros usuários, encontrei outro usuário. Agora com um nome de usuário genuíno e uma possível senha, posso tentar realizar uma movimentação lateral.

<figure><img src="/files/d2qw7lweSPbljrKRKtum" alt=""><figcaption><p>Captura da segunda flag</p></figcaption></figure>

## Escalação de Privilégio

Analisando a pasta `scripts`, encontrei um script em shell chamado `planner.sh`, pertencente ao usuário root mas com permissão de execução para qualquer usuário.

<figure><img src="/files/YHdS7500ojyocGsVYK3g" alt=""><figcaption><p>Scripts pertencentes ao usuário root e suas permissões</p></figcaption></figure>

<figure><img src="/files/IfxZ6gsVMwrfycMIURht" alt=""><figcaption><p>Conteúdo do script <code>planner.sh</code></p></figcaption></figure>

O script acima basicamente envia o conteúdo da variável `LIST` para dentro do arquivo `/scripts/startup_list.txt` e, após o envio, executa o script `/etc/print.sh`, ao qual investigarei agora.

&#x20;

<figure><img src="/files/2YJwKUfYTufytOsxxJfk" alt=""><figcaption><p>Dono do script <code>/etc/print.sh</code> é o usuário que estou utilizando no momento. Good news</p></figcaption></figure>

Checando o conteúdo do script, trata-se apenas de uma chamada de shell e a exibição de uma mensagem de conclusão.

```shell
#!/bin/bash
echo "Done!"
```

Checando executáveis com permissão SUID, encontrei o executável `crontab`. Apontarei o script `planner.sh` no `crontab` do usuário que acessei para tentar obter uma shell reversa com permissões elevadas.

<figure><img src="/files/TuzTjpWsOpPsELDc6ifl" alt=""><figcaption><p>Configuração do <code>crontab</code> para o script <code>planner.sh</code></p></figcaption></figure>

<figure><img src="/files/r9eGL1uKOUvE9DIuHnxG" alt=""><figcaption><p>Escalação de privilégio via <code>crontab</code></p></figcaption></figure>

<figure><img src="/files/OeGqyqhIcrM6Z4lBzH0R" alt=""><figcaption><p>Captura da última flag</p></figcaption></figure>
