Anatomia de um ataque parte 1 | Blog Andrade Soto
27/12/2012 Pentest No comments
Esta série de artigos vai descrever um ataque realizado pela equipe RedTeam, envolvendo vários servidores, tecnologias e desenvolvimento C para a criação de uma Botnet com a finalidade de contornar regras de firewall.
Certa vez durante um teste de intrusão em um cliente, nos deparamos com uma situação interessante que possibilitou a exploração de mais de um problema de segurança, fato que acarretou no comprometimento de informações confidenciais estratégicas da empresa, como dados financeiros, contratos, projeções e documentos comerciais.
Um ataque de sucesso se caracteriza quando o atacante encontra um vetor de ataque funcional e de fato explora a vulnerabilidade, obtendo o acesso ou efeito desejado, este geralmente afetando a confiabilidade, integridade ou disponibilidade de um ativo.
Como se trata de um tópico extenso, resolvemos dividi-lo em algumas partes que estão dispostas da seguinte maneira:
Parte 1 – Estrutura envolvida, identificação da vulnerabilidade e Metas
Parte 2 – Viabilizando a exploração, exploração da vulnerabilidade e amplificação do impacto
Parte 3 – Elevação de privilégios e salto para outros servidores
Parte 4 – Mapeamento do processo e Considerações finais
Este post corresponde à primeira parte desta série, ou seja, aqui estarão as informações necessárias para se entender o contexto envolvido e o início do processo envolvido no ataque.
Este foi um ataque realizado a partir da rede interna, simulando ataques de funcionários ou de pessoas com o acesso aos ativos tidos como "alvo". Esta situação é muito comum em organizações que fornecem acesso wi-fi para visitantes (diretores, vendedores, outros) sem uma limitação, com limitação insuficiente ou parcial do tipo de acesso permitido.
Uma topologia em estrela é aplicada e existe um firewall que controla o acesso a determinados hosts e serviços, ou seja, nem todos os servidores estão acessíveis, o mesmo se aplica a alguns serviços. Uma rede em especial é protegida, e a rede em que estou não deve ter acesso direto, nela estão localizados os servidores de banco de dados e algumas aplicações.
Encontramos um servidor que tem a função de monitorar vários atributos de ativos da rede, ou seja, um sistema gerente de um gerenciamento remoto. A aplicação em questão chama-se Zabbix e é muito difundida e eficiente para este fim.
Identificar a aplicação e sua versão foi simples, o Zabbix possui um rodapé que apresenta a versão do mesmo, existem outros meios como acessar o arquivo de Changelog ou Readme da aplicação, que muitas vezes estão disponíveis ainda depois que a aplicação entra em produção.
A conclusão é a de que atacar este servidor pode ser de grande valia a um atacante, estrategicamente falando, possivelmente existem regras de firewall e acessos menos restritivos para este servidor além de uma visão mais ampla da rede através da base de ativos monitorados. Desta forma, as metas propostas foram:
Primária – Obter a base de ativos cadastrados e informações sensíveis para servir de base a novos ataques.
Secundária 1 – Obter execução de comandos com acesso administrativo ao servidor.
Secundária 2 – Mapear restrições de firewall e identificar possíveis acessos antes ocultos.
Secundária 3 – Obter acesso a servidores adjacentes.
É importante ressaltar que a meta primária do trabalho como um todo não entra aqui, esta é uma meta traçada para este ataque em específico.
A primeira análise da estrutura da aplicação, arquivos, diretórios, webserver não resultou em nada alarmante, alguns casos revelam informações preciosas e até novos vetores de ataque são identificados, em um pentest é importante pensar nas possibilidades e isso sempre se traduz na qualidade do serviço entregue ao cliente.
Uma atitude trivial, está na procura de vulnerabilidades conhecidas para esta versão, e o resultado obtido foi um Sql Injection identificado sob CVE-2011-4674 (link1 e link2 para maiores detalhes).
Um problema foi encontrado, era necessário obter credenciais válidas nesta aplicação para explorá-la e um ataque secundário seria necessário para tal feito, este que será descrito na segunda parte deste post assim como a evolução do ataque até o comprometimento total da estrutura citada.