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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://2h4ck.gitbook.io/home/ctf/tryhackme/startup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
