Documentação: Cronos CTF

Cronos CTF Writeup

Documentação apresentada pela Behind Security como parte da série “Jornada ao OSCP”, focando no Cronos CTF da HackTheBox.

cronos ctf icon

Cronos CTF

O Cronos CTF se concentra principalmente em diferentes vetores de enumeração e também enfatiza os riscos associados à adição de arquivos graváveis pelo mundo ao crontab raiz.

HackTheBox Logo

HackTheBox

O Hack The Box oferece às pessoas, empresas e universidades as ferramentas necessárias para melhorar continuamente suas capacidades de segurança cibernética — tudo em um só lugar.

Resumo Executivo

Introdução

Este relatório de Pentest documenta a avaliação de segurança realizada no endereço IP 10.10.10.13. A avaliação teve como objetivo identificar vulnerabilidades que poderiam ser exploradas para comprometer a segurança da infraestrutura-alvo.

Objetivo

O objetivo desta avaliação de segurança foi identificar e explorar vulnerabilidades na infraestrutura do Cronos CTF para avaliar as medidas de segurança existentes e fornecer recomendações para mitigar os riscos identificados.

Requisitos

  • Identificar vulnerabilidades na aplicação web hospedada no endereço IP 10.10.10.13.
  • Explorar vulnerabilidades críticas e moderadas para avaliar a exposição potencial a ataques.
  • Avaliar a possibilidade de acesso não autorizado a sistemas e dados.

Resumo de Alto Nível das Vulnerabilidades Encontradas

Enumeração de DNS

  1. Transferência de Zona (Moderada): Um ataque de Transferência de Zona DNS no 10.10.10.13 (cronos.htb) permitiu a recuperação de informações de nome de domínio, potencialmente propagando o vetor de ataque. Para mitigar isso, restrinja as Transferências de Zona DNS para endereços IP autorizados e modifique a configuração do servidor DNS (BIND) para limitar as permissões de Transferência de Zona.

Enumeração do Servidor Web

  1. admin.cronos.htb - Injeção de SQL (Alta): Uma vulnerabilidade de injeção de SQL em admin.cronos.htb permitiu a extração de informações sensíveis do banco de dados. A remediação envolve a implementação de validação de entrada e consultas parametrizadas para evitar tais ataques e configurar o registro para detectar e responder a ataques potenciais em tempo real.

  2. admin.cronos.htb - Bypass de Autenticação (Alta): Usando uma carga útil de injeção de SQL, o mecanismo de autenticação em admin.cronos.htb pode ser contornado, permitindo o login como 'admin' sem uma senha válida. Para corrigir isso, aborde a vulnerabilidade de injeção de SQL mencionada acima.

  3. Acesso Inicial - Injeção de Comando (Alta): Após fazer login como admin sem uma senha válida (usando o Bypass de Autenticação acima), um atacante remoto pode injetar comandos do sistema operacional por meio do painel Net Tool v0.1. A mitigação inclui corrigir as vulnerabilidades de injeção de SQL e implementar autenticação correta do usuário. Valide e higienize completamente a entrada do usuário para evitar ataques de injeção de comandos.

Pós-Exploração

  1. Credenciais do Banco de Dados: As credenciais de usuário do banco de dados foram extraídas do arquivo config.php após obter uma posição na máquina. Para melhorar a segurança, armazene as credenciais de forma segura usando criptografia ou hash e faça a rotação e atualização regular das credenciais do banco de dados.

  2. LPE para root (Elevação de Privilégios Local para root): Um crontab ativo foi explorado para ser executado como usuário root a cada minuto. Esse crontab executava PHP no arquivo 'artisan' do Laravel, de propriedade do usuário de baixo privilégio www-data. Para evitar essa escalada de privilégios, execute o crontab como www-data em vez disso.

Recomendações

  1. Implementar medidas para restringir as Transferências de Zona DNS para endereços IP autorizados e limitar as permissões de Transferência de Zona na configuração do servidor DNS (BIND).
  2. Corrigir a vulnerabilidade de injeção de SQL em admin.cronos.htb implementando validação de entrada, consultas parametrizadas e detecção de ataque em tempo real por meio de registros.
  3. Corrigir a vulnerabilidade de injeção de SQL no mecanismo de autenticação em admin.cronos.htb aplicando as mesmas recomendações mencionadas acima.
  4. Validar e higienizar completamente a entrada do usuário no painel Net Tool v0.1 para evitar ataques de injeção de comandos após o login.
  5. Melhorar a segurança do armazenamento de credenciais do banco de dados, incluindo criptografia ou hash, e estabelecer um processo regular de rotação e atualização das credenciais do banco de dados.
  6. Prevenir a escalada de privilégios local para root configurando o crontab para ser executado como o usuário www-data.

Metodologia

A avaliação envolveu enumeração de serviços, enumeração de DNS e enumeração do servidor web. Foram identificadas e exploradas vulnerabilidades de Transferência de Zona DNS, injeção de SQL, bypass de autenticação e injeção de comandos. As atividades pós-exploração incluíram a extração de credenciais do banco de dados e um cenário de elevação de privilégios local para root por meio de um crontab ativo.


Legenda de Cores

Legenda de cores no console:

Texto padrão do console
Comandos inseridos pelo pentester
Texto que queremos destacar
{...} Saída abreviada por brevidade

