1 p Pró-Reitoria de Pós-Graduação e Pesquisa Lato Sensu em Perícia Digital Trabalho de Conclusão de Curso TESTES DE INVASÃO EM AMBIENTE CORPORATIVO Autor: Davi Eduardo R. Domingues Orientador: Prof. Msc. Marcelo Beltrão Caiado Brasília - DF 2012 2 DAVI EDUARDO RODRIGUES DOMINGUES TESTES DE INVASÃO EM AMBIETE CORPORATIVO Artigo apresentado ao curso de Pós-Graduação em Perícia Digital da Universidade Católica de Brasília, como requisito parcial para obtenção do Título de Especialização em Perícia Digital. Orientador: Msc. Marcelo Beltrão Caiado Brasília 2012 3 Artigo de autoria de Davi Eduardo Rodrigues Domingues, intitulado “TESTES DE INVASÃO EM AMBIENTE CORPORATIVO”, apresentado como requisito parcial para obtenção do grau de Especialista em Perícia Digital da Universidade Católica de Brasília, em DATA DE APROVACAO, defendido e aprovado pela banca examinadora abaixo assinada: _______________________________________________________ Prof. Msc. (Marcelo Beltrão Caiado) Orientador Pós-Graduação em Perícia Digital - UCB _______________________________________________________ Prof. Dr. (Laerte Peotta de Melo) Pós-Graduação em Perícia Digital - UCB Ano 2012 4 Dedico este trabalho primeiramente a Deus que me deu a vida e paciência para chegar a este nível de estudo que me encontro. Em especial a minha mãe que acreditou em mim, aos bons valores que me ensinou e pelo apoio a toda minha vida acadêmica e me compreendeu pelos momentos de ausência ao seu lado. Davi Eduardo R. Domingues 5 AGRADECIMENTO Agradeço ao orientador Prof. MSc Marcelo Caiado pelo acompanhamento, sugestões e discussões ao longo deste projeto. 6 “Tecnologia é uma dimensão fundamental da mudança social. As sociedades evoluem e transformam-se através de uma complexa interação de fatores culturais, econômicos, políticos e tecnológicos. Por isso, a tecnologia precisa ser entendida dentro dessa matriz multidimensional. No entanto, a tecnologia tem sua própria dinâmica. O tipo de tecnologia desenvolvida e difundida numa sociedade configura decisivamente sua estrutura material”. (CASTELLS em HIMANEN, 2001.137). 1 Testes de Invasão em ambiente corporativo Davi Eduardo Rodrigues Domingues Resumo: Com a chegada da internet as redes de computadores não param de crescer, o que traz novas tecnologias, e consequentemente, novas vulnerabilidades. Qualquer dispositivo que tenha acesso à internet está sujeito a sofrer diversos tipos de ataques, muitas vezes causando prejuízos e danos enormes às vítimas. Alguns desses ataques podem ser devastadores nas organizações. Assuntos relacionados a Testes de Invasão, Testes de Intrusão ou Testes de Penetração (Pentest), são termos que dizem a mesma coisa e são utilizados pelos administradores de rede para buscar e realizar tratamento das vulnerabilidades encontradas na empresa, simulando ataques como se fossem reais nas redes e sistemas de informação. Devido a este contexto, é importante que se façam testes de intrusão para ver a real segurança dos ativos (qualquer bem que tenha valor para a organização) de rede para que não sejam comprometidas a integridade, disponibilidade e confidencialidade das informações. O objetivo deste artigo é mostrar a importância de utilizar testes de invasão em uma infra-estrutura de tecnologia da informação, verificando as falhas de segurança encontradas antes que outros o façam, buscando prevenir assim contra os ataques reais. Ao longo do artigo serão demostradas algumas técnicas e ferramentas para realização Pentest, identificando vulnerabilidades no ambiente corporativo. Palavras-chave: Segurança da Informação. Tecnologia de Informação. Teste de Invasão. Pentest. Investigação. Ataques. 1. INTRODUÇÃO A Internet surgiu em 1969, nos laboratórios de pesquisa dos Estados Unidos ARPAnet (ARPA - Advanced Research Projects Agency), a qual era uma rede interna do Departamento de Defesa Norte-Americano e se tornou pública a partir da década de 1990, e tem crescido bastante nos últimos anos. A cada dia, a sociedade está mais dependente das tecnologias, as pessoas não conseguem mais viver sem água, luz e agora sem internet. O sucesso da Internet mudou consideravelmente as rotinas do mundo todo, trazendo prós e contras desse mundo virtual como também é chamado o espaço cibernético ou cyberspace. Ele é formado por uma rede de computadores interconectada, onde tramitam informações de todo planeta. Porém, nesse espaço onde milhares de pessoas trabalham todos os dias, surgiu também a insegurança, que pode ser descrita como as vulnerabilidades, ameaças e pragas virtuais. Muitas empresas começaram a utilizar a rede mundial de computadores para realizar transações financeiras e comerciais. Com isso, a parte de negócio das organizações ficou mais suscetível às novas ameaças, além de que novas tecnologias vão surgindo a cada minuto, sendo em alguns casos embutidas de vulnerabilidades as quais, se exploradas por pessoas indevidas, podem causar prejuízos à empresa. Até mesmo sites do governo e grandes empresas como a Sony (2011), Aplle de acordo com o jornalista Pereira (2012), o grupo 2 hacker AntiSec divulgou uma série de informações e dados de usuários da Apple têm sofrido uma série de ataques cometidos por hackers. Encontrar falhas de segurança num sistema de informação não é uma tarefa fácil, mas é importante procurar se prevenir de ataques reais. É necessário que seja realizado um planejamento para monitorar toda infra-estrutura de Tecnologia da Informação (T.I.), para observar possíveis ataques através de simulações de ataque. É ideal uma abordagem de forma proativa que identifique as vulnerabilidades existentes, buscando soluções capazes de reduzir o risco da empresa. Devem ser realizados Testes de Invasão (ou Testes de Penetração ou Intrusão se referindo ao mesmo termo), o que não deixa de ser um tipo de auditoria, mas com alguns detalhes que o tornam diferente. A definição básica dele é avaliar a segurança da informação como um todo, redes, ativos, sistemas, mas essa auditoria é feita com simulação de forma controlada de um ataque real. Desta forma, tendo o conhecimento do que poderia ocorrer caso algum hacker o fizesse, garantido assim prevenção dos ativos e também os três aspectos fundamentais para que um sistema seja considerado seguro: integridade, confidencialidade e disponibilidade da informação (DIAS, 2002) e (ABNT NBR ISO/IEC 17799:2005). De acordo com a (ISO/IEC 17799:2005): • Integridade é a propriedade de salvaguarda da exatidão e completeza de ativos, ou seja, assegurar que os dados não possam ser alterados por usuários não autorizados; • Confidencialidade é a propriedade de que a informação não esteja disponível, ou seja, revelada a indivíduos, entidades ou processos não autorizados, sendo assim, é a garantia de que as informações não possam ser acessadas por usuários não autorizados; • Disponibilidade é a propriedade de estar acessível e utilizável, sob demanda, por uma entidade autorizada, ou seja, garante que os recursos estejam disponíveis aos usuários autorizados. 1.1. Justificativa As empresas estão sendo vítimas de muitos ataques, vindos dos mais variados locais, ocasionando danos incalculáveis. É interessante que seja executado um Pentest em um sistema de informação do ambiente corporativo da organização, antes que o seu ativo, sistema, site, etc. entre em produção. Caso já esteja em produção, a atenção deve ser redobrada, podendo também ser realizado o Pentest, proporcionando mais segurança na rede corporativa. Deve-se ter em mente que muitas vezes o próprio usuário da rede interna pode ser o atacante, no qual ele é o elemento chamado de “fogo amigo”, como alguns administradores dizem. Muitas vezes pensamos somente em intrusões vindas da rede externa, não se atentando à rede interna da corporação, porém, muitas vezes o inimigo se encontra dentro de casa. A proposta desse artigo é realizar um estudo sobre Teste de Invasão em ambiente corporativo, servindo de material importante para executá-lo no ambiente de produção, estando em acordo com o nível de qualidade que a Universidade Católica de Brasília requer, utilizando ferramentas de ataques, além de seguir boas práticas e normas em vigor, proporcionando um aumento da segurança das informações contidas na rede corporativa. 3 1.2. Motivos que levam a realizar um Teste de Invasão As empresas têm sofrido muito com ataques virtuais, onde o negócio das organizações tem sido afetado, devido a isso, muitas vezes justifica-se a contratação externa de uma empresa de auditoria para execução de um Pentest, isso dependendo do escopo e do tamanho da empresa, evitando assim perdas financeiras. Existe várias coisas que deve ser levado em conta, como avaliar o tipo/quantidade de informação que vai ter que passar para o auditor, sendo este uma empresa terceirizada. Mas o foco principal sempre é garantir a segurança da informação, verificar se realmente seu ambiente está seguro, e isso é atingido também com Teste de Invasão. Alguns motivos que levam a executar um teste de intrusão: a) Mapear e verificar os riscos presentes na organização. Devem-se identificar as possíveis vulnerabilidades, entendendo os riscos presentes na organização e tomando medidas necessárias para gerenciar as ameaças. Por exemplo, de acordo com as melhores práticas, é ideal se ter um firewall de borda, Proxy, antivírus nos computadores clientes, etc. O Teste de Invasão não irá checar se tem ou não o firewall de borda, ele irá na verdade testar a segurança deste firewall mediante a um ataque em cima dessa barreira de segurança, avaliando assim a segurança como um todo; b) Outra questão está relacionada à conformidade. Existem Normas ISO da ABNT que recomendam um Teste de Invasão. São elas: ISO 27000, (ISO 27001 e ISO 27002 são de pré-requisitos e boas práticas de segurança, essas duas falam sobre a execução de teste de invasão) e ISO 27005:2008 (Essa norma fala sobre gestão de riscos). Além disso, existem questões regulamentares, como por exemplo, se a organização trabalha com cartão de crédito, é exigido que esteja em conformidade com a norma PCI DSS, e que execute Teste de Invasão regularmente, dentre outras normas; c) Outro motivo é ficar atento aos ativos, sistemas e serviços que entrarão em produção, o ideal é realizar um o Pentest proativamente, ou seja, realizar testes profundos para ver a segurança deste meio, por exemplo, colocar um servidor Web com endereço real, rodando uma aplicação com senha fraca de root e do banco de dados, ssh na porta default, etc., isso é uma falha de segurança imensa, no qual poderá causar danos incalculáveis, caso algum invasor consiga varrer as portas abertas desse servidor e atacá-lo; d) Garantir a continuidade do negócio. 1.3. Propósito Este artigo tem como propósito pesquisar soluções adequadas para avaliar e testar a segurança do ambiente corporativo em uma instituição. Para isso serão estudados os tipos de testes de invasão, tipos de ataques, ferramentas de ataques e soluções gratuitas a serem executadas num ambiente de laboratório, que possuem uma abordagem de códigos abertos, facilitando a compreensão do funcionamento e um aprendizado teórico e prático. Além disso, tem-se também o intuito de explorar o estudo de outras soluções proprietárias ou não. 1.3.1. Objetivo Geral Pesquisar soluções, técnicas e metodologias necessárias para a execução de Pentest em ambiente corporativo, explorando os conceitos, requisitos estruturais necessários, as limitações e escalabilidades possíveis, identificando e testando as vulnerabilidades e ameaças 4 encontradas nos sistemas de informação vindas tanto da rede interna, quanto de acessos externos, estudando técnicas usadas por hackers, para que através disso a organização saiba os pontos fracos para se defender das ameaças, servindo de auxílio para análise e auditoria da rede. 1.3.2. Objetivos específicos O artigo tem como intenção alcançar os seguintes objetivos: • Fazer uma abordagem conceitual sobre tipos de testes, testes de invasão, identificação de vulnerabilidades; • Pesquisar normas relacionadas à execução de teste de invasão; • Apresentar algumas técnicas e ferramentas para realizar Pentest; • Simular um teste de invasão de forma controlada; 1.4. Organização do trabalho Este trabalho será dividido em: • Introdução (Importância do Teste do Teste de Invasão, objetivos); • Referencial Teórico (Características do teste de invasão em redes, Conceitos, Normas, Etapas, Tipos de ataques, Tipos de testes de invasão, Técnicas e Ferramentas utilizadas); • Estudo de caso; • Conclusão; 2. CONCEITOS E DEFINIÇÕES 2.1. Hacker A definição é bastante controversa, mas normalmente hackers são definidos como pessoas que tem conhecimentos de programação e de sistemas operacionais a fundo, dominam o Linux e Unix, são muito inteligentes e capazes de manipular os sistemas computacionais. Procuram estudar muito e sabem identificar falhas de segurança dos sistemas computacionais, podendo criar programas maliciosos através de técnicas de programação para sucesso em uma invasão. De acordo com Castells (2001: p.154). "Os hackers são os protagonistas da Era da Informação, os sujeitos que detêm a fonte cultural da inovação tecnológica". No livro de Kevin Mitnick, ele define que: "Alguns hackers destroem os arquivos ou unidades de disco inteiras das pessoas. Eles são chamados de Crackers ou vândalos. Alguns hackers novatos não se preocupam em aprender a tecnologia, eles apenas querem baixar as ferramentas dos hackers para entrar nos sistemas de computadores, esses são chamados de script kiddies. Os hackers mais experientes, com habilidades em programação, desenvolvem programas para hackers e os postam na Web e nos sistemas de bulletin board. Em seguida, temos os indivíduos que não têm nenhum interesse em tecnologia, mas que usam o computador apenas como uma ferramenta que os ajuda a roubar dinheiro, bens ou serviços." (MITNICK, 2003). No mundo de hoje, na linguagem dos analistas de segurança e dos hackers surge um novo conceito, alguns tipos de hackers que podem ser citados: Hackers black-hat, que são hackers que invadem, danificam, alteram e furtam informações em benefício próprio 5 (THOMPSON, 2004). E outro grupo são os Hackers white-hat, no qual estão os hackers que exploram vulnerabilidades para encontrar soluções de segurança, descobrem falhas em sistemas e as divulgam para que sejam corrigidas. (THOMPSON, 2004). 2.2. Ameaça Segundo Barker e Lee (2004), ameaça é qualquer circunstância ou evento com o potencial intencional ou acidental de explorar uma vulnerabilidade específica em qualquer sistema computacional, resultando na perda de confidencialidade, integridade ou disponibilidade. A cada vez, os usuários das organizações estão desenvolvendo suas atividades e conectados à internet diariamente, muitos tem curiosidades e navegam até mesmo em sites suspeitos onde tem um ambiente repleto de ameaças digitais, são eles: sites de redes sociais, estes sofrem invasões e roubo de informações. Recentemente o Linkedin foi invadido, trazendo em público informações das contas dos usuários, além disso, esse tipo de site está disseminando cavalos de tróia através de links que levam a páginas contaminadas. Outro exemplo onde se podem adquirir ameaças são sites de busca, que são iscas para atrair usuários desatentos, por exemplo, uma notícia de um ator ou atriz que está em alta, fazendo o internauta entrar no site indicado, que na verdade é um ambiente cheio de pragas virtuais, o usuário neste caso nem imagina que está sendo vítima de ataques. Sites de comércio eletrônico também são muito usados nos crimes digitais, atrativos como e-mails falsos usados para atrair o internauta, como oferta de produtos mais baratos, dentre outros. Tipos de ameaças: a. Malwares Significa software malicioso, são pragas virtuais que se instalam nos computadores da vítima, utilizados por hackers causando danos e roubando de informações, obtendo até mesmo controle total da máquina invadida, tornando-a zumbis, podendo ser utilizada para ataques de DDoS (Distributed Denial of Service ). Exemplo de malware: trojan horse (cavalo de tróia), vírus, worms, são feitos para causar danos nos computadores, os dois últimos podem se propagar. As aplicações desenvolvidas com falhas de programação (intencional ou não intencional) também podem ser consideradas malwares. b. Vírus Vírus são programas criados para causar danos ao computador infectado, podendo danificar o sistema operacional, deixando-o muito lento, até mesmo inutilizável. Tem o poder de se propagar e infectar outros ativos da rede corporativa, servidores com compartilhamento de arquivos podem ser afetados e os arquivos deletados automaticamente por essa praga. Talvez o tipo de ameaça mais conhecido pelas pessoas. c. Vulnerabilidade É um conceito utilizado para representar uma falha existente num ativo ou sistema, que, se exploradas, podem causar prejuízo ao sistema de informação. Vulnerabilidade sendo um defeito ou fraqueza no design ou na implementação de um sistema de informações (incluindo procedimentos de segurança e controles de segurança 6 associados ao sistema), pode ser intencionalmente ou acidentalmente explorada, afetando a confidencialidade, integridade ou disponibilidade. (ROSS et al., 2005). d. Trojan Horse Termo proveniente do inglês que significa cavalo de tróia, são programas maliciosos que compromete a segurança computacional, geralmente é enviado por alguém via e-mail para que o destinatário clique e execute (FERREIRA, 2008). Muito parecido com vírus, porém não se auto replica. e. Worms Como o vírus, o worm é um software que se propaga de forma automática, se auto replica e envia cópias para os computadores conectados à rede. A diferença básica do vírus, é que o worm não precisa de outro programa para se propagar e multiplicar, enquanto o vírus precisa de outro programa já infectado para se propagar. O worm explora vulnerabilidades dos sistemas e programas instalados. As formas de envio dessa praga são: envio de mensagens de e-mails (correio eletrônico), por mensagens via Windows Live (antigo MSN), compartilhamento de arquivos na rede, etc. Além disso, não é necessário que seja executado, pela sua característica de se auto propagar infectando a vítima, por exemplo, ao inserir um pendrive que esteja infectado em um computador, irá executar automaticamente podendo afetar assim até mesmo o processamento de CPU da máquina, e até mesmo tornando-a zumbis para realizar ataques. (CERT.br, 2012). f. Spywares São programas que funcionam como um espião, o qual monitora as atividades do computador infectado e envia informações ao seu criador sem o consentimento do usuário. Está muito relacionado a propagandas (conhecidas como adware), e muitas vezes vêm embutidas em outros programas freeware. Um exemplo de spyware são os keyloggers, programas capazes de capturar as teclas digitadas do computador infectado e enviar automaticamente ao invasor. 2.3. Normas e metodologias Um ponto importante é a questão da conformidade, testes de invasão devem estar de acordo com normas nacionais e internacionais. Segundo (Fontes, 2008), a série de normas ISO/IEC 27000 é composta de 11 normas, voltadas à segurança da informação publicada pela ISO (International Organization for Standardization) e IEC (International Electrotechnical Commission). A norma ISO/IEC 27000 avalia riscos e executa controles de segurança, no qual é um guia com conjunto de padrões para as empresas que desejam segui-las. É recomendado que, para realizar um teste de invasão devem-se seguir padrões e metodologias, destacando a família ISO 27000, em especial a norma 27001 e o OSSTMM (Open Source Security Testing Methodology Manual). As normas mais conhecidas de segurança exigem a execução de um teste de invasão e recomendam a utilização dessas, sendo uma das mais conhecidas, a norma BS 7799, que revela boas práticas de gestão de segurança em TI. Em seguida, surgiu a ISO/IEC 17799 que foi reorganizada, contendo informações da BS 7799 dentro da ISO 17799, tempos depois surgiu a ISO/IEC 27002 em substituição a edição anterior (ANBT NBR ISO/IEC 17799:2001). 7 Já a norma PCI DSS (Payment Card Industry Data Security Standard) é uma norma de segurança de dados que envolve pagamento digital, no qual empresas que trabalham com pagamentos, cartão de crédito em compras feitas na internet, é exigido que estas executam o teste de invasão. Na ISO 27005:2008 (gestão de riscos), por exemplo, para organizações que trabalham com cartão de crédito, recomenda-se que estejam em conformidade com esta norma PCI DSS, para que se execute Teste de Invasão anual e permanente. Também é ideal que esteja em conformidade com a Norma ISO 27001, pois esta define o sistema de gestão de segurança da informação, voltada para mecanismos de controle para minimizar os riscos. Além do mais, a norma ISO 27002 fala de conceitos de segurança da informação e gestão da segurança da informação, que envolve também controles de segurança que já possui na ISO 27001. E por fim, o OSSTMM, é um manual de uma metodologia aberta usada para realizar testes de segurança completo através de padrões. Está ligado diretamente ao órgão ISECOM (Institute for Security and Open Methodologies). O OSSTMM revela detalhadamente os principais itens técnicos que precisam ser testados, seguindo as etapas de antes, durante e após o teste de invasão, inicialmente ele avalia as necessidades do ambiente e depois executa o teste de forma concisa para obter os melhores resultados. O manual é sempre atualizado e adicionado melhorias de acordo com as melhores práticas internacionais, sua versão atual é a 3. (OSSTMM 3, 2010). 2.4. Ataques De um modo geral, ataques são atos intencionais que burlam a segurança de um meio. Ataque de um hacker são atos intencionais de tentar manipular um sistema de informação de uma organização, tendo ou não sucesso, ou seja, é uma ação cujo objetivo é obter acesso não autorizado a alguns ou todos os recursos computacionais, interferindo ou paralisando o funcionamento de um servidor ou serviço de rede. Por exemplo: o uso de softwares scanner para varreduras de portas de rede para descoberta portas abertas ou vulneráveis. De posse dessas informações é possível invadir os sistemas que a vítima utiliza, tendo acesso total ou parcial das informações. Segundo Wadlow (2000) um ataque pode ser ativo: tendo por resultado a alteração dos dados, passivo: tendo por resultado a liberação dos dados, ou destrutivo: visando à negação do acesso aos dados ou serviços. 2.5. Teste de Invasão Teste de invasão pode ser chamado também de teste de penetração, teste de intrusão ou apenas Pentest, faz uma busca e avaliação da segurança da informação da organização como um todo, procurando vulnerabilidades através de simulações de ataques controlados, podendo ser utilizado também para auditoria. Testes de invasão são testes realizados por especialistas para tentar quebrar a segurança da informação de uma determinada organização. (WACK, 2003). O objetivo é identificar as falhas de segurança, utilizando técnicas e ferramentas de ataques. Levando em consideração que para invadir um sistema, é necessário fazer um levantamento de informações úteis daquele ambiente a ser testado, através de técnicas de obtenção de informações, que é a primeira etapa do teste de invasão, além de um planejamento, preparação e em seguida a execução. 8 Teste de invasão é uma técnica que pode ser útil para maioria das organizações que prezem a segurança. Mas para isso, é necessário abordar técnicas avançadas utilizadas por hackers e especialistas para obter acesso a um sistema de forma transparente, minimizando os riscos. Há possibilidade dos sistemas serem danificados com o teste de invasão, por isso devem ser realizados por pessoas experientes e capazes, mesmo assim nunca é 100% seguro que a operação tenha sucesso totalmente. (WACK, 2003). Teste caixa preta e caixa branca O teste de invasão pode ser classificado como: teste do tipo caixa preta e caixa branca. No teste caixa preta o testador não conhece o ambiente corporativo a ser testado e avaliado, o qual terá que descobrir por conta própria. Depende do que o cliente quer se prevenir, por exemplo, se o cliente vai ou não passar informações para o analista que está auditando, o tipo de ameaça que estará se prevenindo, se for ataques da internet o ideal é executar um caixa preta, pois a simulação é de um atacante da internet, o analista vai partir do mesmo nível de conhecimento que um atacante real faria sobre a infra-estrutura a ser invadida. No teste do tipo caixa branca, o cliente passa ao testador todas as informações claras da infra-estrutura a ser testada, como endereçamento de IP (Internet Protocol) da rede, organograma, mapa da rede etc. Por exemplo, é ideal para se prevenir de ex-funcionários que já tenham informações da rede interna, simulando o que poderia ocorrer caso alguém que já foi colaborador da empresa queira tentar burlar a segurança da organização, ou seja, a simulação com quase todas as informações da rede para proteção de usuários internos. Teste interno e externo O teste interno parte do princípio que o ataque seja feito no ambiente interno da corporação, estando dentro do perímetro de proteção. Hoje em dia se percebe que somente a proteção por perímetro não é suficiente, ou seja, além disso, tem que haver a proteção de borda e de host, pois vários ataques reais são originados da rede interna, sendo assim, é importante simular e levar as falhas de segurança da rede interna, servidores e ativos internos. No teste externo, a simulação é realizada por ataques externos do ambiente da empresa, visando conexão com a internet, ou seja, para ver se a organização está preparada para invasões da internet, tais como tentativas de acesso aos roteadores, firewalls de borda, servidores Web, DNS Externos, Terminal Service publicado externamente. Ambos os testes devem ser executados com técnicas de invasão, uma delas seria a engenharia social que visa buscar obtenção de informações. Etapas do Teste de Invasão Para testar a maioria das ferramentas que serão apresentadas foi utilizado a distribuição Linux Backtrack 5 R3, sendo um sistema que contém uma gama de ferramentas para Testes de Invasão e segurança da informação: 2.5.1. Obtenção de informações 2.5.1.1 Principais técnicas para obtenção de informações 9 a) Trashing ou Dumpster diving Termo do inglês que significa lixeira ou lixo, no qual está relacionado ao lixo de informações que podem ser importantes para um hacker ou intruso que queira saber informações da empresa. É um termo que significa buscar informações preciosas da empresa dentro do lixo, está ligada diretamente com engenharia social, a falha está na cultura das pessoas para lidar com as informações, procurar informações no lixo. O que tem que ser feito é a classificação das informações, no qual se geram rótulos e para cada rótulo é gerado um controle, por exemplo, caso uma informação esteja classificada como confidencial, o funcionário da organização já sabe lidar com ela e deverá saber o que fazer no caso de descarte, há três tipos de controles que podem ser implementados: compartilhamento, armazenamento e o descarte, o trashing é a negligência em cima do descarte. Segundo Mitnick (2003), trashing é a técnica de vasculhar lixo interno de uma empresa para encontrar informações descartadas que tivessem algum valor para um hacker realizar um ataque de engenharia social, como por exemplo, informações de cargo dos funcionários, telefones dos setores, tipo de atividade desenvolvida, informações dos servidores, como endereço IP, dentre outras. b) Engenharia Social É a arte de explorar o fator humano para obter informações precisas dos próprios colaboradores para poder realizar ataques. Segundo a cartilha de segurança CERT.Br, “Engenharia social é um método de ataque onde alguém faz uso da persuasão, muitas vezes abusando da ingenuidade ou confiança do usuário, para obter informações que podem ser utilizadas para ter acesso, não autorizado, a computadores ou informações”. Os colaboradores tem que estar cientes que as informações das empresas têm um valor muito importante, se usadas de má forma podem trazer grandes prejuízos, podendo em algumas vezes até levar à falência, impactando diretamente em sua vida tendo seus empregos ameaçados. “A engenharia social usa a influência e a persuasão para enganar as pessoas e convencê-las de que o engenheiro social é alguém que na verdade ele não e, ou pela manipulação. Como resultado, o engenheiro social pode aproveitar-se das pessoas para obter as informações com ou sem o uso da tecnologia” (MITNICK, 2003). c) WHOIS O Whois é usado para fazer consultas de informações legítimas de um determinado domínio conseguindo informações relevantes da empresa, como: nome de quem registrou o domínio, data do registro, contato técnico, contato comercial, informações do site, por exemplo: Se colocar o endereço IP do site, com isso é possível descobrir se é um range de endereçamento IP todo ou não. d) Entrada DNS (Domain Name System) Está relacionado com informações realizadas através de consulta a servidores DNS (Sistema de nome de domínio). Através do WHOIS consegue-se descobrir quem é o servidor de nome autoritativo dele, como consultas específicas, por exemplo: quem são os servidores de e-mails MX, além disso, tem uma vulnerabilidade nos servidores DNS que é a transferência de zona, isso é uma feature (característica) do servidor para poder clonar os 10 servidores DNS, ex.: Se existe um servidor já criado como primário, e deseja-se criar outro igual, ou seja, também pode responder igual ao primeiro através da transferência de zona de um para o outro. Alguns servidores de DNS como o bind, antigamente vinham já com essa funcionalidade habilitada, o que era um problema, pois através de um ataque de transferência de zona pode-se ter acesso a resoluções de zona que estavam configuradas para resoluções de nomes públicos, neste caso o atacante teria acesso como, intranet, nome dos servidores internos, etc. e no caso do servidor estar vulnerável a transferência de zona, servidores da Microsoft que usam o Active Directory além das resoluções de nome criadas, ele também cria uma entrada DNS para cada cliente DHCP, podendo mapear até Workstation. e) Google Hacking É uma técnica usada para buscar na internet informações das empresas, como por exemplo, nas redes sociais podemos verificar diversas informações dos usuários. Uma informação que possa levar a outra é e-mail que está disponível muitas vezes para o público, no caso de um e-mail corporativo, podem-se coletar os e-mails válidos e verificar também os contatos que estão conectados a este usuário, com isso é possível realizar ataques de força bruta, geralmente os e-mails corporativos são iguais aos logins de rede dos funcionários. Muitas pessoas não sabem o poder que o Google pode nos oferecer dependendo do tipo de busca a ser feita, e que se utilizado por usuários maliciosos pode causar danos devastadores. O Google hacking é a arte de hackear através de pesquisas realizadas no campo de busca do Google no qual usa seus motores de busca com operadores aritméticos (por exemplo: +,-,) através de uma pesquisa podendo obter informações sobre vulnerabilidades de um determinado site caso esteja configurado incorretamente, rastreamento de servidores, dentre outras informações. Por exemplo, se entrar com seguinte conteúdo na busca: "microsoft outlook Web access" logon . Neste caso será visualizado uma série de portais de Webmails corporativos, no qual seu criador pensa que é confidencial, na realidade todos podem ter ver. (OLIVEIRA, 2005). f) IP Spoofing É a falsificação de endereços IP's que faz com que uma máquina A utilize o IP da máquina B, mascarando seu endereço IP verdadeiro. O termo spoofing ocorre tanto no protocolo ARP (ARP Spoofing), DNS (DNS Spoofing) quanto no IP, portanto o IP Spoofing é o ataque mais conhecido. (RAMOS, 2005). O ataque de IP Spoofing pode envolver várias etapas: No primeiro momento será a escolha das máquinas que serão alvos, por exemplo, VM_01 e VM_02. Em segundo lugar, será feita uma espécie de relação de confiança entra as partes, em seguida entra o papel do atacante com a VM_ATACK que tentará interceptar o canal e fazer a conexão com a VM_02 fazendo com que a VM_02 pense que está se conectando com a VM_01 sendo que na realidade é a máquina do farsante VM_ATACK. A máquina do farsante abre uma conexão TCP na máquina destino VM_02, no qual responde com uma mensagem de reconhecimento e estabelece a conexão com número sequência b1. Em seguida, a VM_ATACK se torna VM_01 e envia para VM_02 uma flag TCP SYN se passando pela origem da VM_01, na sequência VM_02 responde o SYN com número de sequência b2 + ACK enviando para o verdadeiro host VM_01, pois a VM_02 tem que pensar que está se trocando informações com VM_01. A máquina do atacante VM_ATACK não consegue ver esta mensagem, mesmo assim pode mandar um ACK para VM_02 dizendo que recebeu a mensagem com números de 11 sequencia b1. Caso ele consiga fazer isso, VM_02 pensará que tem a conexão verídica com VM_01, sendo que na verdade esta conexão foi feita com a máquina do atacante VM_ATACK, no qual pode estar executando comandos diversos diretamente em VM_02. Mesmo assim o ataque pode falhar, o intruso terá que impedir que as mensagens da VM_02 possam chegar até a VM_01, pois se esta mensagem alcançar VM_01, esta negaria ter a conexão por não ter solicitado nenhuma conexão, logo o ataque spoofing falharia, porque a máquina VM_01 enviaria de cara uma flag TCP Reset para encerrar a conexão. Uma forma de obter sucesso nesse ataque é enviando uma grande quantidade de pacotes para a máquina VM_01 para que esgote seu processamento impedindo que ela responda as mensagens da máquina VM_02. Figura 01: Representa o IP Spoofing 2.5.1.2 Ferramentas para obtenção de informações: • SET (Social-Engineering Toolkit): Ferramenta desenvolvida por David Kennedy, usada para fazer uma série de ataques de engenharia social, dentre eles pode-se fazer um roubo de dados através de páginas fake "falsificação de páginas". • WHOIS: Ferramenta usada para obter informações de domínios. Exemplo de uso: #whois www.site.com.br • DIG (Domain Information Groper): Ferramenta usada para consulta de servidores DNS, muito usado para verificar problemas de DNS. Ex: #dig site.com.br 12 • Google Hacking: O próprio google para fazer googlehacking utilizando operadores para buscar informações específicas na rede. Ex: Colocando na busca do google: (“a arte de invadir” +livro Mitnick) irá aparecer informações somente do livro de Mitnick. 2.5.2. Varreduras 2.5.2.1 Principais técnicas de varreduras a) Mapeamento, Identificação hosts vivos, portas e serviços Ao concluir a etapa de obtenção das informações, começa o processo de varreduras e mapeamento do ambiente corporativo. Contando com técnicas de port scanner e varreduras buscando identificar os hosts ativos, as portas abertas e os serviços que rodam em determinados servidores da rede corporativa, além do mais, dependendo da ferramenta a ser utilizada é possível identificar até mesmo o sistema operacional que está rodando por trás do serviço scaneado. Por exemplo, a porta 445 aberta, provavelmente é uma porta de compartilhamento de arquivos da Microsoft de um host Windows. b) Wardriving Técnica utilizada especificamente para redes sem fio. O termo que vem do inglês que significa busca de redes sem fio através de um carro com uma antena e um notebook com placa de rede wireless, rodando a cidade para captar as redes wireless, visando identificar o maior número de redes possível e catalogar a quantidade de redes encontradas, sejam elas abertas ou fechadas, dentro das redes fechadas, verificar quantas usam protocolos seguros e inseguros. Há um projeto chamado War Driving Day, que é promovido pelo SERPRO-RJ e empresas de segurança que fez este tipo de varredura na cidade do Rio de Janeiro no ano 2011. Visa educar as pessoas sobre a importância da segurança nessas redes, o objetivo do projeto é conscientizar os usuários a importância da segurança da informação que envolve essas redes sem fio. (WARDRIVINGDAY, 2011). c) Identificação de vulnerabilidades Após fazer toda varredura na rede, inicia-se o processo de identificação das vulnerabilidades dos hosts encontrados. Através dessas vulnerabilidades pode ser realizada uma invasão, no caso de serem exploradas. Na internet há várias listas de vulnerabilidades já conhecidas, essas podem ser encontradas em sites de fabricantes de softwares e sistemas operacionais, sites de busca da internet, entre outros locais. Este site: “http://www.amanhardikar.com/mindmaps/PracticewithURLs.html” apresenta uma lista de endereços com vulnerabilidades em aplicações Web, sistemas operacionais vulneráveis, etc. (AMANHARDIKAR, 2012). De acordo com Nakamura (2007), os softwares de varreduras de vulnerabilidades fazem vários tipos de testes, buscando encontrar brechas e furos de segurança nos sistemas e serviços da rede corporativa. Uma vez encontradas as vulnerabilidades após o processo de varreduras, é feito um estudo de cada uma delas, identificando as falhas e como explorar tais falhas para saber qual a ferramenta de ataque que se encaixa melhor para realizar a invasão, disparando ataques para obter acesso não autorizado no alvo. 13 2.5.2.2 • Ferramentas relativas a varreduras Nmap (Network Mapper) É uma ferramenta livre utilizada para fazer uma varredura na rede em busca de portas abertas, hosts e serviços ativos, com ela é possível scanear informações sensíveis da vítima como, o sistema operacional, ver se a porta está aberta ou fechada, etc. É possível verificar com a ferramenta o host alvo e em seguida invadi-lo através da porta aberta. Ex: #nmap –sV 192.168.0.31. Com este comando é possível saber algumas informações, uma delas o SO (sistema operacional) que é neste caso, o Windows e com porta 445 aberta, agora é possível tentar uma invasão para tentar compartilhar os arquivos do SO com uso de outras ferramentas. • Aircrack-ng e Aerodump É uma suíte de ferramentas relacionadas à wardriving utilizadas para captura de redes sem fio 802.11, onde é possível mapear, atacar e quebrar a chave dessas redes. Sendo um dos pacotes do aircrack (usado para crackear as chaves), o aerodump-ng é usado para coleta dos dados, ele faz um dump das informações dos Access Points e estações detectadas e grava em um arquivo. Para posteriormente injetar os frames com o aireplay-ng e em seguida fazer o ataque para quebra da senha com o aircrack-ng. • Nessus É um software usado para varreduras de vulnerabilidades documentadas, possui a versão gratuita que é limitada, faz varreduras somente da rede interna e não pode ser usada comercialmente, já a versão paga trabalha com endereços IP's ilimitados e é necessário adquirir licença, além disso obtém atualizações dos bancos de dados frequentemente. • OpenVas (Open Vulnerability Assessment System) É um software livre baseado no Nessus, com a função de scanner de vulnerabilidades em sistemas computacionais. Possui um conjunto de scripts em busca de vulnerabilidades. Com a coleta das vulnerabilidades encontradas ele gera um relatório com informações de problemas/falhas que podem ser corrigidos no sistema scaneado. (COSTA, Ricardo F.) • Nikto Também é um software de código aberto para scanner de vulnerabilidades, mas é voltado para testes de servidores Web. Além disso, com ele é possível observar as configurações dos servidores Web, como os arquivos de index e opções do servidor HTTP. Este programa já vêm instalado na distribuição BackTrack 5, exemplo de uso simples, entre na pasta: #cd /Pentest/Web/nikto #./nikto.pl –c all -host www.seusite.com.br -o arquivosalvo.txt. Com isso ele gera um arquivo para poder avaliar as opções de uso do programa Nikto com as vulnerabilidades encontradas para posteriormente solucionar essas falhas. 14 2.5.3. Invasão 2.5.3.1 Principais técnicas de invasão a) Sniffing É uma técnica de capturar e analisar informações dos pacotes que trafegam na rede através de ferramentas de captura, como por exemplo: tcpdump e wireshark. Muitas vezes, dependendo do ponto de rede que for conectado com programa de captura é possível ver a origem e destino dos pacotes, o tipo de protocolo trafegado, além do mais, informações como senha de usuários, número de cartões de créditos, dentre outras informações. As ferramentas de sniffing foram criadas para ajudar os administradores de rede a identificar os problemas ocorridos na rede, mas tem sido muito utilizadas por invasores para capturar o tráfego da rede em busca de informações que acham importantes para posteriores ataques. A forma ideal para um administrador utilizar as ferramentas de captura é conectar um notebook, por exemplo, em um switch da rede que queira capturar o tráfego, em seguida fazer o espelhamento de uma das portas do switch para que esta que for conectada fique em modo de escuta, na sequência deve-se colocar a placa de rede do notebook em modo promíscuo para capturar todos os pacotes que passam naquele segmento. Os protocolos mais vulneráveis a uma captura de pacote sniffing são os que transportam dados sem nenhum tipo de codificação ou segurança, como: FTP (File Transfer Protocol), Telnet, HTTP (Hypertext Transfer Protocol), etc. (NUNES, 2004). b) Exploits Termo que vem do inglês que significa explorar. Exploit é qualquer coisa que explore uma vulnerabilidade. São pequenos programas desenvolvidos para explorar falhas em sistemas vulneráveis, podem ser usados para realizar ataques remotos ou locais. (ALMEIDA, 2008). Seu uso é ideal quando uma vulnerabilidade for descoberta através de ferramentas de busca de vulnerabilidades como, por exemplo, o Nessus, em seguida procurar o exploit que melhor se encaixa para aquela vulnerabilidade, com isso dispara-se o ataque no alvo. Através de ferramentas exploits é possível obter acesso com privilégios administradores em sistemas operacionais, dentre outros ataques que podem ser realizados. Podem ser usados para ataques num servidor local ou remotamente, por isso deve-se escolher o melhor exploit para cada tipo de aplicativo e cada tipo de sistema operacional que for encontrado a vulnerabilidade. Neste artigo será abordado o uso do Framework Metasploit, que é uma ferramenta que possui uma variedade de exploits. c) Negação de serviço Negação de serviço são ataques conhecidos como DoS (Denial of Service) e DDoS (Distributed denial of service) usados para deixar um servidor ou serviço indisponível através do excesso de conexões realizadas simultaneamente como se fossem verídicas, fazendo com que sobrecarreguem os recursos computacionais e a infra-estrutura de rede do alvo. De acordo Mirkovic (2004) o ataque DoS tem como meta interromper algum serviço legítimo da rede, como servidores que possuem páginas na internet, internet banking line. A negação de serviço é feita pelo envio de mensagens para o alvo escolhido, interferindo em seu funcionamento, deixando-o totalmente indisponível ou tão lento de forma que os usuários legítimos não conseguem acesso. 15 Uma das formas de negação de serviço é a exploração de vulnerabilidades de uma conexão com a internet do host ou aplicativo de destino interferindo diretamente no serviço Web oferecido, sendo assim o hacker envia mensagens específicas para verificar as vulnerabilidades. Com isso, se aproveita dessas e as explora, ao invés de consumir os recursos do servidor, ele deixa o servidor inacessível. Outra forma de negar serviço é enviar muitas requisições para a máquina destino, fazendo com que esgote seus recursos computacionais, até mesmo consumo da banda de internet do alvo. O DoS já era poderoso, com o tempo surgiu uma nova ameaça de negação de serviço chamado de DDoS (Distributed Denial of Service), ataque distribuído de negação de serviço, foi baseado no DoS, bem mais robusto. Portanto, DDoS é a junção de negação de serviço e ataque distribuído. (RNP, 2000) O DDoS é um ataque de DoS robusto, que pode utilizar vários outros computadores espalhados em várias partes do mundo para atacar uma vítima num mesmo momento, este tipo de ataque é muito difícil de ser combatido, pois o ataque vêm de muitos lugares com faixa endereçamento IP's diferentes. O ataque pode ser realizado da seguinte forma: para que o atacante consiga que várias máquinas efetuem o ataque no sistema alvo, é realizada infecção de vários computadores avulsos através de programas instalados nas máquinas clientes, sendo assim o hacker terá o controle das máquinas zumbis para realizar os ataques DDoS no momento desejado. Essa infecção ocorre de diversas maneiras, através de envio de e-mails contendo link de trojans, páginas na internet com mensagem chamativa "clique aqui", etc. Além do mais, possui outras formas, como por exemplo: LOIC (Low Orbit Ion Cannon). Para executar um ataque DDoS, em geral é seguido uma hierarquia, onde o hacker é o comandante do ataque. É ele quem coordena os hosts mestres para realizarem o ataque num determinado horário, enviando informações dos pacotes. Os hosts mestres por sua vez, “são como se fossem os tenentes” do ataque, no qual recebem as ordens e os parâmetros (quantidade, tamanho de pacotes, etc) do hacker atacante, e por fim os hosts mestres comandam milhares de computadores zumbis para executar o ataque no mesmo momento. Os zumbis “são como soldados”, devido a esta hierarquia fica difícil descobrir quem foi o comandante do ataque, pois de alguma forma sua identidade ficou preservada em uma camada superior, neste caso o analista de segurança terá fazer o reverso do ataque, e terá que passar por várias etapas exigindo assim um trabalho e conhecimento redobrado para descobrir o autor do ataque, na maioria das vezes nem é possível descobrir a verdadeira identidade do atacante principal. Deve-se relatar que tanto no DoS quanto DDoS, a finalidade não é ter acesso à base de dados do alvo atacado e sim a sobrecarga do serviço para deixá-lo indisponível. Uma vez que DDoS é realizado e o ataque tenha sucesso, fica difícil um servidor aguentar a carga, mesmo sendo robusto, pois é ataque por muitos zumbis incluindo os usuários legítimos que queiram acessar o serviço naquele mesmo tempo. Além dos computadores domésticos que se tornam zumbis, muitos hackers criam sua própria rede de zumbis para disseminar ataques DDoS, são chamados de redes botnets. 2.5.3.2 • Ferramentas de Invasão Dsniff É um conjunto de ferramentas sniffing voltadas para testes de invasão e auditoria da rede, fica escutando os pacotes trafegados na rede. Dentre elas podem ser citadas: dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, and Webspy (WIKIPEDIA, 2012). Com estas ferramentas é possível verificar o tráfego da rede, conseguindo obter desde pacotes dos e- 16 mails até senha de usuários. Mas também possui outras ferramentas que fazem sniffing como o tcpdump e o wireshark. • Metasploit É um framework para desenvolvimento e execução de exploits contra hosts remotos, é uma ótima ferramenta para teste de invasão. Possui 4 versões, o Metasploit Framework foi o projeto original que é código aberto, e outras 3: Metasploit Community Edition (free), Metasploit Express (uso comercial, sendo paga), Metasploit Pro (uso comercial, sendo paga), cada uma com diferentes funcionalidades. Ferramenta roda em diferentes plataformas, tanto no Windows quanto no Linux. (METASPLOIT, 2012). Para escolher o exploit mais adequado a ser usado no ataque, é preciso descobrir informações importantes do sistema alvo, como por exemplo, a versão do sistema operacional, portas abertas e serviços instalados. Tais informações podem ser adquiridas usando ferramentas port scanning como nmap e scanner de vulnerabilidades como o Nessus. É possível fazer uma série de ataques, desde que a vulnerabilidade seja descoberta e explorada pelo metasploit, um exemplo pode ser citado: possui uma vulnerabilidade no Windows que quando instalado se não for atualizado e instalado os service packs, através do framework é possível invadir e criar usuários dentro do sistema operacional para futuros acessos, até mesmo é possível incluir backdoors dentro do sistema operacional. • Hydra Ferramenta muito utilizada para testes de invasão para quebra de senha (password attack) por força bruta usando palavras chaves através de wordlist (lista de palavras), após ter gerado essa lista de palavras é só entrar com a ferramenta Hydra para poder testar todas as combinações de senhas para descobrir a senha do alvo, caso for encontrada a senha da vítima a ferramenta mostra o resultado na tela. Suporta uma vasta quantidade de protocolos para atacar como: HTTP, SMTP, IMAP, POP3, etc. (THC-HYDRA, 2012). • T50 É uma ferramenta muito robusta utilizada para testes de stress na rede, mas também é usada para realizar ataques de negação de serviço, desenvolvida por um brasileiro chamado Nelson Brito. Tem suporte de até 15 protocolos na versão 5.3 (TCP, UDP, ICMP, IGMPv2, IGMPv3, EGP, DCCP, RSVP, RIPv1, RIPv2, GRE, ESP, AH, EIGRP and OSPF) enviando simultaneamente, atingindo até 1 milhão de pacotes por segundo. Licença General public licence (GPL). (BRITO, 2011). A ferramenta por default vem para testar somente redes privadas (RFC 1918), mas é possível alterar o código fonte removendo as linhas que correspondem à RFC 1918 e recompilar o programa novamente, assim é possível atacar redes públicas. 2.5.4. Mantendo o acesso 2.5.4.1 Principais técnicas para manter acesso É possível manter acesso aos sistemas invadidos, para posteriormente efetuar outros ataques através destes hosts, além disso, ter o controle desses hosts a fim de obterem informações novas sobre contas bancárias, cartões de crédito, etc. é interessante para os atacantes, para isso, os hackers utilizam algumas técnicas e ferramentas como: 17 a) Backdoor Significa porta dos fundos. Instalado no sistema para obter acessos remotos futuros na máquina comprometida, sem que haja necessidade de recorrer novamente aos métodos utilizados na realização da invasão, sem que seja notado na maioria dos casos. Alguns fabricantes de equipamentos de TI instalam backdoors em seus produtos para obterem acessos futuros para administrá-los remotamente, porém isso pode ser considerado falha de segurança. (CERT.br, 2012). b) Cavalos de Tróia Como já mencionado na “secção d” do “ítem 2.2”, cavalo de tróia (trojan-horse) é um programa escondido dentro de outro, que quando instalados executam atividades maliciosas camufladas trazendo transtornos à vítima, além de executar comandos prejudiciais. Podem abrir portas do computador invadido para manter acesso a este meio, roubar senhas, copiar dados do usuário, realizar abertura repentina de programas, alteração do tráfego da placa de rede sem estar sendo usado, dentre outras. Ele se diferencia do vírus por não se replicar automaticamente. Muitas vezes estes códigos maliciosos são instalados pelo próprio usuário sem seu consentimento, por exemplo: páginas da internet que convencem a vítima a clicar em um plugin para ver fotos, vídeos, porém, esses plugins podem estar embutidos de trojans, uma vez executados a máquina está infectada. Os trojans podem também vir embutidos de keyloggers e backdoors. c) Rootkits Rootkit é um conjunto de ferramentas utilizado para realizar invasões em sistemas de forma automatizada com acessos privilegiados, possui técnicas avanças de programação de modo que se esconde dentro do sistema comprometido, sua função é se esconder do usuário e dos softwares de segurança que protegem o sistema operacional, por exemplo, antivírus, roda em diferentes plataformas de sistemas operacionais. 2.5.4.2 • Ferramentas para manter acesso NetCat É uma ferramenta que faz uma série de atividades voltadas para segurança e até mesmo testes invasão na rede, por alguns ficou até conhecido como canivete suíço do TCP/IP, pois é possível fazer desde Port Scanner até abertura de portas TCP/UDP de acordo com o Guia de referência SANS. (SANS-INSTITUTE) De acordo com GIACOBBI, Netcat é uma funcionalidade que pode ser utilizada na rede para ler e escrever dados através de conexões usando o protocolo TCP/IP, está sob licença GNU General Public License (GPL) sendo distribuído gratuitamente podendo funcionar na maioria dos sistemas operacionais. No guia do SANS para Netcat são fornecidas várias dicas e comandos para usar essa ferramenta. 18 • Meterpreter De acordo com o site oficial do Metasploit, o Meterpreter é um payload com multifuncionalidades que podem ser estendidas dinamicamente em um tempo de execução. Isto é possível devido a seu shel básico que permite adicionar novas funcionalidades. (AHORONI, 2007). Conforme Miller (2004) descreve no manual do Meterpreter, é um payload avançado que está incluso no Framework Metasploit. O objetivo é fornecer recursos avançados para testar vulnerabilidades de sistemas operacionais, implantar backdoor através do seu próprio plugin chamado persistence, obter acesso privilegiado, desabilitar antivírus, etc. O Meterpreter pode ser acessado e executado através de payloads diferentes. Inicialmente foi desenvolvido para explorar vulnerabilidades somente do Windows, mas posteriormente foi alterado para funcionar também no linux. (MILLER, 2004). Alguns dos payloads que podem ser citados para explorar vulnerabilidades do Windows são: a. win32 bind meterpreter: Este payload vincula uma porta na máquina de destino e espera por uma conexão. Depois de estabelecida a conexão o servidor do Meterpreter é carregado e a ligação existente é utilizada para o canal de comunicação Meterpreter. (MILLER, 2004); b. win32 reverse meterpreter: Este payload deixa liberada uma porta aberta na máquina para que o atacante tenha acesso novamente. Esta conexão é usada para fazer upload do servidor Meterpreter após os quais ele é usado para o canal de comunicação Meterpreter. (MILLER, 2004). • VNC (Virtual Network Computing) É uma ferramenta utilizada para fazer conexão remota de hosts. Muito utilizado por técnicos de suporte para dar assistência aos usuários remotamente. Rodando por trás da ferramenta ele possui um protocolo que também é chamado VNC que foi desenvolvido para atender a possibilidade da conexão remota com interface gráfica do computador alvo. Para ter o acesso remoto é preciso que as duas partes tenham o programa instalado. Porém ele pode ser usado como uma forma de invasão, alguns hackers podem explorar vulnerabilidades nos computadores que tenham VNC instalado e tentar invadi-los. Na ferramenta metasploit é possível injetar uma carga vncinject utilizando um exploit ms08_067_netapi, caso a máquina esteja vulnerável é possível obter sucesso na invasão. 2.5.5. Cobrindo os rastros Cobrir rastros é uma maneira de omitir a presença de certas atividades que foram executadas no sistema invadido. 2.5.5.1 Principais Técnicas para cobrir rastros a) Tunelamento É uma técnica utilizada para fazer uma conexão de maneira que seja difícil detectar aquela conexão que o atacante está fazendo. São canais feitos pelos hackers para realizar conexões diretas entre o computador do invasor e o da vítima, eles utilizam esta técnica para burlar os sistemas de firewalls. Um dos túneis mais usados pelos atacantes é o HTTP Tunel, pois utiliza a porta 80 do protocolo HTTP e encapsula as comunicações dentro deste protocolo, é tanto que poucos firewalls filtram esta porta, por que também é usada para acesso internet e serviços Web. 19 b) Esteganografia É uma técnica usada para esconder um arquivo dentro do sistema de arquivos de maneira que seja difícil sua descoberta. Usando essa técnica é possível esconder arquivos executáveis dentro de outros arquivos (que podem ser imagens), de modo que o usuário não perceba a presença do arquivo executável podendo ser um vírus ou outras pragas. Segundo Pinheiro (2005) a esteganografia é a arte de ocultar informações dentro de imagens, áudio e vídeo, a informação é escondida nos bits menos significativos dos bytes do arquivo. Só pode ser decifrada por quem conheça o código que cifrou e onde o arquivo se encontra. 2.5.5.2 • Ferramentas para cobrir rastros HTTP Tunel É um software que está sob licença GNU General Public Licence (GPL), é usado para tunelar qualquer tipo de tráfego via HTTP. Muitas pessoas utilizam esta ferramenta para burlar um firewall ou proxy da empresa, onde os acessos a internet são restritos. Geralmente os administradores da rede bloqueiam portas para ter mais segurança, liberado os clientes da rede interna saírem para internet apenas pela porta 80. Por exemplo, sendo assim alguns programas como P2P deixam de funcionar e páginas podem ser bloqueadas com uso de filtro de conteúdos, uma das coisas que o HTTP Tunnel faz é criar uma conexão onde o cliente local sai pela porta 80 passando pelo programa HTTP Tunnel, possibilitado o usuário ter acesso a qualquer tráfego http pela porta 80, assim tendo internet liberada, etc, porém o administrador da rede não pode bloquear esta porta, porque senão ninguém da rede navegará na internet. (WIKIPEDIA, 2012). Essa ferramenta age como um servidor, fazendo como que a comunicação de aplicativos que rodam na internet fica mais segura, protegendo contra invasores, por exemplo, mesmo que os usuário da empresa utilizam o proxy http para trafegar na internet, é possível trafegar os dados através de tunel por um canal de comunicação mais seguro através da ferramenta http tunnel, assim obtendo mais segurança. • Steghide É um software que tem a função de esteganografia de arquivos, com ela é possível esconder arquivos diversos dentro de outro arquivo de imagem e vídeo (HETZL). Sendo assim, é possível esconder um vírus, por exemplo, em um arquivo do tipo “jpeg”. 3. ESTUDO DE CASO Foi montado um cenário contendo duas máquinas, uma com distribuição BackTrack 5 e outra com Windows XP: 20 Inicialmente deve ser feito uma varredura com alguma ferramenta de scanner de vulnerabilidades, por exemplo, o Nessus. Ao descobrir se o alvo está vivo “ativo” e se tem alguma vulnerabilidade, neste caso foi utilizado o Nessus HomeFeed para o windows, que é uma versão gratuita para usuários domésticos, e também foi usado o nmap, após o scanner segue-se para o próximo passo, a execução da ferramenta Metasploit presente na distribuição Backtrack 5 R3. No final do scanner do nmap foi encontrado portas abertas do alvo e a vulnerabilidade da Microsoft. Figura 04: Tela do NMAP Figura 05: Tela do NESSUS Para abrir o Metasploit, uma das formas é clicar no menu inicial, BackTrack, Exploitation Tools, Network Exploitation Tools, Metasploit Framework e por fim msfconsole: 21 Figura 06: Tela inicial do Metasploit Uma vez encontrada a vulnerabilidade, entre com o metasploit para poder invadir o alvo. As duas ferramentas, tanto o nmap quanto o Nessus, encontraram a vulnerabilidade “ms08_067” no alvo. De acordo com o boletim microsoft: Esta é uma vulnerabilidade de execução remota de código. Um invasor que explorou essa vulnerabilidade com êxito pode ter o controle total de um sistema afetado remotamente. Em sistemas baseados no Microsoft Windows 2000, Windows XP e Windows Server 2003, um invasor poderia tirar proveito dessa vulnerabilidade sobre a RPC sem autenticação e executar códigos arbitrários. O Svchost.exe pode travar caso haja falha na tentativa de exploração. Se a falha ocorrer no Svchost.exe, o Serviço do servidor será afetado. O Serviço do servidor fornece compartilhamento de arquivo, impressão e pipe nomeado sobre a rede. (MICROSOFT, 2008) A vulnerabilidade é causada pelo Serviço do servidor, que não controla corretamente as solicitações de RPC especialmente criadas. (MICROSOFT, 2008) O próximo passo fazer uma busca dessa vulnerabilidade no metasploit pelo comando msf > search ms08_067, então deve-se usar este exploit para o alvo desejado. 22 Figura 07: Tela do Metasploit Para usar o exploit, entre no contexto desse módulo do exploit, conforme a tela anterior: “use exploit/windows/smb/ms08_067_netapi” Na sequência, deve-se entrar com o comando “show options” para ver todas as features desse módulo, visto que possui três, são elas: RHOST, RPORT e SMBPIPE. Exploit target, o target neste caso não é o alvo, é a variação do alvo, por exemplo, é um módulo para windows, mas um módulo tem variantes, como windows xp, windows vista, etc. Payload, neste caso é um módulo que na verdade explora uma vulnerabilidade. O Payload é um código arbitrário para executar comandos, o payload por default para o windows é o meterpreter (payload desenvolvido pelo metasploit). Entre com o comando set rhost 10.1.1.10 Em seguida “show options” novamente, veja que o ip foi setado na configuração do target. Agora entre com o comando “exploit” 23 Figura 08: Tela do Metasploit Entre com comando: “?”, veja que terá uma série outros comandos do payload meterpreter que podem ser executados, alguns como: getuid, sysinfo, ipconfig, shell (com este comando o atacante fica totalmente dentro da máquina windows, podendo executar comandos do próprio Windows, conseguindo visualizar os arquivos e pastas do explorer), reboot para dar boot remoto, dentre outros. Figura 09: Tela de alguns comandos do Metasploit 24 4. CONCLUSÃO A segurança da informação tem um papel fundamental para as organizações, impactando direta e indiretamente no negócio da empresa e minimizando os riscos. Devido a isto, realizar um teste de invasão na infra-estrutura de TI é de suma importância que deve incluído nas políticas de segurança da informação interna, lembrando que devem-se seguir todas as etapas do teste de invasão para que os resultados sejam obtidos com sucesso. O artigo apresentou algumas técnicas e ferramentas que devem ser utilizadas em um teste de invasão, lembrando que isto é apenas um meio de descobrir e corrigir falhas nos sistemas de informação da instituição, porém segurança é vista mais amplamente, com diversas outras ferramentas, técnicas e até mesmo pessoas que podem ser abordadas para atingir resultados positivos. É sempre importante observar e também realizar auditorias preventivas na rede, para que o negócio da empresa não seja afetado, evitando assim fraudes internos e externos. Vale salientar que o aprofundamento desta pesquisa se deu graças ao conhecimento de pessoas mais experientes, como o orientador do artigo, com sua vasta experiência na área de tecnologia, sendo uma peça fundamental para o aproveitamento do trabalho, o qual soube me guiar e direcionar para atingir a meta proposta. REFERÊNCIAS THOMPSON, Marco Aurélio. O Livro Proibido do Curso de Hacker - Salvador. ABSI (Associação Brasileira de Segurança na Internet), 2004. BRODSKY, Sérgio. Hackers – Um Levante Na Propriedade Intelectual - São Paulo, 2004. CASTELLS, Manuel. A Sociedade em Rede. São Paulo: Paz e Terra, 1999. HIMANEN, Pekka. A ética dos HACKERS e o espírito da era da informação. Rio de Janeiro: Campos, 2001. MITNICK, Kevin D. e SIMON, William L. A Arte de Invadir - As verdadeiras histórias por trás das ações de hacker, instrusos e criminosos eletrônicos. Tradução: Maria Lúcia G. L. Rosa. São Paulo: Pearson Education do Brasil, São Paulo, 2006. MITNICK, Kevin D.; SIMON, William L. A. A Arte de Enganar - Ataque de Hackers: Controlando o Fator Humano na Segurança da Informação. Tradução: Kátia Aparecida Roque. São Paulo: Pearson Education do Brasil. São Paulo, 2003. FERREIRA, Fernando N. Freitas, ARAUJO, Márcio Tadeu de. Política de segurança da informação - Guia prático para elaboração e implementação. 2 ed. Revisada. Rio de Janeiro: Ed. Ciência Moderna Ltda., 2008. ROSS, R., Katzke, S., Johnson, A., Swanson, M., Stoneburner, G., Ro-gers, G., and Lee, A. (2005). Recommended security controls for federal informationsystems. NIST Special Publication 800-53. 25 PEREIRA, André L. Grupo hacker AntiSec divulga dados de 1 milhão de usuários da Apple, 2012. Disponível em: <http://www.tecmundo.com.br/ataque-hacker/29446-grupo-hackerantisec-divulga-dados-de-1-milhao-de-usuarios-da-apple.htm>. Acesso em 30 jun. 2012. WADLOW, Thomas A. Segurança de redes: projeto e gerenciamento de redes seguras. Tradução: Fábio Freitas da Silva. Rio de Janeiro: Campus, 2000. WACK, John; TRACY, Miles; SOUPPAYA, Murugiah. NIST -SP800-42: Guideline on Network Security Testing. Washington: Natl, Inst. Stand. Technol. Espec., 2003 ABNT - ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISO/IEC 27002 - Tecnologia da Informação - Técnicas de segurança - Código de prática para a gestão de segurança da informação. ABNT, 2005. PCISECURITYSTANDARDS.ORG. Payment Card Industry (PCI) Data Security Standard. Requirements and Security Assessment Procedures Version 2.0, 2010. Disponível em: <https://www.pcisecuritystandards.org/documents/pci_dss_v2.pdf>. Acesso em 30 jun. 2012 NAKAMURA, E.T.; GEUS, P.L. Segurança de redes em ambientes coorporativos. 2.ed. São Paulo: Futura, 2003. DIAS, Cláudia. Segurança e Auditoria da Tecnologia da Informação. AxcelBooks. Rio de Janeiro, 2000. MILLER, Matt. Metasploit’s Meterpreter. 2004. Disponível em: http://www.nologin.org/Downloads/Papers/meterpreter.pdf>. Acesso em 03 out. 2012 < CERT.BR. Cartilha de Segurança para Internet, versão 4.0 / CERT.br – São Paulo: Comitê e Gestor da Internet no Brasil, 2012. Disponível em: <http://cartilha.cert.br>. Acesso em 26 jun. 2012 TDI. Teste de invasão (TDI). Disponível em: <http://www.testedeinvasao.com.br/>. Acesso em 22 jun. 2012 TESTAR.ME. Teste de Invasão "Pen Test". Disponível em: <http://www.testar.me/pages/testar_me_teste_de_invasao_wiki.html>. Acesso em 26 jun. 2012 SOARES, Rafael. 2010. Disponível em: <http://www.seginfo.com.br/auditoria-teste-deinvasaoPentest-planejamento-preparacao-e-execucao>. Acesso em 15 mar. 2012 HERZOG, Pete. ISECOM. OSSTMM 3 - The Open Source Security Testing Methodology Manual. December 14, 2010. Disponível em: <http://www.isecom.org/mirror/OSSTMM.3.pdf>. Acesso em 27 jun. 2012 BRITO, Nelson. Protocol T50 5.3. Web Security Forum. April, 2011. Disponível em: <http://t50.sourceforge.net/resources.html>. Acesso em 12 mar. 2012. NMAP. Network Mapper. Disponível em: <http://nmap.org>. Acesso em 26 set. 2012 26 ALMEIDA, Aléxis Rodrigues. Como funcionam os exploits. 2008. Disponível em: <http://www.invasao.com.br/2008/12/12/como-funcionam-os-exploits/>. Acesso em: 28 set. 2012 MARQUES, Carlos J. An Analysis of the IDS Penetration Tool: Metasploit. Department of Technology Systems. East Carolina University Greenville, NC, U.S.A. Disponíel em: <http://www.infosecwriters.com/text_resources/pdf/jmarquez_Metasploit.pdf>. Acesso em 09 mar. 2012 METASPLOIT. Metasploit. Disponível em: <http://www.metasploit.com>. Acesso em 27 set. 2012 COCCHIARO, Nicola. Homepage of SteGUI, a Steghide GUI. 2008. Disponível em: <http://stegui.sourceforge.net/>. Acesso em acesso 01 out. 2012 HETZL, Stefan. Steghide manual. Disponível em: <http://steghide.sourceforge.net/documentation/manpage.php> Acesso em 14 Mai. 2002 OLIVEIRA, Breno Guimarães de. Google: Ferramenta de ataque e defesa a sistemas. GRIS – Grupo de Resposta a Incidentes de Segurança, Rio de Janeiro, 2005. LAUFER, Rafael P. et al. Negação de Serviço: Ataques e Contramedidas. Rio de Janeiro: UFRJ. Disponível em: <http://www.gta.ufrj.br/ftp/gta/TechReports/LMVB05a.pdf>. Acesso em 26 mar. 2012 MIRKOVIC, Jelena et al. Internet Denial of Service: Attack and Defense Mechanisms. Prentice Hall PTR. United States. December 30, 2004 GIACOBBI, Giovanni. The GNU Netcat <http://netcat.sourceforge.net>. Acesso em 30 set. 2012 project. Disponível em: GIACOBBI, Giovanni. Manual Reference Pages - NETCAT. Disponível em: <http://www.irongeek.com/i.php?page=backtrack-3-man/netcat>. Acesso em 30 set. 2012 SKOUDIS, Ed. Netcat Cheat Sheet. Pocket Reference Guide. SANS Institute. Disponível em: <http://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf>. Acesso em 30 set. 2012 COSTA, Ricardo F. OpenVAS: Framework para detecção de vulnerabilidades. Disponível em: <http://www.linuxdescomplicado.com.br/2011/11/openvas-framework-para-deteccaode.html>. Acesso em 26 set. 2012 FERREIRA, Fernando N. Freitas, ARAUJO, Márcio Tadeu de. Política de segurança da informação - Guia prático para elaboração e implementação. 2.ed. Revisada. - Rio de Janeiro: Ciência Moderna Ltda., 2008. PINHEIRO, José M. Santos. Esteganografia Digital. <http://www.projetoderedes.com.br/artigos/artigo_esteganografia_digital.php>. Acesso em 19 set. 2012 27 TENABLE. Nessus Product. Disponível em: <http://www.tenable.com/products/nessus>. Acesso em 26 set. 2012 WIKIPEDIA. Nessus. Disponível em: <http://pt.wikipedia.org/wiki/Nessus>. Acesso em 26 set. 2012 AIRCRACK-NG . Aircrack-ng .Disponível em: <http://www.aircrack-ng.org>. Acesso 26 set. 2012 SOCIAL-ENGINEER.ORG .Computer Based Social Engineering Tools: Social Engineer Toolkit (SET) .Disponível em: <http://www.socialengineer.org/framework/Computer_Based_Social_Engineering_Tools:_Social_Engineer_Too lkit_(SET)>. Acesso em 26 set. 2012 CIRT.NET. Nikto2 .Disponível em: <http://cirt.net/nikto2>. Acesso em 27 set. 2012 THC.ORG. THC-Hydra, 2012 .Disponível em: <http://www.thc.org/thc-hydra>. Acesso em 29 set. 2012 MDH3LL. Tutorial básico THC-HYDRA db.com/papers/13672>. Acesso em 29 set. 2012 .Disponível em: <http://www.exploit- REALVNC.COM. RealVNC. Disponível em: <http://www.realvnc.com>. Acesso em 28 set. 2012 VIDEIRO, Rafael. Controle computadores <http://vnc.softonic.com.br>. Acesso em 28 set. 2012 à distância. WARDRIVINGDAY.ORG. O projeto War Driving <http://www.wardrivingday.org>. Acesso em 30 set. 2012 Day. Disponível em: Disponível em: WEBER, Sebastian. HTTPTunnel. Disponível em: <http://http-tunnel.sourceforge.net>. Acesso em 30 set. 2012 BRINKHOFF, Lars. httptunnel. Disponível <http://www.nocrew.org/software/httptunnel.html>. Acesso em 30 set. 2012 em: WIKIPEDIA. HTTP tunnel. Disponível em: <http://en.wikipedia.org/wiki/HTTP_tunnel>. Acesso 30 set. 2012