Baixe o app para aproveitar ainda mais
Prévia do material em texto
AULA 3 UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 1 of 24 30/11/2020 17:38 Prof. Sandro de Araujo CONVERSA INICIAL Um profissional hacker ético deve planejar as suas atividades antes de começar qualquer trabalho que envolva testes de intrusão. Portanto, será apresentada a importância de se traçarem os objetivos e de se documentar o escopo dos testes. Normalmente, as portas e as senhas são os principais alvos dos testes e nesta aula veremos os conceitos e as utilidades das portas e dos protocolos TCP e UDP, e algumas maneiras de se obter acesso na autenticação de um sistema, bem como investigar vulnerabilidades em plataformas, servidores e sistemas operacionais. Essa aula será dividida em cinco temas: 1. Planejamento para os testes – Parte 1; 2. Planejamento para os testes – Parte 2; 3. Portas; 4. Senhas; 5. Conhecendo o Metasploit. TEMA 1 – PLANEJAMENTO PARA OS TESTES – PARTE 1 1.1 INICIANDO UM PLANEJAMENTO DE TESTES Sendo um profissional hacker ético, planeje as suas atividades antes de começar o trabalho. É importante traçar objetivos e documentar o escopo dos testes, determinando parâmetros e conhecendo bem as ferramentas que serão usadas para cada teste. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 2 of 24 30/11/2020 17:38 Tenha metas Estabelecer metas no seu planejamento é importante para não ficar eternamente testando os sistemas. Abaixo uma lista das principais atividades a serem executadas para a criação de um bom planejamento: 1. Tendo em mente que a meta mais importante é a descoberta das vulnerabilidades nos sistemas testados e corrigi-las ou sugerir correções para a equipe de TI da empresa, essa meta importante é o nosso objetivo geral; 2. Além do objetivo geral, estabeleça também os objetivos específicos: os objetivos específicos são os passos (metas) que, quando concluídos, atinge-se o objetivo geral; 3. Crie um cronograma com datas de início e fim da duração dos testes. Isso é importante para a documentação final; 4. Não se esqueça de detalhar o máximo possível os itens 1, 2 e 3 e assinar junto com o contratante antes de começar os testes. Documente tudo e tenha alguém da empresa envolvido; 5. Faça perguntas para definir melhor as metas. Algumas perguntas que poderão ser feitas: a. O teste de penetração vai atender à missão da empresa? b. Quais informações deverão ser protegidas? Exemplo: propriedade intelectual, informações de clientes, de funcionários, entre outras; c. Quando tempo e dinheiro a empresa vai investir no pentest? 6. Depois de traçar os seus objetivos, documente todos os passos que serão realizados. Outras perguntas poderão ser feitas para ajudar na confecção da documentação, como: a. Quando irá começar o pentest? i. O pentest será no modelo cego (sem informações sobre os sistemas que serão UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 3 of 24 30/11/2020 17:38 testados)? ii. Ou será baseado no modelo de conhecimento (quando se obtém como o contratante algumas informações específicas sobre o sistema)? iii. Vai envolver avaliações de segurança física e ou engenharia social (Algumas empresas não gostam disso)? iv. Vai notificar os interessados sobre o que fará e quando fará? v. Acrescente também outras perguntas que surgirem no decorrer do projeto. 1.2 ESCOLHA DOS SISTEMAS PARA OS TESTES DE VULNERABILIDADES Não é viável testar todos os sistemas ao mesmo tempo. Testes dessa natureza são complexos e podem causar sérios problemas para a empresa. O ideal é fracionar o escopo do planejamento em partes menores, definindo quais sistemas serão testados tendo como parâmetro uma análise de riscos bem detalhada. A seguir, há uma lista de perguntas que podem ajudá-lo na análise dos ricos: Quais são os sistemas mais críticos (importantes)? Quais dos sistemas podem trazer sérios problemas se forem acessados sem autorização? Quais aparentam ser vulneráveis? Quais dos sistemas que não têm documentação, são raramente administrados ou sobre os quais há poucas informações? Com a resposta das perguntas acima é possível escrever um bom planejamento e definir os objetivos de cada teste. Após a definição dos objetivos deve-se listar os sistemas que serão testados. TEMA 2 – PLANEJAMENTO PARA OS TESTES – PARTE 2 Após listar todos os sistemas que passarão pelas baterias de testes, deve-se também considerar os dispositivos a seguir como parte da listagem no pré-teste. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 4 of 24 30/11/2020 17:38 Roteadores, switches e wireless; Sistemas que usam a arquitetura cliente-servidor; Servidores (exemplo: banco de dados, impressão, arquivos, web, entre outros); Firewalls e outros dispositivos de segurança; Estações de trabalho e notebooks; Dispositivos móveis como celulares e tablets; Entre outros. A realização de testes para encontrar vulnerabilidades vai depender do porte da infraestrutura da empresa. Exemplo: se a rede testada for de pequeno porte, é interessante testar tudo. As tomadas de decisões são feitas conforme o que faz mais sentido. Os testes podem começar pelos sistemas mais vulneráveis e escalando para os menos vulneráveis. A seguir, temos algumas perguntas para ajudá-lo na tomada de decisão: 1. Qual é a localidade da rede em que se encontram os computadores e ou servidores que rodam os aplicativos da empresa? 2. Quais sistemas operacionais e aplicativos estão rodando nos computadores e ou servidores? 3. Qual é a quantidade e quais informações confidenciais estão armazenadas nos sistemas? Continue filtrando e melhorando sua metodologia de trabalho. As perguntas acima são só um início, mas na medida em que for se aperfeiçoando, surgirão novas perguntas a serem respondidas para uma tomada de decisão mais consistente. 2.1 PADRÕES DE TESTES É muito fácil travar um sistema, basta cometer uma falha, um deslize ou um simples erro nos testes para travar um ou todos os sistemas e criar uma dor de cabeça coletiva. Para evitar transtornos, crie, documente, padronize e faça um cronograma geral dos testes. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 5 of 24 30/11/2020 17:38 Na documentação, é importante descrever com detalhes os testes que serão realizados, como serão realizados e o que fazer quando uma vulnerabilidade for encontrada. Tenha certeza de que os testes afetem o mínimo possível o andamento dos processos da empresa. Se for possível, deve-se notificar a operadora de internet da empresa e o serviço de hospedagem sobre os testes que serão realizados, pois assim não vão impedir e interferir na realização dos testes caso detectem algo suspeito. O cronograma deve conter as datas, a duração e os horários de cada teste. A tabela 1 traz um exemplo de cronograma de testes. Tabela 1 – Exemplo de cronograma PENTESTER TESTE REALIZADO INÍCIO DO TESTE FINAL ESTIMADO DO TESTE Sandro de Araujo Varrer a rede em busca de vulnerabilidades 16/10/2019 16/10/2019 Sandro de Araujo Varrer os servidores em busca de vulnerabilidades 17/10/2019 17/10/2019 Sandro de Araujo Explorar as vulnerabilidades da rede. 18/10/2019 18/10/2019 Sandro de Araujo Explorar as vulnerabilidades da rede. 18/10/2019 18/10/2019 Um cronograma mantém as coisas transparentes e passa credibilidade para o resultado final no laudo técnico. Outra coisa interessante de se fazer é usar o log do sistema para fornecer evidências dos testes realizados. No Linux você pode fazer isso utilizando o comando script. O comando script servepara salvar em um arquivo de texto tudo que é exibido no console. Isso é útil para gravar todos os comandos digitados para consultas futuras, além de auxiliar na depuração de scripts e criação de scripts para automatizar tarefas (Agility, 2016). 2.2 USANDO O COMANDO SCRIPT UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 6 of 24 30/11/2020 17:38 Seu uso é muito simples. Para inicializar, digite script seguido do caminho do arquivo em que deseja salvar. Conforme apresentado no exemplo abaixo: sandro@uninter:~$ script /home/arquivoCaptura.txt Para parar a captura digite o comando exit: sandro@uninter:~$ exit Todos os comandos digitados e suas respectivas saídas serão gravados no arquivo especificado, no nosso caso será o “arquivoCaptura.txt”. A seguir é apresentado um exemplo prático: sandro@uninter:~$ script /home/exemploCaptura.txt Script started, file is /home/exemploCaptura.txt sandro@uninter:~$pwd /home/sandro sandro@uninter:~$ echo -e “UNINTER \n CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER CENTRO UNIVERSITÁRIO INTERNACIONAL sandro@uninter:~$ exit exit Script done, file is /home/exemplo_captura.txt Verificando o que foi gravado: sandro@uninter:~$ cat /home/exemploCaptura.txt A seguir, o conteúdo do arquivo exemploCaptura.txt UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 7 of 24 30/11/2020 17:38 sandro@uninter:~$ script /home/exemploCaptura.txt Script started, file is /home/exemploCaptura.txt sandro@uninter:~$pwd /home/diego sandro@uninter:~$ echo -e “UNINTER \n CENTRO UNIVERSITÁRIO INTERNACIONAL UNINTER CENTRO UNIVERSITÁRIO INTERNACIONAL sandro@uninter:~$ exit exit Script done, file is/home/exemploCaptura.txt Com o comando script estará tudo registrado, com horário e data de início do teste, bem como as informações do que foi realizado. Portanto, o comando script pode ser usado para cada teste realizado, a fim de ter todos os registros para compor o relatório final e se proteger de eventuais problemas que não tenha cometido. Para o propósito de testes de vulnerabilidades, pode-se realizar a varredura em uma rede, servidor e/ou um computador, iniciar o script e finalizar no momento em que terminar a varredura. Quando explorar suas vulnerabilidades, inicia-se outro script. Então temos, para cada atividade e ou teste, um script específico. Outro jeito de registrar os testes, só que mais trabalhoso, e garantir a segurança e catalogar evidências para a documentação é gravar a própria tela. O objetivo é testar os sistemas informáticos a partir de locais que cibercriminoso atacaria. Não há como prever se o ataque de um cibercriminoso será de dentro ou fora da rede, portanto realize os testes em ambientes internos e externos. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 8 of 24 30/11/2020 17:38 Para criar um cenário, deve-se pensar no máximo de possibilidades, independentemente de intenção humana ou causa observável. O importante é conseguir ver ou prever uma falha que a equipe de TI não conseguiu ver, seja por falta de experiência ou por descuido. A seguir, alguns exemplos de hipóteses que vale a pena observar: No momento dos testes, a rede e ou pessoas podem não estar disponíveis. Portanto precisa-se descobrir qual é o momento em que haverá disponibilidade para o ataque; Necessidade de ter ferramentas adequadas para o teste. Caso se depare com um teste específico do qual não tem uma ferramenta no momento, terá que fazer uma pesquisa minuciosa ou desenvolver uma; Testar as ferramentas antes de aplicar nas empresas para ter a certeza de que não vai travar sistema. Sempre usar as ferramentas tome muito cuidado e se dedique em conhecê-las bem para saber usá-las; Já descobrir todos os riscos! Só se você for uma criatura divina da tecnologia. Continue formulando novas hipóteses para minimizar o máximo dos erros em uma intrusão. É importante conhecer bem os testes que se deseja realizar para ter várias ferramentas à disposição. É falta de profissionalismo deparar com um teste que precisa ser realizado e não ter a ferramenta para tal. Parece repetitivo, mas é importante conhecer o que cada ferramenta faz e suas limitações. Para isso, a documentação do desenvolvedor e sua participação em fóruns que discutem sobre a ferramenta vai ajudar muito no aprendizado. TEMA 3 – PORTAS E comum escutar em um ambiente de TI que instalar um firewall é uma boa maneira de proteger a rede de computadores, já que ele controla o uso das portas. Para entender melhor os conceitos e utilidades dessas portas, veremos uma descrição dos protocolos TCP e UDP. 3.1 PROTOCOLO TCP A comunicação pela internet é feita, basicamente, por meio de protocolos, sendo o TCP UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 9 of 24 30/11/2020 17:38 (Transmission Control Protocol), um dos mais importantes deles. Isso porque o TCP está incluído no conjunto de protocolos que formam o TCP/IP, a base de comunicação via dados de toda a internet (INFO WESTER, 2019). De acordo Info Wester (2019), as principais características do TCP são: Garantir a entrega de datagramas IP: esta talvez seja a principal função do TCP, ou seja, garantir que os pacotes sejam entregues sem alterações, sem terem sido corrompidos e na ordem correta. O TCP tem uma série de mecanismos para garantir esta entrega; Executar a segmentação e o reagrupamento de grandes blocos de dados enviados pelos programas, garantir o sequenciamento adequado e a entrega ordenada de dados segmentados: essa característica refere-se ao recurso de dividir grandes arquivos em pacotes de dados menores e transmitir cada pacote separadamente. Os pacotes podem ser enviados por caminhos diferentes e chegar fora de ordem. O TCP tem mecanismos para garantir que, no destino, os pacotes sejam ordenados corretamente, antes de serem entregues ao programa de destino; Verificar a integridade dos dados transmitidos usando cálculos de soma de verificação: o TCP faz verificações para garantir que os dados não foram alterados ou corrompidos durante o transporte entre a origem e o destino; Enviar mensagens positivas dependendo do recebimento bem-sucedido dos dados. Ao usar confirmações seletivas, também são enviadas confirmações negativas para os dados que não foram recebidos: no destino, o TCP recebe os pacotes de dados, verifica se estão ok e, em caso afirmativo, envia uma mensagem para a origem, confirmando cada pacote que foi recebido corretamente. Caso um pacote não tenha sido recebido ou tenha sido recebido com problemas, o TCP envia uma mensagem ao computador de origem, solicitando uma retransmissão do pacote. Com esse mecanismo, apenas pacotes com problemas terão que ser reenviados, o que reduz o tráfego na rede e agiliza o envio dos pacotes; Oferecer um método preferencial de transporte de programas que devem usar transmissão confiável de dados baseada em sessões, como bancos de dados cliente/servidor e programas de correio eletrônico: o TCP é muito mais confiável do que protocolos como o UDP (explicado adiante) e é indicado para programas e serviços que UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 10 of 24 30/11/2020 17:38 dependam de uma entrega confiável de dados. O funcionamento do TCP é baseado em conexões. Assim, para um computador cliente iniciar uma “conversa” com um servidor, é necessário enviar um sinal denominado SYN para este último. O servidor então responde enviando um sinal SYN combinado com um sinal de nome ACKpara confirmar a conexão. O cliente responde com outro sinal ACK, fazendo com que a conexão esteja estabelecida e pronta para a troca de dados. Por ser feita em três transmissões, esse processo, é conhecimento como three-way handshake (algo como triplo aperto de mãos) (Info Wester, 2019). Conforme mostra a Figura 1. Figura 1 – Transmissão SYN e ACK Fonte: Info Wester, 2019. 3.2 PROTOCOLO UDP Segundo a Info Wester (2019), O UDP (User Datagram Protocol) é tido como um protocolo irmão UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 11 of 24 30/11/2020 17:38 do TCP, mas é mais simples e também menos confiável. Isso acontece porque o funcionamento do TCP é, como já dito, baseado em conexões, o que não ocorre com o UDP. Como consequência, não há procedimentos de verificação no envio e recebimento de dados (todavia pode haver checagem de integridade) e se algum pacote não for recebido, o computador de destino não fará uma nova solicitação, como acontece com o TCP. Tudo isso faz do UDP um pouco mais rápido, porém inutilizável em certas aplicações. Por essas características, pode parecer que o UDP é inútil, mas não é. Há aplicações em que é preferível entregar os dados o mais rapidamente possível, mesmo que algumas informações se percam no caminho. É o caso, por exemplo, das transmissões de vídeo pela internet (streaming), em que a perda de um pacote de dados não interromperá a transmissão. Por outro lado, se os pacotes não chegarem ou demorarem a chegar, haverá congelamentos na imagem, causando irritação no usuário. 3.3 PORTAS TCP E PORTAS UDP Para uma compreensão mais fácil, a Info Wester (2019) descreveu o seguinte exemplo: suponha que, neste momento, você esteja usando um navegador de internet, um cliente de e-mail e um software de comunicação instantânea. Todas essas aplicações fazem uso da sua conexão à internet, mas como o computador faz para saber quais os dados que pertencem a cada programa? Simples, pelo número da porta que cada um utiliza. Por exemplo, se você está usando um programa de FTP (File Transfer Protocol), a conexão à internet é feita pela porta TCP 21, que é uma porta convencionada a este protocolo. Se estiver baixando arquivos pelo BitTorrent, uma das portas que vão de 6881 à 6889 estará sendo utilizada para tal atividade. Compare seu computador a um prédio. Ao chegar uma correspondência, é necessário saber a qual apartamento entregá-la. Se no envelope estiver escrito que o destino é o apartamento número 123, onde reside Fulano, basta fazer a entrega. Em seu computador, o conceito é o mesmo: basta substituir a correspondência pelo pacote de dados, o apartamento pela porta e o Fulano pelo programa. No entanto, é importante frisar que um aplicativo pode utilizar mais de uma porta. Conforme mostrado na Figura 2. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 12 of 24 30/11/2020 17:38 Figura 2 – Aplicativo com protocolo TCP usando mais de uma porta Fonte: Info Wester, 2019. Ao todo, é possível usar 65536 portas TCP e UDP, começando em 1. Tanto no protocolo TCP quanto no UDP, é comum o uso das portas de 1 a 1024, já que a aplicação destas é padronizada pela IANA (Internet Assigned Numbers Authority) (Info Wester, 2019). De acordo com a IANA (S.d.), as portas TCP mais utilizadas são: 21 - FTP; 23 - Telnet; 25 - SMTP; 80 - HTTP; 110 - POP3; 143 - IMAP; 443 - HTTPS. Saiba mais A IANA disponibiliza uma lista completa e atualizada da utilização das portas TCP e UDP. Para conhecê-la, acesse o link a seguir; IANA. Service Name and Transport Protocol Port Number Registry. IANA, S.d. Disponível em: <https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.x html>. Acesso em: 10 mar. 2020. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 13 of 24 30/11/2020 17:38 Portas conhecidas (Well Known Ports), conforme definidas pela IANA (S.d.) e são usadas pelo Red Hat Enterprise Linux como as portas de comunicação default para vários serviços, incluindo FTP, SSH e Samba (MIT EDU, 2019). 3.4 RASTREAR AS PORTAS ABERTAS As portas de redes podem ser rastreadas com as ferramentas Nmap ou SuperScan e o tráfego com o Wireshark, TCPdump ou OminPeek. Com as ferramentas de rastreamento de portas, é possível identificar: Protocolos que estão sendo usados; Serviços em execução, como: E-mail; Servidores web; Banco de dados; Entre outros. Serviços de acesso remoto; Autenticação de compartilhamentos. 3.5 PESQUISA SOBRE VULNERABILIDADES Após a descobertas de potenciais falhas, é interessante confirmar se a falha encontrada é de fato uma vulnerabilidade. Portanto pesquise em grupos de discussões mensagens de hackers, sites sobre o assunto e banco de dados de vulnerabilidades. A seguir, são apresentados alguns sites que já têm registros das vulnerabilidades conhecidas: <www.kb.cert.org/vuls>. <cve.mitre.org>. <nvd.nist.gov>. Mas se preferir ir direto para os testes, terá que: UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 14 of 24 30/11/2020 17:38 Avaliar manualmente a falha – Refere-se à avaliação das vulnerabilidades pela tentativa de conexão das portas; Avaliar automaticamente a falha – Refere-se ao uso de scanners de vulnerabilidades. Levando-se em conta as falhas de segurança encontradas, podemos: Obter informações sobre o host e seus dados; Executar injeção de SQL (SQL Injection); Iniciar ou parar os serviços ou sistemas; Ter acesso a outros sistemas; Obter o terminal remoto ou prompt de comando; Desabilitar os controles de segurança; Acessar arquivos confidenciais; Fazer upload de arquivos; Capturar telas das atividades do usuário; Enviar e-mail como administrador; Entre outros. Saiba mais Para investigar vulnerabilidades em plataformas, servidores e em sistemas operacionais, temos o Metasploit, que é um conjunto de plataformas usadas para realizar testes de invasão. Com ele, é possível fazer um scan simples, uma análise ou uma invasão completa. Essa ferramenta cria um ambiente de pesquisa e um ambiente de exploração de vulnerabilidades, fazendo com que os erros de programação possam ser descobertos para explorar a falha na segurança do atacado. Pode ser baixado em: METASPLOIT Community. Rapid7, S.d. Disponível em: <www.rapid7.com/products/metasploi t/metasploit-community-registration.jsp>. Acesso em: 10 mar. 2020. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 15 of 24 30/11/2020 17:38 TEMA 4 – SENHAS As senhas dão uma falsa sensação de segurança para seus usuários. Uma das maneiras mais fáceis e comuns de obter acesso ao sistema é por meio da receptação de senhas e existem várias formas de obtê-las, seja pela sua solicitação, seja na observação da digitação do usuário sobre os ombros, com softwares que quebram senhas em computadores locais ou ferramentas remotas. A grande maioria dos usuários criam senhas fáceis para poder memorizá-las, reutilizam em outros sistemas e raramente são alteradas. Quando o usuário cria uma senha mais complexa vai anotá-la em algum lugar. A senha de administrador é como um pote mel para o atacante, pois com ela pode ser feito qualquer coisa no sistema. A seguir algumas técnicas para obtenção de senhas: 4.1 SEM O USO DE TECNOLOGIA 4.1.1 ENGENHARIA SOCIAL Consiste em pedir a senha. Por bizarro que pareça, é a maneira mais usada pelos cibercriminosos. Exemplo: o atacante telefona para o atacado, passando-se pelo técnico de TI da empresa e fala que ele tem um e-mail importante preso na fila e que precisada senha para acessar a conta para liberá-lo. 4.1.2 SHOULDER SURFING Esse é um termo muito usado no mundo hacker e significa “Olhar a tela alheia”. O ato de olhar por cima do olho de alguém para ver o que está sendo digitado. Para usar essa técnica, o cibercriminoso precisa se aproximar de suas vítimas, observar se o usuário deixa lembrete em sua mesa ou em gravações de câmera de segurança do estabelecimento que filmou a digitação da vítima. 4.1.3 ADIVINHAÇÃO Tentativa de se obterem senhas por meio de suposições, com base em informações sobre UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 16 of 24 30/11/2020 17:38 usuários. Exemplos: data de nascimento, nome dos parentes, dos animais de estimação, entre outros. 4.1.4 SENHA FRACA Alguns sistemas antigos não exigem senha para entrar ou sua tecnologia de autenticação é extremamente vulnerável. 4.2 COM O USO DE TECNOLOGIA A tecnologia à qual nos referimos é o uso de programas que tentam adivinhar uma senha fazendo todas as combinações possíveis para se obter acesso a um sistema ou à rede de computadores. Para isso temos algumas técnicas usadas, como as que serão mostradas a seguir: 4.2.1 ATAQUES DE FORÇA BRUTA Com tempo suficiente, essa técnica pode quebras qualquer senha. Sua metodologia consiste em fazer todas as combinações possíveis para se obter a senha. Seja essa composta por números, letras e caracteres especiais. Pode parecer fácil, só que pode levar uma eternidade; 4.2.2 ATAQUES DE DICIONÁRIO Essa técnica tem como característica a tentativa de todas as sequências de caracteres de uma lista normalmente derivada de palavras como em um dicionário, por isso o nome ataques de dicionário. Diferente do ataque de força bruta, o ataque de dicionário só tenta as possibilidades que considerar maior chance de sucesso. 4.2.3 ATAQUES ARCO-ÍRIS Consiste no uso de tabelas para decifrar diversos hashs de senha de forma rápida e com grandes taxas de sucesso. Essas tabelas arco-íris são encontradas facilmente na internet em sites como Project RainbowCrack (www.project-raibowcrack.com) e o ophcrack. Essas tabelas tornam possível a quebra de senhas em alguns segundos, minutos, ou horas em vez de dias, semanas, meses ou anos. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 17 of 24 30/11/2020 17:38 TEMA 5 – CONHECENDO O METASPLOIT Quando o assunto é exploração de vulnerabilidades, boa parte dessas buscas podem ser feitas usando a ferramenta Metasploit. Segundo Antonio (2019), o Metasploit é uma estrutura de teste de penetração mais usada no mundo por fazer parte da vida de equipes de segurança de TI. Quem trabalha com segurança cibernética tem como rotina diária a verificação de vulnerabilidades e a gerência de avaliações de segurança. Antonio (2019) descreve o Metasploit como um conjunto de plataformas usadas para investigar vulnerabilidades em plataformas, servidores e em sistemas operacionais. Com o uso do Metasploit é possível realizar testes de invasão (pentests), sendo possível também fazer desde um scan mais simples até uma análise ou invasão mais completa, explorando vulnerabilidades em programas instalados. Essa ferramenta tem como objetivo desenvolver um ambiente de pesquisa e criar um ambiente de exploração de vulnerabilidades, possibilitando que erros de programação (que influenciam em falha na segurança) possam ser descobertos (Antonio, 2019). Depois que se obtém todo o cenário de vulnerabilidade, é realizado o desenvolvimento do exploit, aplicando técnicas de engenharia reversa ou programação. O exploit é executado e testado em vários cenários, provando a existência de vulnerabilidades. Vamos entender melhor isso adiante (Antonio, 2019). É um framework e open source e passa por constantes atualizações. É desenvolvido em linguagem Ruby e organizado por módulos com programas que são chamados de exploits, os quais atacam as falhas encontradas e executam o payload (código malicioso), devolvendo uma sessão de SSH ou Telnet permitindo o controle remoto do computador atacado. Saiba mais UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 18 of 24 30/11/2020 17:38 Essa ferramenta pode ser baixada pelo site oficial por meio do seguinte link: METASPLOIT Community. Rapid7, S.d. Disponível em: <www.rapid7.com/products/metasploi t/metasploit-community-registration.jsp>. Acesso em: 10 mar. 2020. Após o download do arquivo, é preciso permissão para executar o arquivo. Após executar o arquivo, tudo é realizado de forma automática. Uma forma de como iniciar o Metasploit, considerando o uso do Linux, é digitando os comandos: service postgresql start service metasploit start Em seguida, inicie o Metasploit com o seguinte comando: msfconsole Ao iniciarmos o Metasploit pela primeira vez, são criadas diversas tabelas no banco de dados, que servem para guardar dados de hosts, vulnerabilidades encontradas e outras informações importantes. Quase todos os comandos no Metasploit têm a opção de help ( - h) para auxiliar no seu entendimento. Com o comando help podemos visualizar uma lista de comandos com as suas explicações. Exemplo: search - h. O help indicará que o comando search é usado para buscar payloads e exploits dentro da ferramenta. Ao encontramos o comando que queremos usar dentro do Metasploit, devemos usar um outro comando chamado use, para entrar no contexto do módulo que iremos usar. Para retornar ao modo inicial do Metasploit, devemos digitar o comando back. Embora possamos usar o Metasploit por linha de comandos, podemos também fazer uso da interface gráfica via browser: o msfweb. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 19 of 24 30/11/2020 17:38 Resumo de algumas ferramentas do metasploit: msfconsole – Metasploit em modo console; msfweb – interface gráfica via browser; msfplayload – é utilizado para gerar e customizar payloads; msfcli – é uma interface para automatizar a penetração e exploração; msflogdump – exibirá as sessões de arquivos de log. Esta é a base fundamental para uso do Metasploit. Saiba mais Para aprender mais sobre os comandos e colocar ações em práticas, é indicado fazer uso do site Rapid 7, acessando o link a seguir: RAPID7. Disponível em: <https://www.rapid7.com>. Acesso em: 10 mar. 2020. NA PRÁTICA Para esta seção prática, vamos utilizar o artigo de Praciano (2015) que usa o THC Hydra. Segundo Praciano (2015), o THC Hydra é uma ferramenta clássica usada para quebrar senhas. Resumidamente, é um programa para crackear senhas de login na rede e tem como atrativo o fato de ser bastante rápida. Na Figura 3, é apresentada uma interface com a sintaxe do THC Hidra. Figura 3 – Sintaxe do Hydra UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 20 of 24 30/11/2020 17:38 Fonte: Praciano, 2015. Como instalar o Hydra No Ubuntu e em outras versões baseadas no Debian, o processo de instalação pode ser feito através do apt-get: sudo apt install hydra Observação: existe uma versão gráfica do aplicativo hydra-gtk, que não será abordada nesta aula — mas, se quiser instalar, este é o nome do pacote. Como usar o Hydra Na linha de comando (no terminal), você deve invocar o Hydra e informar, basicamente, duas coisas: Um alvo a ser atacado — endereço IPv4, IPv6 ou um nome DNS; Um serviço ou protocolo, dentre os vários suportados, a ser quebrado. Ataque em um roteador doméstico Esse exemplo foi realizado em um roteador doméstico — cujo login é admin e a senha é a mesmacoisa. hydra -l admin -esn http://192.168.254.254 Veja o resultado apresentado na figura 4: UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 21 of 24 30/11/2020 17:38 Figura 4 – Resultado após a execução do Hydra Fonte: Praciano, 2015. Veja o que foi feito: - l admin – Quando já se sabe, de antemão, o login do sistema em que se deseja entrar, informe-o na linha de comando com a opção ‘-l’. - esn – Neste caso, só o que resta adivinhar é a senha. A opção ‘- esn’ faz com que o Hydra inclua nas suas tentativas a mesma senha do login e a senha em branco – que são situações corriqueiras em se tratando de roteadores domésticos. Ataque em um servidor MYSQL local No exemplo a seguir, um ataque ao servidor MySQL local. hydra 127.0.0.1 mysql -l root -P /usr/share/dict/portuguese -t 4 Uma situação comum é usar o root como login padrão em instalações “domésticas” do MySQL. A lista de senhas foi retirada do arquivo de dicionário ‘/usr/share/dict/portuguese’. Você pode usar outro. A opção ‘- t 4’ informa ao Hydra para rodar 4 tarefas em paralelo, o que ajuda concluir o trabalho mais cedo. O padrão do aplicativo é 16. Veja o resultado apresentado na Figura 5: UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 22 of 24 30/11/2020 17:38 Figura 5 – Resultado após a execução do Hydra Fonte: Praciano, 2015. FINALIZANDO Nesta aula, percebemos como planejar os teste, a descoberta das principais portas usadas para comunicação e serviços como também algumas ferramentas para quebrar senhas. REFERÊNCIAS ANTONIO, A. M. Como funciona o Metasploit. PMG Academy, S.d. Disponível em: <https://www.pmgacademy.com/pt/blog/artigos/como-funciona-o-metasploit>. Acesso em: 10 mar. 2020. AGILITY. Comando script do Linux. Agility, 13 jan. 2016. Disponível em: <https://www.somosagility.com.br/comando-script-do-linux/>. Acesso em: 10 mar. 2020. IANA. Service Name and Transport Protocol Port Number Registry. IANA, S.d. Disponível em: <https://www.iana.org/assignments/service-names-port-numbers/service-names-port- numbers.xhtml>. Acesso em: 10 mar. 2020. INFO WESTER. Portas TCP e UDP. Info Wester, 11 jan. 2007. Disponível em: <https://www.infowester.com/portastcpudp.php/>. 2019. Acesso em: 10 mar. 2020. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 23 of 24 30/11/2020 17:38 PRACIANO, E. Use o Hydra para quebrar senhas por força bruta. Elias Praciano, 22 jul. 2015. Disponível em: <https://elias.praciano.com/2015/07/use-o-hydra-para-quebrar-senhas-por-forca- bruta/>. Acesso em: 10 mar. 2020. UNINTER - FERRAMENTAS HACKERS - EXPLORAÇÃO DE VU... https://conteudosdigitais.uninter.com/libraries/newrota/?c=/gradNova/20... 24 of 24 30/11/2020 17:38
Compartilhar