Classificação de Risco

Desafio Independente - 10.10.10.13

export IP=10.10.10.13

Enumeração de Serviços

Endereço IPPortas Abertas
10.10.10.13TCP: 22, 53, 80
Saída da varredura do nmap

Enumeração de DNS

Transferência de Zona

Explicação da Vulnerabilidade: A Behind Security conseguiu executar um ataque de Transferência de Zona DNS no 10.10.10.13 (cronos.htb), recuperando informações sobre nomes de domínio e propagando o vetor de ataque.

Correção da Vulnerabilidade: Restrinja as Transferências de Zona DNS apenas para endereços IP autorizados. Modifique a configuração do servidor DNS (BIND) para limitar as permissões de Transferência de Zona.

Gravidade: Elevada

Passos para Reproduzir o Ataque:

  1. Execute dig axfr @10.10.10.13 cronos.htb.
Transferência de zona DNS

Enumeração do Servidor Web

Vhost: cronos.htb, admin.cronos.htb

admin.cronos.htb

Injeção de SQL

Explicação da Vulnerabilidade: A Behind Security descobriu uma falha de injeção de SQL que permitiu ao testador extrair informações sensíveis do banco de dados.

Correção da Vulnerabilidade:

  1. Higienize a entrada do usuário: Implemente validação de entrada e consultas parametrizadas para evitar esse tipo de ataque.
  2. Monitore e registre: Configure o registro para detectar e responder a ataques potenciais em tempo real.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Adicione admin.cronos.htb ao arquivo /etc/hosts para resolver o domínio.
  2. Execute sqlmap -u http://admin.cronos.htb/ --forms --batch --risk 3 --level 5 para identificar e explorar a vulnerabilidade de injeção de SQL.

Bypass de Autenticação

Explicação da Vulnerabilidade: Abusando da injeção de SQL, a Behind Security conseguiu contornar o mecanismo de autenticação em admin.cronos.htb, fazendo login como 'admin' sem uma senha válida.

Correção da Vulnerabilidade:

  1. Corrigir a vulnerabilidade de injeção de SQL conforme mencionado acima.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Acesse admin.cronos.htb
  2. Use admin' or ''*' como nome de usuário, e insira qualquer coisa como senha. No exemplo da imagem abaixo, foi usado 'admin' como senha, mas fica a seu critério.
Bypass de autenticação

Acesso Inicial - Injeção de Comando

Explicação da Vulnerabilidade: Após fazer login como admin sem uma senha válida (veja o Bypass de Autenticação acima), o atacante remoto pode injetar comandos do sistema operacional através do painel Net Tool v0.1, escapando o comando original com um ponto e vírgula.

Correção da Vulnerabilidade:

  1. Garanta que as vulnerabilidades de injeção de SQL estejam corrigidas e que a autenticação do usuário seja implementada corretamente.
  2. Valide e higienize completamente a entrada do usuário para evitar ataques de injeção de comandos.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Faça login como admin sem uma senha (para fazer isso, forneça admin' or ''*' e qualquer senha em http://admin.cronos.htb/).
  2. Selecione ping no menu suspenso e forneça 127.0.0.1;id ou qualquer comando desejado após o ponto e vírgula.
Sucesso em injetar comandos

Pós-Exploração

Credenciais do Banco de Dados

Explicação da Vulnerabilidade: Após obter uma posição na máquina, a Behind Security conseguiu extrair as credenciais do usuário do banco de dados do arquivo config.php.

Correção da Vulnerabilidade:

  1. Armazene as credenciais de forma segura usando criptografia ou hash.
  2. Rote e atualize regularmente as credenciais do banco de dados.

Gravidade: Alta

Passos para Reproduzir o Ataque:

  1. Execute cat /var/www/admin/config.php
CENSURADO - senha exposta da base de dados

LPE para root

Explicação da Vulnerabilidade: A Behind Security conseguiu abusar de um crontab ativo configurado para ser executado como o usuário root a cada minuto. O crontab executa PHP no arquivo 'artisan' do Laravel, que é de propriedade do usuário de baixo privilégio www-data ao qual obtivemos acesso anteriormente.

Correção da Vulnerabilidade:

  1. Execute o crontab como www-data para evitar essa escalada de privilégios.

Gravidade: Extrema

Passos para Reproduzir o Ataque:

  1. Insira código PHP malicioso em /var/www/laravel/artisan e aguarde até que a tarefa cron o execute para obter a execução de comandos privilegiados. Exemplo de código php malicioso: exec('chmod +s /bin/bash');. Depois que o cron for executado (executa a cada minuto), basta usar /bin/bash -p e terá uma shell privilegiada no sistema.
Crontab vulnerável
Prova de Exploração: user.txt e root.txt CENSURADOS

Conclusão

Esperamos que você tenha achado nosso conteúdo sobre o Cronos CTF útil e convidamos você a explorar mais nosso site para descobrir outros tópicos interessantes que cobrimos. 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 jogo. Estamos comprometidos em oferecer a melhor experiência possível e estamos abertos a feedback e sugestões por meio do nosso formulário de contato. Obrigado por escolher a Behind Security, esperamos vê-lo novamente em breve!

Behind Security main logo, cropped.

BEHIND SECURITY

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

Rolar para cima