Cronos CTF Writeup
Tabela de Conteúdos
ToggleDocumentação apresentada pela Behind Security como parte da série “Jornada ao OSCP”, focando no Cronos CTF da HackTheBox.
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
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
- 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
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.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.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
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.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 comowww-data
em vez disso.
Recomendações
- 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).
- 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. - Corrigir a vulnerabilidade de injeção de SQL no mecanismo de autenticação em
admin.cronos.htb
aplicando as mesmas recomendações mencionadas acima. - 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.
- 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.
- 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 IP | Portas Abertas |
---|---|
10.10.10.13 | TCP: 22, 53, 80 |
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:
- Execute
dig axfr @10.10.10.13 cronos.htb
.
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:
- Higienize a entrada do usuário: Implemente validação de entrada e consultas parametrizadas para evitar esse tipo de ataque.
- Monitore e registre: Configure o registro para detectar e responder a ataques potenciais em tempo real.
Gravidade: Alta
Passos para Reproduzir o Ataque:
- Adicione
admin.cronos.htb
ao arquivo/etc/hosts
para resolver o domínio. - 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:
- Corrigir a vulnerabilidade de injeção de SQL conforme mencionado acima.
Gravidade: Alta
Passos para Reproduzir o Ataque:
- Acesse
admin.cronos.htb
- 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.
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:
- Garanta que as vulnerabilidades de injeção de SQL estejam corrigidas e que a autenticação do usuário seja implementada corretamente.
- Valide e higienize completamente a entrada do usuário para evitar ataques de injeção de comandos.
Gravidade: Alta
Passos para Reproduzir o Ataque:
- Faça login como admin sem uma senha (para fazer isso, forneça
admin' or ''*'
e qualquer senha emhttp://admin.cronos.htb/
). - Selecione
ping
no menu suspenso e forneça127.0.0.1;id
ou qualquer comando desejado após o ponto e vírgula.
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:
- Armazene as credenciais de forma segura usando criptografia ou hash.
- Rote e atualize regularmente as credenciais do banco de dados.
Gravidade: Alta
Passos para Reproduzir o Ataque:
- Execute
cat /var/www/admin/config.php
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:
- Execute o crontab como www-data para evitar essa escalada de privilégios.
Gravidade: Extrema
Passos para Reproduzir o Ataque:
- 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.
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
Behind Security é uma plataforma online dedicada a prover artigos informativos sobre cibersegurança, privacidade, e programação.