githubEditar

Eighteen

CTF HackTheBox - Easy

1. Escopo e Objetivo

  • Máquina alvo: 10.129.135.29

  • DNS: eighteen.htb e dc01.eighteen.htb

  • Objetivo: Obter as flags user.txt e root.txt.

  • Metodologia: Reconhecimento \rightarrow Enumeração \rightarrow Acesso Inicial \rightarrow Escalada de Privilégio.


2. Reconhecimento e Enumeração Inicial

O alvo é um sistema operacional Windows com serviços HTTP (80), MSSQL (1433) e WinRM (5985) ativos.

2.1. Varredura de Portas e Serviços

O scan rápido com rustscan em conjunto com nmap com detecção de versão (-sVC).

# Varredura inicial de portas abertas
rustscan -a $IP -- -sVC -oN versionPorts.txt
  • Serviços Chave: MS SQL Server 2022 RTM na porta 1433, indicando potencial vetor de ataque a banco de dados.

2.2. Enumeração Web e Credenciais Iniciais

A conta inicial (kevin:iNa2we6haRj2gaw!) não concedeu acesso privilegiado à rota /admin no serviço Web. A criação de um usuário via /register validou a funcionalidade da aplicação.

  • DNS Descobertos: eighteen.htb e dc01.eighteen.htb via nmap.

3. Exploração do MSSQL (Porta 1433) e Acesso Inicial

A credencial inicial (kevin:iNa2we6haRj2gaw!) foi validada para autenticação no serviço MSSQL.

3.1. Conexão e Enumeração de Usuários (AD/SAMR)

A conexão com impacket-mssqlclient confirmou o acesso ao DB. O NetExec foi usado para realizar RID-bruting (Enumeração de usuários via SID/RID) contra o sistema operacional através das credenciais SQL.

  • Usuários Enumerados: jamie.dunn, jane.smith, alice.jones, adam.scott, bob.brown, carol.white, dave.green, etc.

3.2. Escalonamento de Privilégios no SQL Server (IMPERSONATE)

O usuário kevin não possuía acesso direto ao DB financial_planner. Foi realizada uma busca por privilégios de personificação (IMPERSONATE).

A personificação do usuário appdev (possivelmente a conta de serviço da aplicação) foi executada, concedendo acesso de leitura ao DB e a permissão para extrair dados da tabela users.

4. Quebra de Hash (Hashcat) e Acesso ao Sistema Operacional

4.1. Cracking do Hash PBKDF2:SHA256

O hash foi formatado para o modo Hashcat 10900 (PBKDF2-HMAC-SHA256, MSSQL 2012+), exigindo a concatenação e recodificação dos componentes salt e hash em Base64, separados por : ou formato similar dependendo da versão do Hashcat.

4.2. Acesso ao Sistema Operacional (WinRM)

A senha quebrada (iloveyou1) foi utilizada em um password spray contra os usuários enumerados, obtendo sucesso no login via WinRM (5985) com o usuário adam.scott.

5. Escalada de Privilégios (Privesc)

Apesar da execução das ferramentas de enumeração (WinPEAS.exe, BloodHound/Sharphound), os vetores de escalonamento padrão (serviços inseguros, permissões de arquivo, unquoted service paths) não foram imediatamente aparentes. A investigação foi focada em credenciais armazenadas e configurações de sistema.

5.1. Análise de Credenciais e Arquivos de Configuração

Em ambientes Windows, senhas ou tokens de sessão frequentemente são armazenados em locais acessíveis ao usuário, como arquivos de configuração de aplicativos ou gerenciador de credenciais.

A investigação focou nos diretórios de usuário e configurações de rede:

  1. Enumerar Credenciais:

  2. Verificar Diretórios de Aplicação: A máquina utiliza MSSQL e um web app. Foi verificado o diretório do serviço IIS ou do próprio SQL Server.


6. Lições Aprendidas e Boas Práticas

6.1. Técnicas Chave

  • Escalonamento em DB: O privilégio IMPERSONATE no MSSQL é um vetor crítico para personificar contas de serviço e realizar hash dumping do DB.

  • Reuso de Senha: A exploração se baseou no reuso de uma senha fraca (iloveyou1) para autenticação de sistema (WinRM) por outro usuário (via password spray).

  • Investigação Pós-PEAS: Quando o WinPEAS falha em revelar vetores óbvios, a investigação deve focar em arquivos de configuração, vulnerabilidades recentes (CVEs), credenciais embutidas (plaintext) e scripts de inicialização.

6.2. Mitigações para Defender

  • Princípio do Mínimo Privilégio: Contas de serviço (como appdev) não devem ter permissão de IMPERSONATE por logins de usuários de baixo privilégio.

  • Força da Senha e Rotação: Uso de hash de senha seguro (PBKDF2) é inútil se a senha (PSK) for fraca e facilmente quebrável via wordlist. Implementar políticas de senhas complexas e rotação.

  • Credenciais Armazenadas: Nunca armazenar senhas de administrador em scripts ou arquivos de configuração que sejam acessíveis por usuários de baixo privilégio.

Atualizado