Você está na página 1de 130

Analista de Ataque

Cibernético_
Maximiliano de Carvalho Jacomo
2022
SUMÁRIO
Capítulo 1. Conceito de Pentester (Teste de Intrusão) .................................. 4

1.1. Relembrando Conceitos – Conexões TCP............................................................ 6

1.2. Ethical Hacker vs. Black Hacker................................................................................ 8

1.3. Times de Segurança .................................................................................................... 11

1.4. Pentester vs. Ethical Hacker ................................................................................... 20

1.5. Avaliação de Vulnerabilidade vs. Pentester ..................................................... 23

1.6. Tipos de Pentest ........................................................................................................... 28

1.7. Metodologia do Teste de Penetração ................................................................. 32

Capítulo 2. Fases do Teste de Penetração ......................................................... 36

2.1. Fase 1: Planejamento ..................................................................................................... 38

2.2. Fase 2: Reconhecimento do Alvo .............................................................................. 40

2.3. Fase 3: Análise de Vulnerabilidades ........................................................................ 41

2.4. Fase 4: Exploração (Ganho de Acesso)................................................................... 41

2.5. Fase 5: Pós-Exploração (Mantendo Acesso) ........................................................ 42

2.6. Fase 6: Eliminação dos Rastros/Reporte ............................................................... 43

Capítulo 3. Ferramentas e Técnicas Ethical Hacker ...................................... 46

3.1. Reconhecimento (Footprinting) ................................................................................ 46

3.1.5. Detectando os Alvos Ativos ..................................................................................... 60

3.2. Análise de Vulnerabilidades ........................................................................................ 76

3.3. Exploração (Ganho de Acesso)................................................................................... 99

3.4. Detonando Senhas ........................................................................................................107

3.5. Engenharia Social Toolkit........................................................................................... 113

3.6. Explorando o Alvo (Pós Exploração) ......................................................................120

3.7. Eliminação dos Rastros ............................................................................................... 121

Capítulo 4. Tópicos Especiais: HoneyPot ........................................................ 124

Referências ...................................................................................................................... 129

2
1
Capítulo 1. Conceito de Pentester (Teste de Intrusão)
De acordo com Fontes (2006), segurança da informação trata-se de
um conjunto de procedimentos, políticas e ações para a proteção das
informações, permitindo que o negócio da organização seja contínuo e sua
missão alcançada. Assim sendo, a segurança da informação precisa ser um
componente crítico de todas as empresas.

Existem vários métodos de testar a segurança da informação em


uma empresa. Um teste de intrusão é um deles, pois além de possibilitar
testar os ativos de TI contra diversos tipos de ameaças, também possibilita
mensurar a postura e a maturidade da segurança da informação no
ambiente corporativo.

De forma generalizada, pode-se dizer que um teste de intrusão, ou


simplesmente “Pentest”, é um exame que tem como principal objetivo
mensurar os mecanismos de proteção e segurança aplicados em uma
infraestrutura de TI, consecutivamente em seus ativos, por meio do
reconhecimento e exploração de vulnerabilidades. Ou seja:

Um método para obter segurança na segurança de um


sistema de TI, tentando violar parte ou toda a segurança
desse sistema, usando as mesmas ferramentas e técnicas que
um adversário utilizaria.

Normalmente, os testes de intrusão são usados para identificar o


nível de risco técnico resultante das vulnerabilidades de software e
hardware. Apontando exatamente quais técnicas são usadas, quais metas
são permitidas, quanto de conhecimento do sistema é fornecido aos
testadores de antemão e quanto de conhecimento do teste é fornecido às
equipes de segurança dentro do mesmo regime de teste.

4
Um teste de intrusão com um escopo bem definido pode garantir
que os controles de segurança testados foram configurados de acordo com
as boas práticas, as normas e as políticas estabelecidas pela alta
administração da empresa, bem como a existência de vulnerabilidades
comuns ou conhecidas publicamente nos componentes testados no
momento do teste.

Pense desta maneira. Se você quiser descobrir a eficácia do sistema


de segurança de sua casa, poderá contratar alguém para tentar “driblar” esse
sistema e assaltar a sua casa. Isso é essencialmente o que um teste de
intrusão faz. Se você ainda não possui um sistema de segurança residencial,
a invasão em etapas seria muito fácil, concorda? É importante que, após a
implementação de mecanismos de proteção em sua residência, testes sejam
realizados em tais mecanismos, para garantir que as medidas de proteção
adotadas estejam funcionando perfeitamente. O mesmo acontece com um
teste de intrusão. Se uma empresa nunca realizar uma avaliação de
segurança adequada sobre as medidas e práticas de segurança
implementadas em seus ativos de TI, para descobrir se elas possuem
vulnerabilidades ou se estão adequadamente aptas a responder de forma
eficiente e eficaz diversos tipos de ameaças, acaba sendo prematuro dizer
que a empresa está segura e, em alguns casos, poderá haver desperdício de
tempo e dinheiro. Mas, por que uma empresa deve realizar um teste de
intrusão?

Mesmo com as mais fortes medidas de proteção e segurança


implementadas dentro de uma infraestrutura de TI, existem
vulnerabilidades que expõem os ativos de TI da empresa a riscos
desconhecidos. Essas lacunas podem ser tão inocentes quanto um
aplicativo desatualizado ou a postura de um funcionário durante um bate
papo com colegas a respeito de um novo projeto, acesso a um sistema etc.

5
De qualquer modo, uma dessas lacunas poderia fornecer uma rota
direta para o vazamento ou roubo dados digitais confidenciais, como dados
financeiros, informações sobre novos produtos e serviços, documentos
estratégicos ou classificados.

A execução de um teste de intrusão torna-se, neste contexto, uma


ferramenta essencial para identificar os caminhos de acesso, ou seja, essas
“lacunas”, classificando o valor potencial de cada um e fornecendo um
roteiro claro para a correção. Um teste de intrusão não é apenas uma prática
comercial inteligente, mas também um requisito anual para aquelas
empresas que devem permanecer em conformidade com as principais
regulamentações como: PCI, SOX, FACTA, GDPR e LDPD.

1.1. Relembrando Conceitos – Conexões TCP


Para que duas pessoas realizem uma comunicação de forma
eficiente é preciso que ambas conheçam a mesma forma de comunicação e
estabeleçam regras para que essa comunicação ocorra de forma legível. Ou
seja, é preciso que se estabeleça um “protocolo de comunicação.

No universo dos sistemas computacionais, de acordo com


Tanenbaum (2011), um protocolo é um acordo entre as partes que se
comunicam, estabelecendo como se dará a comunicação. Neste contexto, é
correto afirmar que o TCP é um protocolo de comunicação utilizado por
equipamentos computacionais para realizar a comunicação entre eles de
forma confiável e eficiente. Porém, é comum observarmos a união de outro
protocolo, o “IP”, dando a conotação de um único protocolo TCP/IP. Mas,
essa definição é errônea, pois ambos o TCP e o IP possuem funções e atuam
em camadas diferentes durante o processo de comunicação.

Diferente de outros protocolos, o TCP é um protocolo que foi


projetado para estabelecer uma conexão orientada e confiável de forma
ordenada entre duas pontas, características não presentes em outros
protocolos, como o IP e o UDP. Ou seja, uma comunicação “fim a fim” por

6
meio de um processo conhecido como “Three-way Handshake”, ou
simplesmente aperto de mão.

Toda a comunicação realizada pelo protocolo TCP é realizada por


meio de portas ou sockets, que, por sua vez, são associados a um endereço
estabelecido pelo outro protocolo o “IP”, dando-se, então, a origem do termo
TCP/IP. O processo “Three-way Handshake”, realizado pelo protocolo TCP,
acontece utilizando-se de duas flags contidas em um cabeçalho de um
pacote de dados TCP, a ACK (acknowledgement – ou reconhecimento) e a
SYN (synchronize ou sincronizar). Vamos explicar o processo:

• Fase 1: o cliente envia um pacote de dados com a flag “SYN” ativada;

• Fase 2: o servidor envia um pacote resposta com as flags “SYN+ACK”


ativadas;

• Fase 3: o cliente devolve uma resposta ao servidor com a flag “ACK”


ativada no pacote.

• Fazendo uma analogia para a nossa linguagem de comunicação:

• Cliente pergunta: Ei, servidor! Estou enviando um pacote de dados


para você que contém um número 1000 (sequência inicial da
transmissão), vamos sincronizar?

• Servidor responde: Sim, por que não? Vou enviar a você a minha
sequência que é a 2000, ok? Já estou enviando também o SYN e
pode enviar a próxima sequência ACK da sua mensagem (1001).

• Cliente responde: Ok! Lá vai o meu pacote com a sequência 1001,


envie-me o seu ACK com a sequência 2001...

E assim por diante, até que o cliente termine a conversa mandando


um pacote com a flag “FIN”, conforme demonstrado na Figura 1.

7
Figura 1 – Tree-Way Handshake.

É importante ressaltar que a existência de números sequências


distintas é necessária para que se haja a sincronização entre ambas as
partes – cliente e servidor. Realizada a sincronização entre ambos, a troca
de informações (pacotes de dados) começa.

O TCP é um protocolo presente na camada de transporte do modelo


de arquitetura OSI, e como já comentamos, trabalha utilizando o conceito
de portas lógicas de comunicação em conjunto com o outro protocolo IP.
Abaixo, alguns serviços que trabalham sobre TCP e suas portas lógicas:

Figura 2 - Alguns Serviços e Portas do TCP

1.2. Ethical Hacker vs. Black Hacker


Sempre que estou falando do assunto para os cursos de segurança
da informação e segurança cibernética, eu realizo a seguinte pergunta aos
meus alunos: "qual a diferença entre um Ethical Hacker e Black Hacker?”
Inevitavelmente, a questão da ética vem à tona. Isto porque é a ética é o que
os conceitua e os diferencia.

8
Por definição, o Ethical Hacker é um indivíduo que realiza avaliações
de segurança da informação e segurança cibernética em uma infraestrutura
de TI com o consentimento da alta administração da empresa; enquanto o
Black Hacker é um indivíduo desconhecido da empresa que não possui
acordo e muito menos autorização da alta administração. Seu principal
propósito é realizar um ataque contra os sistemas de segurança da empresa,
visando prejudicar a empresa em algum aspecto ou roubar de dados e
informações para obter algum lucro pessoal ou financeiro.

Às vezes, um Black Hacker demonstra um comportamento ético. Um


exemplo é a história de Adrian Lamo, um famoso Black Hacker que, após
invadir diversos sistemas corporativos, informou às suas vítimas os passos
realizados durante o ataque, bem como as formas de proteção que deveriam
ser adotadas para mitigar futuros ataques de intrusão.

Observa-se que, mesmo demonstrando uma forte convicção de ética,


Lamo foi condenado por crimes cibernéticos nos Estados Unidos em 2004,
por possuir um comportamento ético contrário às leis contra crimes
cibernéticos vigentes nos Estados Unidos.

Na segurança da informação e segurança cibernética, os Black


Hackers são aqueles que realizam a intrusão não autorizada a sistemas e
infraestruturas de TI de uma empresa. Embora a razão por trás dessa
atividade varie de uma simples curiosidade para o ganho financeiro, é
comum que o façam sem permissão. Em alguns casos, o Black Hacker pode
estar localizado fisicamente em países que possuem leis fracas contra
crimes virtuais. No entanto, suas ações ainda podem ser consideradas
ilegais quando violam as leis de países onde o alvo (vítima) situa-se.

Porém, há uma grande dificuldade em punir e processar um Black


Hacker quando seu próprio país não vê nada de errado em suas ações. Essa
dificuldade pode ser mais bem demonstrada pela prisão de Dmitry Sklyarov
em 2001. Dmitry foi preso depois de chegar aos Estados Unidos para assistir

9
uma conferência de segurança da informação em uma faculdade americana.
Sua prisão estava relacionada ao seu trabalho em derrotar a cópia proteção
de e-books, por meio da quebra da criptografia inserida nestes e-books,
projetada pela companhia americana Adobe Systems.

Na ocasião, Dmitry foi preso por violar o Digital Millennium Copyright


Act (DMCA), uma lei que se destina a impedir as pessoas de encontrar
maneiras de contornar ou derrotar a criptografia de um software
proprietário. O problema era que a DMCA é uma lei de direitos autorais dos
EUA e não é aplicável na Rússia, onde Dmitry morava e publicou sua
pesquisa.

Apesar disso, o FBI – o escritório americano responsável por


investigar crimes federais – prendeu-o enquanto estava em solo americano.
Eventualmente, todas as acusações foram retiradas em troca de seu
testemunho.

Nos Estados Unidos, as ações Dmitry foram consideradas ilegais,


mas não houve tais proibições em seu próprio país. Isso porque ele não fez
nada para violar leis de direitos autorais na Rússia. É importante ressaltar
que, mesmo não violando nenhuma lei em seu país, o trabalho de Dmitry foi
feito sem a permissão da empresa americana Adobe Systems, tornando-se
por definição um Black Hacker.

Um Ethical Hacker é um indivíduo que realiza avaliações de


segurança dentro de um acordo contratual. Assim como nos filmes do Velho
Oeste, Ethical Hacker, pode ser considerado o “mocinho” da história. Seu
principal objetivo é ajudar as empresas e suas equipes de segurança a
melhorar seus mecanismos de proteção em relação à segurança de seus
ativos de TI contra Black Hackers.

Atualmente, há muitos esforços em codificar as responsabilidades


éticas dos Ethical Hackers em prol de uma melhor compreensão de como os

10
dados confidenciais serão tratados durante um Pentest e sua postura
perante a ética, que, convenhamos, é bastante subjetiva. Por exemplo,
entidades como ISSAC, CISSP e ISC, reconhecidas mundialmente em
formar profissionais Ethical Hacker, impõem códigos de ética e conduta
rigorosos para os candidatos que desejam obter a certificação de Ethical
Hacker.

1.3. Times de Segurança


Quando estamos conversando sobre segurança cibernética, os
termos "Red Team” e “Blue Team”, times vermelhos e times azuis, são
frequentemente mencionados. Há muito tempo associados às forças
armadas, esses termos são usados para descrever equipes que usam suas
habilidades para atacar ou defender determinada posição ou elemento. Na
segurança cibernética, não há muita diferença.

Red Team ou Time Vermelho, são equipes de especialistas em


segurança que estão focadas em realizar testes de penetração em
diferentes ambientes de TI e em seus níveis de programas de segurança.
Eles estão lá para detectar, prevenir e eliminar vulnerabilidades.

Uma equipe vermelha imita ataques do mundo real que podem


atingir uma empresa e executa todas as etapas necessárias que os invasores
“Black Hackers” usariam. Ao assumir o papel de um invasor, eles mostram às
empresas quais vulnerabilidades exploráveis representam uma ameaça à
sua segurança cibernética.

Uma prática comum realizada pelas empresas é contratar alguém de


fora para compor ou formar a equipe vermelha. No geral, esse indivíduo
trata-se de alguém equipado com habilidades e conhecimentos necessários
para explorar vulnerabilidades de segurança, mas desconhece as defesas
incorporadas à infraestrutura da empresa. Ou seja, trata-se de um Ethical
Hacker.

11
As técnicas que uma equipe vermelha usa variam de tentativas entre
explorar falhas humanas por meio de técnicas de engenharia social (arte de
enganar pessoas) em colaboradores, com o objetivo de obter acesso a
sistemas, dados ou informações de diversos tipos de classificação, como a
utilização de códigos e scripts de programação desenvolvidos
exclusivamente para explorar falhas (bugs) em sistemas operacionais,
protocolos etc.

Neste contexto, para serem realmente eficazes, as equipes


vermelhas precisam conhecer todas as táticas, técnicas e procedimentos
que um invasor usaria durante uma tentativa de invasão a um ambiente de
TI de uma empresa.

É importante ressaltar que as equipes vermelhas (Red Team)


oferecem benefícios críticos, incluindo uma melhor compreensão da
possível exploração de dados e a prevenção de violações futuras. Ao simular
ataques cibernéticos em suas infraestruturas de TI, as empresas garantem
que as medidas de proteção implementadas por suas equipes de segurança
estejam em conformidade com as políticas e defesas adequadas à
segurança, além de possibilitar uma visão real dos riscos associados aos
ativos de TI. Mas, como tudo não são “flores”, uma grande desvantagem de
se ter um time vermelho é o custo. Manter equipes Red Team dentro de um
ambiente corporativo requer um investimento considerável em ferramentas
tecnológicas, contratação de pessoas altamente especializadas e
treinamento constante.

Blue Team ou Time Azul, são também equipes formadas por


especialistas em segurança da informação, semelhante a uma equipe
vermelha. Isso porque também avaliam os níveis de proteção e segurança
de um ambiente de TI corporativo e identificam possíveis vulnerabilidades.
Porém, o que diferencia uma equipe azul de uma equipe vermelha é o seu
objetivo.

12
Uma equipe vermelha, conforme estudado anteriormente, realiza o
processo de uma invasão, valendo-se de táticas e técnicas características e
utilizadas por um Black Hacker. Já no caso de uma equipe azul, por sua vez,
está lá para encontrar maneiras de defender, mudar e reagrupar
mecanismos de proteção e defesa para tornar a resposta a incidentes muito
mais forte. Em resumo, o Red Team busca explorar vulnerabilidades por meio
de ações ofensivas de ataque. Já o Blue Team busca detectar ações
ofensivas e defender os ativos de TI contra diversos tipos de ameaças.

É importante salientar que as equipes vermelha e azul precisam


estar cientes das mesmas táticas, técnicas e procedimentos maliciosos para
criar estratégias de resposta às ameaças. E ambas, estão envolvidas na
missão de fortalecer a segurança dos ativos de TI, por meio de técnicas e
ferramentas como, por exemplo, softwares IDS (sistema de detecção de
intrusões) que fornecem uma análise contínua de atividades incomuns e
suspeitas.

Para entendermos melhor sobre a importância e o valor de se ter


equipes vermelha e azul em um ambiente corporativo, em 2018, a revista
InfoSec, especializada em assuntos relacionados à segurança da
informação, segurança cibernética e demais outros assuntos do gênero,
realizou uma pesquisa em sua rede social Twitter, no qual perguntou aos
seus seguidores qual dos times “Red ou Blue” eram mais importantes e
essenciais para se ter em uma empresa. Após um rápido tempo, a InfoSec,
no início, entendeu que seus leitores estavam indecisos com a escolha.
Porém, logo após, perceberam que a vencedora da disputa seria a equipe
vermelha, apesar do resultado apertado (Figura 3).

13
Figura 3 - Resultado da Pesquisa realizada pela revista Infotec.

É compreensível porque os leitores escolheriam a equipe


vermelha, com estatísticas baseadas em quem são nossos
seguidores e na natureza de suas carreiras. Sempre existe
uma "animosidade" leve entre equipes vermelhas e azuis,
portanto, perguntar a diferentes grupos de pessoas
provavelmente nos daria respostas diferentes. Uma coisa
estamos felizes – ninguém estava envolvido no nosso
pequeno truque! A verdade é que não há time vermelho sem o
time azul, ou vice-versa. Não era nossa intenção enganar
ninguém, mas era uma pergunta enganosa! A resposta real
para a pergunta é: Ambos. (descrição da resposta da revista
InfoSec, após publicar o resultado de sua pesquisa).

Conforme observamos, o Red Team (Time vermelho) usa suas


habilidades para testar as medidas de proteção implementadas pelo Blue
Team (Time azul). Porém, às vezes, a equipe vermelha pode encontrar
buracos que a equipe azul ignorou completamente e, nesses casos, é
responsabilidade da equipe vermelha mostrar como essas coisas podem ser
melhoradas. Assim sendo, é vital que as equipes vermelha e azul trabalhem
juntas contra criminosos cibernéticos, para que a segurança cibernética
possa ser eficiente e eficaz.

14
Não há tal coisa como “time vermelho é melhor que azul e vice-
versa”, não há benefício em escolher lados ou investir em apenas um. O
importante é lembrar que o objetivo de ambos os lados é evitar crimes
cibernéticos.

Conforme podemos perceber, as equipes vermelha e azul não


poderiam ser mais opostas em suas táticas e comportamentos. Podemos até
fazer uma analogia com a filosofia chinesa Yin - Yang, a qual defende a teoria
de que tudo no universo possui uma dualidade. Ou seja, existem sempre dois
lados, preto e branco, bem e mau, sol e noite, ataque e defesa, e assim por
diante; e no contexto de equipes vermelha e azul, essas diferenças são
principalmente o que as tornam parte de um todo eficiente e eficaz.
Podemos dizer que as equipes vermelhas atacam e as equipes azuis
defendem, mas o objetivo principal é compartilhado entre ambas: melhorar
a postura da segurança da empresa.

Porém, alguns problemas comuns com a cooperação entre ambas


podem existir. Como exemplo, podemos citar: (a) a equipe vermelha se
considera elite demais para compartilhar informações com a equipe azul; (b)
a equipe vermelha é puxada para dentro da organização e torna-se castrada,
restrita e desmoralizada, resultando em uma redução catastrófica em sua
eficácia; (c) ambas as equipes não são projetadas para interagir entre si de
forma contínua, nesse sentido as lições aprendidas de cada lado podem se
perder ao longo do tempo; (d) algumas vezes, a gerência de segurança da
informação não vê ambas as equipes como parte do mesmo esforço e, por
esse motivo, não há informações, gerenciamento ou métricas
compartilhadas entre ambas.

As empresas que sofrem por um ou mais desses problemas


provavelmente pensam que precisam de uma nova equipe para resolvê-los.
Eis que surge uma nova equipe: “Purple Team” ou Time Roxo.

15
Nascida da tentativa de conciliar equipes vermelhas e azuis, a equipe
roxa é um conceito que não descreve verdadeiramente a existência de uma
equipe totalmente nova. Ela é uma combinação das equipes vermelha e azul,
promovendo o envolvimento e a integração entre ambas, para que trabalhem
juntas em prol da segurança da informação e segurança cibernética de uma
empresa.

Precisamos dizer que as empresas precisam da cooperação mútua


de ambas as equipes para fornecer uma auditoria completa de ambos os
lados, com registros de todos os testes realizados e registros das
especificidades relevantes. A equipe vermelha fornece informações sobre as
operações que eles executaram enquanto "atacavam", e a equipe azul
fornece documentação sobre as ações que eles executaram para preencher
as lacunas e solucionar as vulnerabilidades e os problemas encontrados.

Tanto a equipe vermelha quanto a equipe azul são essenciais. Sem


as suas constantes auditorias de segurança, a implementação de testes de
penetração e o desenvolvimento de infraestrutura de segurança, empresas
não estariam cientes de sua própria segurança. Ou seja, não teriam
conhecimento da eficiência e eficácia dos seus mecanismos e medidas de
segurança.

Atenção, o "Purple Team" ou “Time Roxo” deve ser pensado como


uma função ou um conceito, e não como uma nova equipe ou time que
precisa ser contratado e implementado em um ambiente corporativo de
forma permanente. Esse conceito é o de cooperação e benefício mútuo em
direção a um objetivo comum.

Portanto, talvez, exista um engajamento da equipe roxa em que


terceiros analisem como suas equipes Vermelho e Azul trabalham entre si e
recomendem correções. Ou, talvez, haja um exercício da equipe roxa em que
alguém monitora as duas equipes em tempo real para ver como elas
funcionam. Somado a isso, pode ser que haja uma reunião do time roxo onde

16
os dois times se unam, compartilhem histórias e conversem sobre vários
ataques e defesas.

Embora seja bom ter pessoas dedicadas a proteger uma organização


por meio de métodos de defesa ou ataque, as empresas e seus sistemas não
permanecem estáticos. Processos adicionais, automações, produtos e
serviços estão sendo constantemente construídos por desenvolvedores e
arquitetos - com o aumento da área potencial de ataque a cada nova
alteração ou integração.

Pensando nisso, April C. Wright, ativista feminina, Ethical Hacker,


professora e líder de uma comunidade que promove a proteção da segurança
e da privacidade dos dados e da informação há mais de 25 anos, durante
uma conferência internacional sobre segurança da informação e
cibersegurança a DefCamp nos Estados Unidos, apresentou um novo
conceito intitulado “Orange is the new Purple” (Laranja é o novo Roxo).

Em sua apresentação, April defendeu a tese de tornar os


desenvolvedores, arquitetos, engenheiros e programadores de softwares
uma equipe, a “Yellow Team” (equipe amarela), e fornecer a eles a
capacidade de tornar os produtos desenvolvidos por eles mais seguros.

Vale lembrar que o foco de um desenvolvedor está na


funcionalidade, ou seja, tornar o fruto do seu desenvolvimento, o sistema no
caso, mais funcional possível o mais rápido possível. Nesse sentido, quando
a funcionalidade de um aplicativo ou sistema funciona para todos os
usuários e partes interessadas de forma correta, os desenvolvedores ficarão
tranquilos porque realizaram seu trabalho perfeitamente.

Porém, os desenvolvedores nunca sabem, ou realmente pensam, se


fizeram algo inseguro, até que isso seja apontado para eles como parte de
um teste de penetração realizado por um Red Team ou como parte de uma
violação descoberta por um Blue Team.

17
É importante ressaltar que empresas e equipes de segurança são
afetadas por vulnerabilidades e configurações incorretas e todas têm a
mesma fonte: a pessoa ou grupo que realizou o desenvolvimento do
software. Como diz o ditado: se a depuração é o processo de remoção de
bugs, a programação é o processo de colocar bugs no aplicativo. O teste
prova apenas a presença de bugs, não a ausência deles.

Para ajudar a resolver isso, as empresas devem implementar um ciclo


no qual há uma interação entre as equipes Red, Blue e Yellow, de modo que:
o Yellow Team desenvolve o software, aplicativo ou sistema; o Red Team
realiza os testes para descobrir e expor as vulnerabilidades; o Blue Team
realiza a defesa e gera os resultados em conjunto ao Red Team, que são
encaminhados ao Yellow Team para realizar as devidas correções.

A ideia por trás do ciclo apresentado é de que o Yellow Team precisa


aprender com Red Team e trabalhar lado a lado com o Blue Team.

A partir do conceito difundido por April C. Wright, que por sinal foi
recebido com esplendor por várias entidades e pessoas que estão envolvidas
direta ou indiretamente com a segurança da informação, cibersegurança e
afins no mundo a fora, novas estruturas de times foram criadas com base
nas três cores básicas: vermelho, azul e amarelo. Isso fez com que
habilidades e competências fossem misturadas, criando-se, assim,
conceitos e mecanismos de proteção novos para diversas áreas e ambientes
de TI.

18
Figura 2 - Paleta de Cores da Segurança da Informação

A seguir, podemos observar as habilidades e competências de cada


equipe ou time e, consecutivamente, o resultado da união/integração desses
times principais, fazendo surgir um novo time e um novo conjunto de
habilidades e competências que irão garantir uma maior segurança em um
ambiente corporativo.

Figura 5 - Red Team + Blue Team = Purple Team

19
Figura 6 - Yellow Team + Blue Team = Green Team.

YELLOW TEAM GREEN TEAM BLUE TEAM


•Formado por •Proporciona a melhoria • Conceito de Segurança
desenvolvedores, contínua da seggurança Defensiva;
engenheiros, arquitetos defensiva por meio da
e programadores de implementação de • Trabalha para proteger
software. conceitos relacionados há toda a infraestrutura de
segurança by design e by TI;
•Devem aprender com o default;
Red e o Blue Team • Altamente especializada
para desenvolver •Realiza auditoria interna em resposta à incidentes
sistemas mais seguros; nos mecanismos de de segurança;
proteção implementados.
•Devem pensar em • São caçadores de
segurança e •Aplica conceitos de análise ameaças;
privacidade by default e forense para resolver
by design incidentes de segurança da • Realizam diversos
informação. trabalhos de análise de
logs de diversos
sistemas de segurança.

Figura 7 - Yellow Team + Red Team = Oragen Team

1.4. Pentester vs. Ethical Hacker


Quando se trata de aprender sobre Pentest e Ethical Hacking é
comum assumirmos que ambos possuem o mesmo significado. Isso porque

20
ambos se enquadram na mesma categoria "Segurança ofensiva". Porém, há
diferenças entre os dois.

Debaixo do guarda-chuva da segurança ofensiva, existem várias


disciplinas, como teste de intrusão, engenharia social, formação de equipes
em vermelho (“Red Team”), engenharia reversa de software, hackers éticos
e muito mais, conforme observa-se abaixo:

Figura 8 - Guarda-Chuva da Segurança da Informação.

Conforme estudamos anteriormente, o teste de intrusão tem como


objetivo encontrar vulnerabilidades, conteúdos maliciosos, falhas e riscos.
Isso é feito com o propósito de fortalecer o sistema de segurança de uma
organização e defender os ativos de TI contra diversos tipos de ameaças.

O teste de intrusão é um procedimento oficial e formalizado que


deve ser considerado útil pelas equipes de segurança e não uma tentativa
prejudicial. Faz parte de um processo realizado por um Ethical Hacking.
Embora seja útil para melhorar as estratégias de segurança cibernética, os
testes de intrusão podem não resolver todas as questões de segurança, mas
minimizam significativamente a probabilidade de um ataque bem-sucedido
e, nesse sentido, deve ser realizado de forma regular nas empresas.

21
Um teste de intrusão ajuda a determinar se um sistema ou
infraestrutura de TI é vulnerável a um ataque cibernético, se as medidas
defensivas são suficientes e quais medidas de segurança falharam no teste.
Ele mostra os pontos fortes e fracos de qualquer infraestrutura de TI em um
determinado ponto do tempo. O processo de teste de intrusão não é casual,
envolve muito planejamento e, principalmente, não deve obstruir o fluxo de
trabalho regular do ambiente corporativo.

O profissional Ethical Hacking visa identificar as vulnerabilidades e


corrigi-las antes que os hackers “maliciosos e mal-intencionados” – Black
Hackers- as explorem para executar um ataque cibernético. O Ethical
Hacking é denominado como ético porque é executado somente após a
obtenção das permissões necessárias para invadir o sistema de segurança.
O profissional que realiza a intrusão trabalha por motivos éticos e a favor da
segurança, e é assim que os hackers éticos podem ser diferenciados dos
Black Hackers.

O papel de um hacker ético é desafiador, pois ele deve invadir o


sistema sem afetar o funcionamento dele, localizando as vulnerabilidades.
O hacker ético entende e relata atividades maliciosas e sugere medidas
adequadas para derrotar os invasores em suas tentativas. Além da tarefa de
hacker o ambiente corporativo, um hacker ético também estuda outras
metodologias relacionadas à segurança e sugere sua implementação. No
geral, hackers éticos carregam o fardo da segurança de toda a infraestrutura
de TI. A seguir, observa-se algumas diferenças:

22
Pentest Ethical Hacking
O principal objetivo é encontrar O objetivo é abranger vários
vulnerabilidades no ambiente de ataques através de diferentes
destino. técnicas de hackers para encontrar
falhas de segurança.
O teste de intrusão concentra-se na Hacking ético é um termo
segurança de uma área específica abrangente e o teste de intrusão é
definida para o teste. uma das funções do hacker ético.
Espera-se que o ético hacker esteja O hacker ético deve ter um
ciente da execução de diferentes conhecimento abrangente das
metodologias e conheça o objetivo metodologias de hacking.
de cada metodologia, como e
quando executar.
É necessário ter experiência prévia O hacking ético é um passo em
em hacking ético para ser um bom direção ao teste de intrusão. A
analista. menos que se conheça as
metodologias, elas não podem
conduzir um teste.
Um hacker ético pode trabalhar em Sendo um hacker ético, você deve
um domínio e rede específica. O estar ciente dos aspectos técnicos
conhecimento esperado é mais do software e hardware e de
específico em nível de especialista. dispositivos digitais conectados à
rede.

Para resumir, o hacking ético é como aprender todos os aspectos


técnicos da condução de um veículo versus o teste de intrusão, em que há a
reunião de todas as habilidades adquiridas para dirigir o carro.

1.5. Avaliação de Vulnerabilidade vs. Pentester


Avaliações de vulnerabilidade e testes de intrusão são técnicas
usadas pelas equipes de segurança de TI e por um hacker ético para

23
identificar e resolver problemas de segurança nas redes, infraestrutura,
aplicativos e outras áreas de TI de uma empresa. Essas avaliações e testes
compartilham um objetivo comum, mas os métodos e ferramentas usados
para encontrar e corrigir falhas de segurança são diferentes.

Ambos são essenciais para uma compreensão clara e completa dos


riscos em todo o ecossistema de TI e devem ser usados juntos para
identificar e remediar possíveis vetores de ataque e pontos fracos
tecnológicos.

Uma ferramenta de análise e verificação de vulnerabilidades utiliza


uma abordagem ampla para identificar falhas e vulnerabilidades em toda a
empresa através de uma verificação de uma lista de riscos conhecidos,
fornecidos por um banco de dados de vulnerabilidades, e podem ser
executados automaticamente e de forma programada.

No geral, é composta de quatro áreas principais: interface do usuário,


lista de vulnerabilidades, mecanismo de verificação e ferramenta de
relatório, podendo priorizar vulnerabilidades com base na gravidade,
urgência e facilidade de correção, fornecendo sugestões para corrigir falhas
identificadas.

A análise e verificação de vulnerabilidades permite a identificação


precoce e confiável de pontos fracos da infraestrutura de TI e seus ativos.
Essas ferramentas dependem do fornecedor/desenvolvedor do software,
identificando regularmente as ameaças e integrando-as em um banco de
dados de vulnerabilidades. Como essas ferramentas avaliam problemas de
segurança conhecidos anteriormente, também destacam ações
restaurativas para corrigir as falhas encontradas. A avaliação da
vulnerabilidade concentra-se na identificação confiável de riscos e na
correção de falhas de TI em toda a empresa.

24
Já um Pentest (teste de intrusão), usa uma abordagem direcionada
para tentar romper a segurança e as defesas de TI, tentando simular um
ataque real por Black Hacker e outros maus atores, que buscam obter acesso
a sistemas críticos e a informações confidenciais da empresa.

No geral, um Pentest adapta-se de acordo com as


defesas/resistência encontradas no ambiente alvo e tenta encontrar novos
vetores de ataque para superar os obstáculos, ou seja, as medidas de
proteção. Um Pentest não se preocupa somente com vulnerabilidades
específicas previamente identificadas, e o hacker ético pode-se valer de uma
variedade de softwares, scripts de programação e outros métodos como
engenharia social – a arte de enganar pessoas – para penetrar nas defesas
impostas pelas equipes de segurança da informação e segurança
cibernética.

O Pentest permite uma compreensão profunda de como o


ecossistema de TI pode ser violado. Ele usa uma combinação de ferramentas
especializadas, um entendimento da abordagem de um Black Hacker e
outras técnicas para obter resultados. O Pentest se concentra em como uma
ameaça ou pessoal mal-intencionada pode realmente violar os sistemas de
TI por meio de um ataque direcionado.

Com a migração das infraestruturas locais, aplicativos e dados para


a nuvem, as avaliações de vulnerabilidades e os testes de intrusão devem
funcionar em todos os ambientes de TI. Quer a empresa opere a TI no
localmente “on-primeses” ou conte com uma nuvem privada, pública ou
híbrida, as equipes de segurança devem certificar-se de usarem ferramentas
que possam identificar vulnerabilidades onde quer que estejam, além de
lidar com as integrações e conexões entre esses ambientes. Dentre as
principais diferenças entre ambos – análise de vulnerabilidades e Pentest,
destacam-se:

25
• As avaliações de vulnerabilidade são baseadas em lista, enquanto
testes de intrusão são baseados em objetivos;

• Os testes de intrusão são adaptáveis à realidade da empresa, e as


avaliações de vulnerabilidade usam um método consistente e
baseado em ferramentas;

• As avaliações de vulnerabilidade analisam uma ampla gama de


riscos, enquanto o teste de intrusão usa uma abordagem muito mais
direcionada;

• As equipes de segurança devem usar o teste de intrusão e as


avaliações de vulnerabilidade juntas visando mensurar as ameaças
e os riscos de sua infraestrutura e ativos de TI, bem como a
maturidade de seus mecanismos de proteção e suas operações de
segurança de TI.

É importante ressaltar que uma segurança de TI menos madura


obterá mais benefícios das avaliações e verificações de vulnerabilidades.
Pois, como essas ferramentas analisam todo o ecossistema de TI, elas
expõem os vetores de ataque e falhas de segurança mais comuns, além de
oferecem relatórios abrangentes e ações de mitigação, favorecendo, assim,
a alocação de recursos de segurança de forma mais concisa e a restauração
de mecanismos de proteção mais rápidos e fáceis.

A verificação de vulnerabilidades é uma ferramenta ideal quando


uma empresa sabe que possui problemas de segurança, mas não onde eles
estão. Isso porque as ferramentas de verificação de vulnerabilidades usam
vulnerabilidades previamente identificadas e podem testar rápida e
completamente todos os ativos de TI em relação a essas vulnerabilidades.

Por outro lado, empresas que já possuem uma segurança de TI


madura, podem se valer da avaliação de vulnerabilidade na implementação

26
de novos sistemas, testando e corrigindo falhas no ambiente de
desenvolvimento ou teste antes de entrar em produção.

No caso do teste de intrusão, este torna-se mais útil para empresas


com uma forte maturidade em suas operações de segurança de TI. Como o
teste de intrusão é feito sob medida para sua infraestrutura, aplicativos e
defesas exclusivas, ele pode fornecer informações precoces sobre como um
Black Hacker comprometeria a infraestrutura e os ativos de TI em um
ambiente corporativo.

Para simplificar ainda mais o entendimento sobre a avaliação de


vulnerabilidades e o Pentest, vamos observar as vantagens e desvantagens
de cada um deles, de acordo com Sêmola (2013), análises de vulnerabilidade
identificam, quantificam e priorizam o que há de mais frágil nos sistemas, a
fim de tornar a segurança dos ativos de TI mais robusta. Esse tipo de análise
é indicado para testar uma grande quantidade de sistemas em um curto
período. Porém, para Machado (2014), uma análise de vulnerabilidade é
diferente de um Pentest porque seus objetivos são distintos. Enquanto o
teste de intrusão explora táticas específicas de invasão, a análise de
vulnerabilidades identifica todas as brechas existentes em um sistema. As
equipes de segurança da informação e segurança cibernética podem fazer
as PoC (provas de conceitos) com base nos resultados que a ferramenta
apresenta. O autor ainda destaca como principais vantagens:

• Análises com ferramentas automatizadas;

• Identificação e mitigação de riscos;

• Redução da probabilidade de vazamento de dados;

• Normalmente não causa interrupções de serviços.

Porém, como desvantagens, Machado (2014) enfatiza:

27
• Pode apresentar falsos positivos;

• Não explora a vulnerabilidade;

• Só encontra riscos já conhecidos (não reconhece Zero Day);

• O resultado pode conter erros.

Diante das considerações dos autores Sêmola e Machado pode-se


concluir que um Pentest leva mais tempo de execução se comparado a uma
análise de vulnerabilidade. Isso faz com que seja mais preciso e eficaz,
permitindo a organização e suas equipes de segurança de TI obter uma visão
real das ameaças, riscos e impactos para o modelo de negócio, além da
possibilidade de detecção de vulnerabilidades não conhecidas ou
catalogadas. Stalling (2017) cita as seguintes vantagens de um Pentest
perante a análise de vulnerabilidades: a medição do impacto das ameaças
junto ao modelo de negócio; a possibilidade encontrar vulnerabilidades não
identificadas; a geração de informações reais; a validação da postura de
segurança da organização quanto à maturidade para lidar com ameaças
atuais; e, por fim, a mistura de testes automatizados com testes manuais.

Porém, o autor ainda demonstra como desvantagens o fator


“tempo”. Segundo Stalling (2017), um Pentest leva mais tempo para ser
concebido e executado se comparado a uma análise de vulnerabilidades,
afirmando, assim, o posicionamento de Sêmola e Machado, anteriormente
citado e adaptado nesta apostila.

1.6. Tipos de Pentest


Independente da natureza do teste de intrusão, já sabemos que
principal objetivo é obter acesso restrito ou irrestrito a sistemas de
informação. Aqui vale uma ressalva, entende-se sistema de informação
como: o ambiente de TI, os servidores, as estações, os documentos e as
informações confidenciais, as caixas de e-mail e as aplicações web.

28
Bem, é comum que as empresas fiquem na dúvida sobre qual tipo de
Pentesting deve ser escolhido e realizado. Afinal, existem inúmeros. A
seguir, expomos os mais comuns, de acordo com Moreno (2017):

• Pentest Web: realiza testes de vulnerabilidades e exploração em


ambientes e aplicações WEB;

• Pentest Mobile: realiza testes de vulnerabilidades e exploração em


aplicativos e sistemas operacionais para dispositivos moveis;

• Pentest Rede: focado em explorar a infraestrutura de rede;

• Pentest Wireless: nesse tipo de teste, é examinada a rede sem fio


utilizada no ambiente corporativo, seu foco está em testar
vulnerabilidades e explorar os pontos de acessos, protocolos e
credenciais administrativas;

• Pentest Físico: aqui, a busca concentra-se nas vulnerabilidades e


exploração das falhas situadas nos controles de acessos ao
ambiente, mapeando fraquezas aos recursos físicos da empresa;

• Pentest Engenharia Social: o foco é testar “pessoas”. Ou seja,


encontrar vulnerabilidades nos próprios colaboradores e as explorar
utilizando técnicas psicológicas para tentar induzi-los a passar
informações importantes;

• Pentest Stress (DDoS): verifica a disponibilidade de uma aplicação


suportar uma demanda de requisições;

• Pentest Externo: realizado a partir da Internet para encontrar


vulnerabilidades que permitam a exploração de fora para dentro do
ambiente corporativo;

29
• Pentest Interno: normalmente alocado no cliente, para encontrar
vulnerabilidades que possam ser exploradas de dentro para fora do
ambiente corporativo.

É importante ressaltar que seja qual for o tipo de teste a ser


realizado, haverá a necessidade de definição de uma metodologia a ser
seguida.

Nesse contexto, observa-se que há vários tipos de metodologias que


podem ser utilizadas para a realização de um teste de intrusão. Isso permite
a divisão do processo, que é extremamente complexo, em uma série de
pequenas partes menores e administráveis. Essas metodologias são
conhecidas como manuais de boas práticas em um Pentest. As mais comuns
de acordo com Schultz (2018) são:

• PTES (Penetration Test Execution Standard): define e levanta a


conscientização sobre o que um Pentest real pode significar e
estabelece uma base de princípios fundamentais requeridos para a
condução dele;

• OSSTMM (Open Source Security Testing Methodology Manual):


padrão internacional baseado em métodos científicos para auxiliar
no processo de segurança, uma das metodologias mais completas e
robustas;

• ISSAF (Information System Security Assessment Framework):


busca resultados da auditoria da forma mais rápida possível e é
capaz de modelar os requisitos de controle internos para a
segurança da informação;

• OWASP (Open Web Application Security Project): é direcionada para


testes em servidores e aplicações WEB.

30
Para definir o tipo e a metodologia a ser seguida, é preciso
compreender o cliente. Esse é um passo primordial para o sucesso de um
teste de intrusão. Assim sendo, antes de definir um escopo para a
construção de um teste de intrusão, é preciso ouvir o cliente para dar no
andamento ao processo, e perguntas importantes precisam ser feitas a ele,
visando atender às suas expectativas e necessidades. Schultz (2018)
apresenta como exemplo as seguintes perguntas:

a) O que se espera do Pentest?

b) É o primeiro teste?

c) O que é considerado valioso na organização?

d) Quais as suas preocupações?

e) O teste é feito para cumprir algum requisito de compliance?


(exemplo: LPGD);

f) Existe algum sistema frágil?

g) Qual o objetivo do Pentest?

h) O que será considerado como sucesso no projeto?

i) Existe alguma limitação?

De posse das respostas, o Ethical Hacker pode estruturar o Pentest


e, respectivamente, os procedimentos necessários de acordo com as
expectativas e as necessidades do cliente.

Lembre-se: além das várias modalidades (tipos) de teste de intrusão,


você também conta com uma grande diversidade de alvos para testar contra
os mais avançados métodos e ameaças virtuais. A seguir, na Figura 9,
observe quais elementos você pode validar sua estratégia de proteção:

31
Figura 9 - Tipos de Pentest

1.7. Metodologia do Teste de Penetração


Acredito que, até aqui, você já deva ter entendido que um teste de
penetração é um método utilizado pelas equipes de segurança da
informação para descobrir e avaliar vulnerabilidades em um ambiente de TI.

Os testes de penetração, são importantes e precisam ser realizados


de forma eficiente e seguindo uma metodologia. Nesse sentido, há o
questionamento: o que é metodologia?

32
Segundo o artigo publicado por Porto (2019), no site
https://escolaeducacao.com.br/, o termo metodologia é derivado de método, do
latim “methodus”, cujo significado representa o caminho ou a via para a
concretização de algo. Método é, portanto, o meio pelo qual se percorre para
alcançar um determinado fim ou a condição fornecida para se chegar a
respectivo conhecimento.

A metodologia deve auxiliar a explicar não apenas os produtos da


investigação científica, mas principalmente seu próprio processo, pois suas
exigências não são de submissão estrita a procedimentos rígidos, mas antes
da fecundidade na produção dos resultados (BRUYNE, 1991, p. 29).

Segundo Strauss e Corbin (1998), o método de pesquisa é um


conjunto de procedimentos e técnicas utilizados para se coletar e analisar
os dados. O método fornece os meios para se alcançar o objetivo proposto,
ou seja, são as “ferramentas” das quais fazemos uso na pesquisa, a fim de
responder nossa questão.

Um teste de intrusão é constituído de cinco fases, que possuem


métodos pré-definidos que auxiliam na produção dos resultados.

Modalidades de um Pentest
Quanto as modalidades de um teste de intrusão, ou seja, métodos
que podem ser adotados para a realização de um teste de intrusão, podemos
classificá-los de três formas:

• White Box – modalidade de teste, na qual as informações sobre todo


ambiente de TI da organização são previamente fornecidas ao
Ethical Hacker. No geral, são testes mais extensivos e com
abrangência maior;

• Black Box – modalidade de teste, na qual busca-se a maior


similaridade em comparação a uma invasão real, ou seja, é o tipo de

33
teste mais próximo de uma invasão real. Isso porque nenhuma
informação sobre o ambiente de TI é fornecida ao Ethical Hacker,
fazendo com que este adote métodos específicos para adquirir o
máximo possível de informações sobre os ativos e recursos de TI
disponíveis no alvo, identificando os pontos fracos
(vulnerabilidades) e os possíveis impactos associados à exploração
desses pontos fracos;

• Gray Box – modalidade de teste em que há um “meio termo” entre o


que se sabe e o que não se sabe sobre o alvo, ou seja, o Ethical
Hacker possui algumas informações sobre o ambiente de TI do alvo
a ser analisado e outras não. Esse tipo de teste é realizado para
analisar possíveis falhas de segurança advindas do ambiente interno
da organização, tais como: verificação de permissões de acesso,
compartilhamento de recursos e sistemas etc.

Figura 10 - Diferenças entre Black, Gray e White Box.

34
2
Capítulo 2. Fases do Teste de Penetração
Antes de apresentar os conceitos relacionados às fases de um teste
de penetração, precisamos entender que para cada uma das fases será
necessária a utilização de ferramentas e técnicas específicas e aderentes à
fase em questão. Porém, adquirir as técnicas necessárias requer por parte
das equipes de segurança um processo de estudos contínuo e acumulativo.

Quanto às ferramentas necessárias, as equipes de segurança devem


realizar um trabalho árduo de pesquisa junto a diversos fornecedores, bem
como configurá-las de forma correta em um sistema operacional. Mas, como
dizem por aí... “seus problemas acabaram!”.

Para facilitar esse trabalho árduo um grupo de especialistas em


segurança da informação e segurança cibernética fundaram uma
organização denominada Ofensive Security. Essa organização tem como
objetivo oferecer serviços de treinamento, certificação, consultoria e
fornecimento de conjuntos de soluções, produtos e ferramentas de
segurança que visam atender às necessidades de diversas entidades, tais
como: governos, empresas e pessoas entusiastas em segurança em âmbito
global.

Entre os produtos e ferramentas desenvolvidos pela Ofensive


Security, citamos o site Exploit Data Base, o qual mantém um banco de
dados atualizado de exploits utilizados para explorar vulnerabilidades em
diversos tipos de sistemas de TI e uma distribuição Linux, denominada KALI
Linux – uma espécie de “canivete suíço” que possui diversas ferramentas
separadas em grupos que, por sua vez, correspondem a cada uma das fases
de um teste de penetração, incluindo um sistema operacional completo
Open Source.

36
Atualmente, o Kali Linux é adotado mundialmente por diversas
equipes de segurança para realização de auditorias em segurança da
informação e segurança cibernética, permitindo que elas executem testes
de penetração em seus ambientes de TI.

Como se trata de um kit completo para realizar um Pentest,


mundialmente utilizado por Ethical Hackers, iremos em nossa disciplina
usá-lo como base para apresentarmos as ferramentas e técnicas. Assim
sendo, é importante que você realize o download da última versão do Kali
Linux no site http://kali.org e instale todo o sistema operacional em seu
computador por meio de uma máquina virtual através dos softwares de
virtualização, como por exemplo o Virtual Box ou VMWare Player – ambos
podem ser encontrados na internet facilmente.

Outro ponto importante a comentar, está relacionado à instalação


do Kali Linux e suas ferramentas. Essa disciplina não irá ensinar a instalar e
configurar a distribuição Kali Linux fornecida pela Ofensive Security. Isso
porque o propósito da disciplina é o de conceituar temas relacionados a
Ethical Hacker e demonstrar algumas das principais ferramentas e técnicas
utilizadas durante as fases de um teste de penetração.

Como dica, na internet existem diversos guias e tutorias que podem


auxiliar você a instalar e configurar a distribuição Kali Linux, bem como os
processos de instalação e criação de máquinas virtuais. Nesse contexto,
caso tenha dificuldades, recorra a esses guias e tutoriais, que são facilmente
encontrados na internet através dos mecanismos de busca como Google,
Yahoo, Bing etc.

A seguir, vamos conceituar e explorar as fases de um teste de


penetração e, respectivamente, nos capítulos seguintes, apresentar e
demonstrar algumas das principais ferramentas e técnicas utilizadas
durante o processo de um teste de penetração. Preparados? Vamos lá.

37
No geral, um teste de penetração, possui entre cinco ou seis fases,
dependendo da metodologia a ser seguida, e cada fase poderá receber
diversas nomenclaturas. Como exemplo, podemos citar a primeira fase de
um teste de penetração. Essa fase costuma ser denominada por alguns
autores e Ethical Hackers como: Informação do Alvo. Já para outros autores
e Ethical Hackers, essa fase pode ser denominada como: Coleta de
Informações ou Reconhecimento.

Vale ressaltar que independente da nomenclatura utilizada para


nomear as fases de um teste de penetração, os objetivos, as ferramentas e
as técnicas são as mesmas. Isso significa que não importa o nome dado à
fase, mas sim o conceito, objetivo e propósito que essa fase se destina a
cumprir. Sendo assim, vamos tratar o nosso Pentest com base em seis fases,
nas quais teremos:

Figura 11 - Fases do Pentes

Planejamento do Reconhecimento Análise de


Teste do Alvo Vulnerabilidades

Eliminação /
Exploração; Pós Exploração;
Reporte

2.1. Fase 1: Planejamento


Certamente, trata-se de uma etapa primordial de um teste de
penetração, pois é nesse momento que será definido o escopo do projeto, ou
seja, de todo o teste de penetração, além das assinaturas de contrato e

38
acordos relacionados ao projeto, como por exemplo os acordos de
confidencialidade, os contratos que garantem ao executor do teste as
devidas autorizações para a realização do teste por parte da alta
administração da empresa, entre outras questões legais.

Entre as definições do escopo do projeto, podemos citar: o que será


testado, quais as formas (tipos) de testes serão realizadas, qual a
abrangência do teste, que tipos de relatórios serão entregues ao final do
teste, quais serão as premissas e restrições do teste etc.

Conforme comentamos, trata-se de uma etapa crucial e


importantíssima. Entretanto, muitos esquecem de definir o escopo ou criam
escopos mal definidos. Essa falha em definir o escopo ou de não planejar
adequadamente os objetivos, partes envolvidas, critérios, premissas e
restrições podem causar erros, ou resultados inadequados, ou fora das
expectativas e necessidades da empresa.

É importante ressaltar que, nessa fase, as questões legais devem ser


decididas, e o contrato de trabalho deve ser elaborado contendo todas as
informações sobre o teste que será realizado, os prazos e os valores. Essa
ação garante a ambas as partes uma conformidade jurídica, ética e um
caráter profissional.

Lembre-se de que um teste de intrusão é algo sério e,


provavelmente, dados, informações e sistemas críticos serão envolvidos
durante o teste, então cabe ao Ethical Hacker proceder com ética por meio
da confecção de um contrato legal entre as partes envolvidas, ou seja, o
cliente (empresa) e o Ethical Hacker.

Um Ethical Hacker deve buscar uma assessoria jurídica para auxiliá-


lo na elaboração dos contratos, acordos de confidencialidade e demais
documentos, visando a salvaguarda de suas ações e evitando que essas
ações sejam confundidas com as ações de um criminoso virtual.

39
2.2. Fase 2: Reconhecimento do Alvo
Aqui, nada pode ser deixado de lado. Isso porque o máximo possível
de informações sobre o alvo deverá ser coletado para garantir o objetivo do
teste de intrusão. Trata-se da realização da maior parte do trabalho realizado
pelo Ethical Hacker durante todo o teste de intrusão, garantindo, assim, a
maior probabilidade de acesso ao alvo auditado.

Todos os dados e as informações relacionadas ao segmento da


empresa, ativos de TI como: servidores, roteadores, firewalls, sistemas de
informações, informações sobre os funcionários, e-mails, telefones,
parceiros e fornecedores relacionados à empresa e, até mesmo o lixo, devem
ser coletadas, organizadas e, posteriormente, analisadas de forma
minuciosa pelo Ethical Hacker.

Nessa etapa, podemos aplicar a engenharia social – a arte de


enganar as pessoas, visando obter dados e informações significativas e
relevantes às próximas fases do teste de intrusão. Pode até parecer
bobagem, mas, muitas vezes, um simples telefonema realizado a um
funcionário que não possui nenhum tipo de treinamento ou esteja
conscientizado quanto à importância da proteção de dados e informações
pode já garantir a exploração com sucesso de uma infraestrutura de TI.

As ferramentas de busca na internet como Google, Yahoo, Bing, e as


redes sociais como Facebook, Twitter, LinkedIn etc. podem também auxiliar
na busca de informações sobre o alvo em poucas horas. Isso porque, não só
a empresa, mas também seus colaboradores acabam publicando de forma
intencional, ou não, informações que podem comprometer toda a segurança
de TI de uma organização, sem levar em conta o sigilo e a proteção dos
dados de uma empresa.

Alguns estudiosos do assunto e especialistas em segurança da


informação, ainda citam que a falta de treinamento e aperfeiçoamento dos

40
colaboradores envolvidos em processos críticos da empresa acabam sendo
suscetíveis às investidas de ameaças, fornecendo informações valiosas.

É importante que o Ethical Hacker utilize as mesmas artimanhas que


um Black Hacker durante a fase de reconhecimento para obter informações
e poder mensurar as falhas que poderiam ser exploradas no futuro por um
Black Hacker.

2.3. Fase 3: Análise de Vulnerabilidades


Também reconhecida como fase de varredura de vulnerabilidades,
essa etapa destina-se a descobrir, por meio de ferramentas de análise de
vulnerabilidades como OpenVas e Nessus, as vulnerabilidades “pontos
fracos” do alvo a ser testado.

Realizar a varredura de vulnerabilidades nos hardwares utilizados,


servidores, firewalls, sistemas de informação, sistemas operacionais, tipo de
serviços utilizados, portas de conexão existentes e abertas, entre outras
informações levantadas na etapa anterior é essencial para garantirmos a
exploração do sistema-alvo.

A verificação, por exemplo, de sistemas de IDS presente na


infraestrutura de TI da organização deve ser analisado de forma mais
minuciosa pelo Ethical Hacker. Isso permitirá a aplicabilidade de
mecanismos engenhosos relacionados à dificuldade imposta pela equipe de
segurança. Previamente, o executor do teste sabe que várias regras devem
existir no firewall, por exemplo.

2.4. Fase 4: Exploração (Ganho de Acesso)


Fase em que o alvo é violado, ou seja, comprometido, com base nas
vulnerabilidades analisadas pelo Ethical Hacker. Nesse momento, o Ethical
Hacker pode explorar o ambiente interno da organização, pois já venceu as
barreiras de proteção.

41
Nessa fase, o Ethical Hacker pode, por exemplo: verificar as
estruturas de diretórios e arquivos contidos em um sistema operacional, as
configurações adotadas em senhas, os compartilhamentos de redes
existentes na infraestrutura de TI, os bancos de dados existentes e várias
outras ações que permitam extrair o máximo de dados e informações dos
sistemas que a empresa utiliza.

Lembre-se de que o sucesso da fase de exploração depende da


realização com sucesso das duas outras fases anteriores – reconhecimento
do alvo e análise de vulnerabilidades. Diversas ferramentas e técnicas serão
utilizadas durante essa fase. Como exemplo, podemos citar:

• Ferramentas que possibilitam decodificar hashes de senhas;

• Ferramentas que possibilitam ataques de força bruta a sistemas de


acesso;

• Ferramentas que possibilitam o mapeamento de portas de


comunicação;

• Ferramentas que possibilitam explorar falhas e vulnerabilidades;

• Técnicas de engenharia social para coletar dados importantes, como


senhas;

• Entre outras.

2.5. Fase 5: Pós-Exploração (Mantendo Acesso)


Uma vez realizado o acesso ao sistema alvo, por meio das técnicas
de análise do vulnerabilidades e exploração, é preciso que o Ethical Hacker
mantenha esse acesso. Isso é realizado por meio da instalação de malwares
do tipo Backdoor e Rootkit.

A implantação de tais mecanismos que garantam o retorno a


qualquer momento é essencial para futuras explorações ao sistema alvo.

42
Essa prática realizada pelo Ethical Hacker, além de possibilitar o seu
retorno, consolida todo o trabalho realizado anteriormente, validando,
assim, o sucesso do teste de intrusão.

Deve-se compreender que tais procedimentos podem causar ao


sistema alvo rupturas e novas brechas de vulnerabilidades, que podem
também ser exploradas por ameaças. Nesse sentido, é importante que o
Ethical Hacker tenha total conhecimento do que está sendo feito, a fim de
evitar problemas junto aos ativos de TI que possam prejudicar o
funcionamento da organização como um todo.

Há casos em que o Ethical Hacker pode até corrigir deficiências e


outras vulnerabilidades encontradas pelo caminho, visando deixar uma
brecha única e exclusiva que somente ele poder utilizar.

2.6. Fase 6: Eliminação dos Rastros/Reporte


A invasão a um ambiente de TI sem a devida autorização da empresa
é considerada uma ação criminosa por várias áreas jurídicas. Sabendo disso,
os Black Hackers aplicam técnicas criteriosas a fim de eliminar as “pegadas”
deixadas durante a fase de exploração a um sistema alvo.

Um Ethical Hacker também realiza essas técnicas a fim de verificar


a eficiência dos mecanismos de proteção quanto ao registro de “logs” que
possam comprovar e validar o acesso não autorizado ao sistema alvo
durante um teste de intrusão.

As ações realizadas, nessa fase, contribuem de forma significativa


para a correção dos mecanismos utilizados para rastrear as ações realizadas
pelas ameaças e possibilitam a realização de estudos e pesquisas que
trazem como resultado o aumento das competências e habilidades das
equipes de segurança.

Conhecer as “pegadas” deixadas por um invasor é essencial para


mensurar o quanto o sistema alvo foi comprometido e o que foi afetado.

43
Nesse contexto, as equipes de segurança e um Ethical Hacker devem pensar
e agir como os invasores, entendendo seus métodos de operação e as
tecnologias utilizadas durante a invasão. Essa ação contribuirá no processo
de investigação de incidentes de segurança.

A emissão de relatórios é outra atividade contida nessa etapa e


considerada por muitos Ethical Hackers a parte menos “divertida” de todo
processo de invasão. Porém, possui uma importância significativa. Isso
porque os relatórios gerados possibilitam às equipes de segurança e à alta
administração da empresa compreender as vulnerabilidades que foram
exploradas. Daí, a importância da confecção de relatórios detalhados
contendo todos os processos e procedimentos realizados durante o teste e,
consecutivamente, os ativos comprometidos.

Atenção: o Ethical Hacker deve detalhar no relatório diversos tipos


de informações, como por exemplo quais métodos foram utilizados para
invadir e comprometer o sistema alvo, as evidências que comprovam as
vulnerabilidades exploradas, os impactos causados, as ferramentas
utilizadas e por fim as sugestões de correções necessárias que devem ser
adotadas e aplicadas para mitigar as vulnerabilidades e o risco.

44
3
Capítulo 3. Ferramentas e Técnicas Ethical Hacker
Neste capítulo, iremos estudar algumas das principais ferramentas
e técnicas utilizadas para a realização de um teste de penetração. Vale
ressaltar que um Ethical Hacker deverá adquirir habilidades e competências
em diversos planos para realizar o seu trabalho. Para isso ele pode com um
“cardápio” completo que contém milhares ferramentas e técnicas
disponíveis.

Como “cardápio” do Kali Linux é bem completo, acaba sendo difícil


abordarmos e aprendermos todas as ferramentas e técnicas contidas no Kali
Linux em pouco tempo. Nesse sentido, optaremos em apresentar as mais
comuns e utilizadas que, por sua vez, já servem como uma base inicial para
a sua caminhada na aquisição de habilidades e competências para se tornar
um Ethical Hacker.

Por fim, gostaria de salientar que um Ethical Hacker precisa expandir


sua base de conhecimentos, e para isso ele precisará realizar um trabalho
intensivo de pesquisa, dedicar-se a horas de estudos complementares e,
principalmente, ter força, foco e fé!

Porém, antes de iniciarmos, vamos relembrar alguns conceitos sobre


o protocolo TCP/IP. Afinal, trata-se do protocolo utilizado por todos os
dispositivos computacionais que se conectam à uma rede e base para
diversos outros sistemas, serviços e demais protocolos.

3.1. Reconhecimento (Footprinting)


O Footprinting é um método utilizado por um Ethical Hacker para
obter dados e informações a respeito de um sistema alvo. O conceito
“Footprinting” advém do círculo militar, no qual busca-se estudar o terreno

46
de maneira estratégica antes que esse possa ser atacado e conquistado, por
meio de táticas de reconhecimento detalhado.

O Ethical Hacker ou Black Hacker, durante o Footprinting, obtém


dados e informações importantes sobre o sistema alvo. Isso possibilita
minimizar dúvidas sobre o sistema alvo e auxilia na criação de estratégias, e
principalmente a escolha correta das ferramentas e técnicas necessárias
que permitirão sucesso durante o teste de penetração.

Lembre-se de que no Footprinting muitos dados e informações


podem ser obtidos através de meios públicos, como por exemplo os sites de
pesquisa junto à internet tais como o Google e o Yahoo. Encontrar
informações sobre o alvo princípio pode ser algo difícil em uma primeira
análise. Porém, é muito comum a existência de dados e informações em
relação a uma pessoa ou empresa na internet. Basta saber procurá-las de
forma correta!

Como exemplo, a utilização de técnicas baseadas em Google


Hacking, método que permite que sejam utilizadas expressões regulares na
barra de busca da ferramenta de pesquisa online do Google, possibilitando
encontrar dados e informações mais precisas e relevantes em milhares de
centenas de fontes (sites).

Vamos a um exemplo prático: suponha que o seu desejo seja


encontrar apenas informações que contenham em uma determinada palavra
– no caso “admin”. Para tal, basta colocar na barra de busca do Google a
expressão “intext:” seguido da palavra. Exemplo: intext:admin e pronto! O
Google irá apenas mostrar os resultados que contenham “admin” no texto,
conforme observado na Figura 12.

47
Figura 12 - Resultado da pesquisa utilizando a expressão intext:

Outro exemplo que podemos citar utilizando expressões no Google


é o “index of/*, que possibilita localizarmos informações não indexadas em
diversos domínios e sistemas alvo, que, no geral, expõe vulnerabilidades.
Observe as figuras 13 e 14:

Figura 13 - Resultado da pesquisa utilizando a expressão index of/*

48
Figura 14 - Acesso ao conteúdo

Conforme observado, a simples expressão “index of/*” permite


localizar conteúdo não indexado e, consecutivamente, a busca de
informações que, muitas vezes, passam despercebidas pelas equipes de
segurança.

3.1.1. Engenheiro Social


Reconhecida como uma das técnicas mais utilizadas para a coleta de
informações, a engenharia social permite ao Ethical Hacker explorar
vulnerabilidades relacionadas ao fator humano.

Embora o homem esteja em meio a um processo evolutivo, ele ainda


possui vulnerabilidades relacionadas à sua natureza. Como exemplo,
podemos citar a ignorância, a credulidade, a inocência, o medo, a culpa, a
curiosidade, a confiança e muitos outros fatores que podem ser exploradas
por indivíduos mal-intencionados.

Observe o exemplo a seguir: você encontra um pendrive


abandonado em um local qualquer no seu horário de almoço, daí sua
primeira ação é a de verificar se há alguma identificação que revele de quem
é esse pendrive, correto? Porém, percebe-se que há uma etiqueta escrito
“arquivo confidencial”. Dessa forma, a grande pergunta será: vejo ou não vejo

49
o conteúdo deste pendrive? Observe que, nesse momento, pelo menos o
fator “curiosidade” exposto será o fator motivador que irá explorar uma
vulnerabilidade humana.

Agora, vamos supor que você foi tomado pela curiosidade de abrir o
conteúdo existente no pendrive encontrado, inserindo-o em seu
computador no trabalho. Desse modo, caso o arquivo contido no pendrive
seja um arquivo malicioso, por exemplo, um malware do tipo Backdoor ou
Trojan, todas as medidas de proteção implementadas pelas equipes de
segurança no ambiente corporativo, tais como firewall, IPS, IDS e outras,
não servirão de nada. Isso porque a vulnerabilidade explorada está
relacionada ao fator humano.

Existem diversas técnicas ativas e passivas que um Ethical Hacker


ou Black Hacker pode utilizar tendo como ponto de partida a engenharia
social para obter dados e informações de pessoas. O pendrive deixado
propositalmente em um local é um exemplo de uma técnica passiva. Já um
telefonema para um funcionário passando-se por um técnico pode ser
considerado uma técnica ativa de engenharia social.

Observe, a seguir, uma situação hipotética de engenharia social


através de uma técnica ativa via um simples telefonema a um funcionário:

50
É importante ressaltar que a melhor tática para mitigar a engenharia
social e tratar as vulnerabilidades relacionadas ao fator humano são as
políticas de treinamentos e conscientização envolvendo todos os
colaboradores da organização.

51
3.1.2. Netcraft
Conforme mencionei, às vezes, as informações que os servidores
web e as empresas de web hosting reúnem e tornam publicamente
disponíveis podem dizer muito a respeito de um site ou empresa. Por
exemplo, uma empresa chamada Netcraft faz o log do uptime e faz consultas
sobre o software subjacente. (Essas informações estão publicamente
disponíveis em http://www.netcraft.com/.) O Netcraft também provê outros
serviços e suas ofertas relacionadas ao antiphishing e segurança cibernética
são de particular interesse para a segurança de informações. Por exemplo, a
figura 13 mostra o resultado ao fazermos uma consulta no endereço
http://www.igti.edu.br.

Observe que as diversas informações que puderam ser colhidas por


meio de uma simples pesquisa. Exemplo: o domínio foi registrado por meio
do GoDaddy, tem um endereço IP igual a 132.148.194.190 e está hospedado
em um servidor Linux com um servidor web Apache. De posse dessas
informações, ao efetuar um teste de invasão em igti.edu.br, podemos
começar excluindo as vulnerabilidades que afetem somente servidores
Apache. Ou, se quisermos tentar usar a engenharia social para obter
credenciais para o site, poderíamos escrever um e-mail que pareça ter sido
enviado pelo GoDaddy, pedindo que o administrador faça login e verifique
alguns parâmetros de segurança do site junto ao servidor Linux ou Apache.

52
Figura 15 - Resultado da pesquisa utilizando Netcraft

3.1.3. Lookups com Whois


Todos os registradores de domínio mantêm registros dos domínios
que eles hospedam. Esses registros contêm informações sobre o
proprietário, incluindo informações de contato. Por exemplo, se
executarmos o comando whois no shell do nosso Kali Linux para solicitar
informações sobre igti.edu.br, vamos obter muitas informações, como por
exemplo: o CNPJ da empresa, dados como o nome e o e-mail dos
responsáveis administrativos e técnicos pelo domínio, a localidade em que
esse domínio foi registrado, data de criação, modificação e vencimento do
domínio etc.

53
Figura 16 - Resultado obtido com o comando whois

Essas informações podem ser mascaradas através da utilização de


servidores proxy que, por sua vez, ocultam detalhes pessoais das
informações. No entanto, podemos ver os servidores de domínio, e com isso
obter outros tipos de dados e informações do alvo.

3.1.4. Reconhecimento com DNS


Podemos usar servidores DNS (Domain Name System) para obter
informações sobre o alvo, especificamente relacionadas aos domínios de
internet pertencentes ao mesmo e que podem conter diversos tipos de
sistemas e aplicações sendo executados. Os servidores DNS traduzem o URL
legível aos seres humanos em um endereço IP. Por exemplo, podemos usar
uma ferramenta de linha de comando como o nslookup, para obter o
endereço IP do domínio igti.edu.br.

54
A execução de outros comandos no shell, como por exemplo o
comando ping podem retornar esse tipo de informação. Mas, lembre-se que
o propósito é diferente. Por exemplo, o comando ping tem como propósito
verificar se um determinado host se encontra ativo, através do protocolo
ICMP e o envio de pacotes ICMP_ECHO e o recebimento de mensagens
ICMP_ECHO_REPLAY.

Também podemos dizer ao nslookup para descobrir os servidores de


e-mail para o mesmo site ao procurar registros MX, conforme demonstrado
na Figura 17.

Figura 17 - Resultado da pesquisa do MX utilizando o nslookup

Observe que, no caso exposto, o nslookup informa que a empresa


utiliza como servidores de correio eletrônico os serviços fornecidos pela
Google.

55
Outro utilitário para coletar informações de um DNS é o “host”.
Podemos pedir ao “host” que forneça os servidores de nome para um
domínio por meio do comando host -t ns domínio.

Administradores de sistemas, ao configurar servidores DNS,


normalmente adotam como medida de backup a inserção de um servidor
principal de nomes e um servidor secundário com isso realizam a
transferência de zonas entre DNS.

Não há melhor maneira de preencher todas as entradas do servidor


DNS secundário do que consultar o servidor principal e solicitar todas as
suas entradas. Infelizmente, muitos administradores de sistema
configuram as transferências de zona DNS de forma não segura, de modo
que qualquer pessoa pode transferir os registros de DNS de um domínio para
si e assim obter informações que não deveriam estar à vista de qualquer um.

Nesse contexto, podemos ainda utilizar outro comando poderoso o


“DIG” para obter informações sobre um determinado alvo, incluindo as
zonas de DNS. O dig (Grupo de Informações de Domínio) é um utilitário
flexível, utilizado para obter informações junto aos servidores de nomes
DNS. Seu funcionamento consiste em realizar consultas junto ao DNS e
apresentar as respectivas respostas.

Equipes de segurança e administradores de rede e sistemas utilizam


o dig para encontrar problemas de DNS devido à sua flexibilidade e facilidade
de uso. Sendo considerado por muitos uma ferramenta muito poderosa.

É importante termos em mente os tipos de registros mais comuns


que serão apresentados após a execução do comando dig. De acordo com a
RFC1035, disponível em https://tools.ietf.org/html/rfc135 são eles:

56
• A – Associa um nome a um endereço IP;

• NS (NameServer) – define quais servidores são os autoritativos para


o domínio;

• SOA (Start-Of-Authority) – detalhes da autoridade do domínio.


Descreve o servidor que tem autoridade sobre a zona, além do
contato técnico, número serial e outros campos de timeout;

• MX (Mail eXchanger) – define os servidores de correio (e prioridade)


para o domínio;

• PTR (Pointer) – retorna o nome associado a um endereço IP;

• CNAME (Canonical NAME) – usados para criar apelidos para o


domínio;

• TXT (TeXT) - usados para descrições, comentários, observações de


um domínio. Também são usados para definir configurações de SPF.

Abaixo, alguns exemplos de saída do comando dig:

Figura 18 - DIG - resolução nome (A)

57
Figura 19 - DIG − resolução servidor mail (MX)

Abaixo, exemplificaremos a coleta de uma zona de DNS de um


domínio utilizando a ferramenta DIG.

Nossos passos foram, em primeiro lugar, descobrir quais são os


servidores DNS que o alvo possui, em segundo verificar a transferência de
zonas está habilitada e sem nenhum tipo de proteção que impeça que ocorra
a cópia das informações contidas no DNS.

Figura 20 - Resultado obtido após a execução do DIG.

58
Por questões éticas, ocultamos o domínio, mas percebe-se
claramente que esse domínio possui configurado a transferência de zonas
entre seus servidores DNS, prática comum e necessária para garantir a
disponibilidade do serviço de DNS da empresa. Porém, a questão está
relacionada a não proteção da transferência de informações entre os
servidores primário e secundário de DNS, permitindo, assim, um Black
Hacker coletar informações para si, apenas direcionando a saída das
informações para um arquivo texto, por exemplo, e posteriormente examiná-
lo com calma para entender os serviços disponíveis como: e-mail, web, ftp
etc.

Figura 21 - Cópia das informações contidas no DNS

Outra ferramenta interessante que ajuda a coletar informações


sobre domínios é o DNSMAP. O DNSMAP permite o Ethical Hacker descobrir
subdomínios relacionados ao domínio principal. Um ponto interessante
dessa ferramenta é que ela possui uma wordlist (lista de palavras) interna,
utilizada para realizar as consultas de pesquisas junto aos DNS. Porém, para
exemplificar, vamos criar nossa própria lista. Para isso, siga os seguintes
passos:

• Entre no diretório /tmp no Kali;

• Crie com o comando touch o arquivo lista.txt;

59
• Edite o arquivo lista.txt com o comando vi e acrescente algumas
palavras como por exemplo: curso, ftp, painel, admin, canvas, mysql
e salve o arquivo;

• Agora, digite na linha de comando do shell: dnsmap igti.edu.br -w


lista.txt.

Observe que o resultado da consulta mostrou a existência dos


subdomínios admin e inclusive o endereço IP. Com isso obtivemos, mais
uma vez, informações importantes que poderão ser utilizadas futuramente.

3.1.5. Detectando os Alvos Ativos


Saber se um determinado alvo (sistema, servidor, domínio etc.) está
ativo, ou seja, em pleno funcionamento é essencial. Afinal, como podemos
testar algo que se encontra “off-line”? Para auxiliar nesta tarefa, podemos
utilizar vários comandos, entre os quais destacamos: PING, FPING e
HPING3.

Partindo do ponto que é de comum conhecimento de todos vocês a


função e funcionalidade do comando PING, vamos demonstrar os demais.

• FPING – essa ferramenta permite realizar testes de ping em vários


hosts ao mesmo tempo. Para tal basta criar um arquivo denominado
por exemplo “alvos.txt”, inserir dentro deste arquivo os endereços IP
de diversos host alvos que você deseja saber se estão ativos e depois

60
executar o comando: fping -f alvos.txt. Endereços IP que
apresentarem no final “is alive” significa que estão ativos.

• HPING3 – essa ferramenta é um pouco mais poderosa que o FPING.


Isso porque é possível detectar hosts, regras de firewall e realizar
análises de portas. Abaixo, realizar uma análise em modo --V
verboso, --scan na porta 80, host alvo 192.168.82.37 (no caso o
servidor apache de nosso Kali Linux).

Como resultado de nossa busca, temos o host ativo e a porta 80


HTTP ativa. O Hping3, um software que monta datagramas para simular
comunicações, a fim de testar o processo Three-Way Handshake do
protocolo TCP, e a flag SYN, enviando requisições de pacotes através de
diferentes tipos de payloads e headers. No caso, ele utiliza a biblioteca
libpcap para realizar essa atividade, conseguindo enviar pacotes através de
filtros pré-estabelecidos. Vamos a outro teste básico para compreendermos
melhor o HPING3.

Observe que ele retornou informações como qualquer ping, mas se


verificarmos minuciosamente veremos informações importantes, como
flags. Isso tem tudo a ver com o payload, quando no TCP estamos realizando
o processo Three-Way-handShake, as portas do sistema retornam flags

61
junto ao payload definindo se elas estão disponíveis, ou não, para conexão,
por exemplo, a flag=SA significa disponível, já a flag=RA significa
indisponível. Agora, faremos outro teste, pela qual bloquearemos a
comunicação ICMP utilizando o firewall Iptables do Kali Linux.

Neste momento, há a comunicação. Agora, vamos aplicar o bloqueio


via iptables e posteriormente testar utilizando o comando ping.

Observe que não há resposta devido ao filtro de pacotes pelo firewall,


pois o firewall está filtrando comunicações ICMP, utilizaremos então o
Hping3 para o envio de requisições do tipo SYN.

Note que, ao utilizar o HPING3 com o método furtivo SYN, a


ferramenta permite a consulta mesmo que existam regras de bloqueio para
pacotes ICMP.

62
3.1.6. Fingerprint
Outro método importante realizado na fase de reconhecimento é o
Fingerprint. Esse método consiste na tentativa de obter dados e
informações sobre os sistemas operacionais que estão sendo executados no
alvo. Por meio da captura de banners, um invasor ou Ethical Hacker pode
determinar qual a melhor alternativa para explorar o alvo, através do
conhecimento, por exemplo, de informações como: versão do sistema
operacional, releases do sistema operacional e outras.

Fique sabendo que não só os sistemas operacionais possuem


banners que informam diversos dados, mas também outros sistemas e
aplicativos, como SSH, Telnet, Apache, SNMP etc., fornecem informações por
meio de banner que, por sua vez, podem expor possíveis vulnerabilidades,
que posteriormente são utilizadas por um exploit na fase de exploração
(ganho de acesso).

NMAP – criado por Gordon Fyodor Lyon, é um software que permite


o escaneamento e a análise de portas lógicas, incluindo a detecção de seus
banners. Em um teste de intrusão, o Ethical Hacker utiliza NMAP em várias
fases do teste, porém aqui mostraremos sua utilização quando o assunto é
o Fingerprint. Para verificar a versão do NMAP do seu Kali Linux, basta digitar
no shell o seguinte comando: nmap -O (letra).

Agora, vamos a uma consulta simples, observe o resultado e tente


identificar as informações (banners) apresentados após a consulta.

63
Note que além do nmap retornar as portas que estão abertas,
mostrou também o sistema operacional.

O Nmap possui uma série de funções específicas, sendo que


especificaremos a função – PO, que desativa o método utilizado pelo nmap
para identificar se um host está ativo, enviando um ICMP tipo 8 e um TCP
ACK destinado à porta 80. Nas versões mais recentes, esse método só
caracteriza nas varreduras mais específicas e não nas varreduras de portas.
No entanto, este método possibilita a identificação do Nmap, pelo IDS ou
IPS de um alvo, alertando, assim, a equipe segurança que, por sua vez,
conseguirá verificar a sua atividade.

Como já mencionado, podemos extrair banners de outros serviços


que estão rodando na máquina alvo, basta o simples comando nmap –sV, ou
seja, s de scan e V de versão. Para a leitura de banners, necessitamos de uma
conexão, portanto podemos classificar os banners de aplicações TCP como
scanners TCP Connect. Nas versões mais recentes do Nmap, podemos
executar a leitura de banners implementando a opção –A. Repare a nossa
próxima consulta em que são exibidas as versões relativas aos serviços.

64
No exemplo a seguir, utilizamos o nmap para detectarmos o banner
do protocolo SSH do alvo. Observe:

Outra ferramenta muito útil que podemos utilizar nas táticas de


fingerprint é o NETCAT, conhecida pelos analistas de segurança como

65
canivete suíço. É muito poderosa, com ela também podemos realizar
varreduras de porta e conexões reversas.

Sua utilização é muito simples, no comando abaixo tentaremos a


visualização de banner na porta 80 de nosso servidor, lembre-se de executar
o comando em modo verboso –v, para que você possa visualizar a mensagem
(UNKNOWN) [ip] 80 (www) open, depois da mensagem bastará digitar GET
HTTP para o retorno do banner, conforme mostrado a seguir:

Outra ferramenta muito interessante é o SPARTA. Trata-se de um


aplicativo GUI python que simplifica o teste de penetração da infraestrutura
de rede, auxiliando a pessoa ou equipe que realiza o teste de penetração na
fase de varredura e exploração. Esse framework permite a economia de
tempo relacionados a instalação e a configuração de comandos e o uso de
outras ferramentas, permitindo, assim, o Ethical Hacker gastar mais tempo
concentrando-se na análise dos resultados.

Sparta pode verificar um intervalo de endereços IP em uma rede,


mas também pode verificar nomes de domínio de sites. Depois de conhecer
o intervalo de endereços IP na rede ou no aplicativo Web que deseja
verificar, clique em "Clique aqui para adicionar host (s) ao escopo" na guia
"Digitalizar".

66
Figura 22 - Interface Sparta

Uma varredura do Nmap será realizada imediatamente, investigando


as portas padrão para verificar se alguma coisa está aberta e disponível.
Observe que os resultados apresentados serão fantásticos! Podemos citar
como exemplo a captura telas, portas, protocolos e muito mais.

67
Figura 23 - Resultados obtidos com Sparta

Podemos observar nas figuras 23 e 24 os resultados realizados após


um reconhecimento realizado pelo Sparta. No caso apresentado,
descobrimos que existem três serviços ativos: SSH, HTTP e MYSQL com as
suas respectivas portas de conexão: 22, 80 e 3306. Ou seja, de posse dessa
informação, podemos procurar vulnerabilidades que permitirão a exploração
(ganho de acesso) ao alvo.

68
Figura 24 - Captura da página HTTP do alvo

3.1.7. Coletando Informações dos Usuários


Além das atividades de coleta de informações de alvos como
domínio, sistemas operacionais, servidores, portas, serviços etc., podemos
também, durante a fase de reconhecimento, coletarmos informações de
usuários (pessoas), para posteriormente aplicarmos técnicas como a
engenharia social.

Uma das maneiras é rastrear o usuário para sabermos informações


sobre, por exemplo, saber o endereço IP do usuário, qual o navegador de
internet o usuário está utilizando, em que momento ele acessou uma página
web e assim por diante. Para isso, podemos utilizar sites como:
https://grabify.link/ ou https://blasze.com/ para auxiliar nesse rastreamento e
coleta de informações.

A técnica consiste em enganar um usuário, através do envio de um


link camuflado de um site legitimo que, após acessado pelo usuário, começa
a fornecer informações sobre ele.

69
Figura 25 - Site Grabify

Na figura 25, observe que inserimos o endereço www.igti.edu.br no


campo e posteriormente iremos clicar no botão “create URL”. Nessa
sequência, o endereço será camuflado, e o atacante poderá enviar esse link
por e-mail ou compartilhá-lo em uma rede social, induzindo o usuário
(pessoas) a clicá-lo. Que tal experimentar essa técnica clicando no endereço
a seguir: https://grabify.link/WIYK15

70
Figura 26 - Obtendo informações com Grabify

Na figura, podemos observar a captura de algumas informações


(minhas no caso), como por exemplo: o endereço IP, data e hora em que
acessei o site igti.edu.br, qual tipo e versão de navegador de internet estou
usando, qual é meu provedor de internet (ISP) etc., após clicar no link
preparado pelo Grabify.

Também é possível realizar um rastreamento de usuário,


especificamente, através do rastreamento por e-mail. Para tal, podemos
utilizar a ferramenta mailtracking disponível no site
http://www.mailtracking.com/mailtracking/.

O funcionamento é muito simples e eficaz. Como partida deve-se


realizar um cadastro gratuito de um e-mail que permitirá a utilização da
ferramenta por um período gratuito (avaliação).

71
Após o cadastro, o site abre uma página administrativa, na qual
permitirá você acompanhar os “passos” do receptor do e-mail após o seu
recebimento, como por exemplo em que data e hora o e-mail foi aberto, se
no caso desse e-mail possuir anexo, em que momento esse anexo foi aberto
e assim por diante. Daí, você me pergunta: professor, mas por que um Ethical
Hacker ou um Black Hacker precisa dessas informações?

Pois bem, imagine a seguinte situação: um Black Hacker cria um


código malicioso destinado a explorar uma vulnerabilidade em seu
computador e o anexa de formal oculta em um documento qualquer em pdf
que provoque sua curiosidade. Exemplo “gatinhos felizes.pdf”. Ao clicar
neste pdf para realizar a sua leitura, automaticamente, o código malicioso é
iniciado de forma secreta em seu sistema operacional. Através do
mailtracking, o Black Hacker saberá o exato momento que você recebeu o e-
mail e abriu o arquivo pdf. Assim, ele poderá começar a utilizar o código
malicioso enviado obscuramente no arquivo pdf, realizar a invasão de seu
sistema e, por exemplo, roubar alguma informação que você considera
valiosa. Entendeu? Abaixo, podemos observar prints do uso do mailtracking:

Figura 27 - Tela Login Mailtracking

72
Para realizar um rastreamento de um e-mail, basta enviar um e-mail
e, ao final do endereço eletrônico, acrescentar: .mailtracking.com no final do
e-mail observe:

Algum tempo depois, a vítima recebe o e-mail com o anexo em sua


caixa postal e realiza a leitura e abertura do anexo conforme podemos
observar nas figuras 29 e 30 a seguir:

Figura 28 - Comprovante de recebimento do e-mail

73
Figura 29 - Leitura e abertura do e-mail recebido

A seguir, apresenta-se a tela do mailtracking, informando que o e-


mail foi entregue e acessado pela vítima (figura 29). Ao acessar o log, vamos
visualizar todas as informações coletadas no rastreamento (figura 30).

Figura 30 - Tela informando que a vítima recebeu o e-mail

Figura 31 - Detalhamento de informações coletadas

3.1.8. Maltego Footprint Raiz


Visando a facilitar ainda mais a fase de reconhecimento, temos o
MALTEGO. Trata-se de uma ferramenta que recolhe diversas informações de

74
várias fontes públicas com o propósito de auxiliar as equipes de segurança
a investigarem dados e informações disponíveis do ambiente de forma fácil,
visando mitigar diversos tipos de vulnerabilidades que podem ser utilizadas
pelos Black Hackers. Com o Maltego, podemos descobrir os relacionamentos
existentes entre todas as entidades e tecnologias que um ambiente de TI
possui.

O Maltego possui duas modalidades: “comunidade”, totalmente


grátis, porém com limitações em suas funções e funcionalidades; e a
“assinatura” que, após a sua aquisição, permite o acesso total a um universo
de funções e funcionalidades.

Figura 32 - Interface Maltego

Observe que, após a realização de um reconhecimento utilizando o


Maltego, será possível coletar inúmeras informações, como por exemplo:
domínios, tecnologias utilizadas, relacionamento entre as entidades
existentes no domínio e no ambiente de TI etc.

75
Figura 33 - Exibição dos relacionamentos existentes no domínio igti.edu.br

Figura 34 - Exibição das tecnologias existentes no site

3.2. Análise de Vulnerabilidades


A terceira fase de um teste de penetração baseia-se em técnicas de
varreduras ou “scanning”. O escaneamento de portas (Port Scan) é uma das

76
técnicas mais comuns e utilizadas por um Ethical Hacker ou Black Hacker
para descobrir serviços/recursos vulneráveis em um sistema-alvo.

Computadores conectados numa rede oferecem serviços/recursos


que utilizam portas lógicas de comunicação dos protocolos TCP e UDP.
Portanto, o escaneamento dessas portas consiste em enviar uma
sinalização de cada uma das 65536 portas TCP, por exemplo. Com a resposta
do escaneamento pode-se determinar se uma porta está sendo ou não
utilizada e, caso esteja, o Ethical Hacker pode explorá-la através de vários
métodos e técnicas, a fim de encontrar possíveis falhas de segurança no
alvo.

Existem três tipos de escaneamento, sendo o primeiro o


escaneamento de porta, o segundo o de vulnerabilidade e o terceiro de
redes. No escaneamento de porta, são verificadas as portas e serviços ativos.
No escaneamento de vulnerabilidades, são detectadas as vulnerabilidades
presentes no alvo. Por fim, no escaneamento de rede, são identificados os
hosts (dispositivos computacionais) ativos na rede.

Existem vários programas de escaneamento de portas que se


destacam conforme suas características, porém enfatizaremos alguns
contidos no Kali Linux, como Nmap que anteriormente descobrimos que é
uma ferramenta que permite aos administradores de rede, bem como aos
Black Hackers aplicar inúmeras técnicas de reconhecimento e varreduras
localizando sistemas alvos ativos, assim como os seus serviços, protocolos
e portas em destaque.

Adiante, iremos também abordar o analisador de vulnerabilidades


OpenVas, que possibilita de forma simples e rápida obtermos informações
sobre as vulnerabilidades presentes em nossos servidores, sistemas
operacionais e rede. Mas, vamos começar pelo NMAP como scanner, e não
mais como ferramenta de reconhecimento.

77
3.2.1. Varredura com NMAP
Ferramenta criada em setembro de 1997, por Gordon Fyodor Lyon, o
NMAP (Network Mapper), em português “mapeador de redes”, é utilizado em
grande escala no Pentest. As principais funcionalidades do NMAP são
varreduras de portas, descoberta de serviços e a detecção de versões.
Existem versões para UNIX ou para Windows, em modo texto ou modo
gráfico NMAP (Zenmap). De acordo com seu criador, os métodos suportados
pelo NMAP são:

• TCP SYN (-sS) examina portas de maneira rápida e modo invisível,


mais difícil de ser detectado por firewalls ou IDS;

• TCP Connect (-sT) executa varredura utilizando o Three-Way


Handshake, é facilmente detectada;

• UDP (-sU) possibilita varredura do protocolo UDP;

• TCP FIN (-sF, -sX, -sN) utilizados na tentativa de travessia de


firewalls;

• TCP ACK (-sA) tática utilizada para detecção de regras de firewall,

• TCP Windows (-sW) varreduras por janelas, parecido com o método


ACK, porém consegue detectar portas abertas versus filtradas e não
filtradas, alguns sistemas são vulneráveis a esse tipo de scan,
exemplo FreeBSD.

Faremos a seguir uma varredura básica do tipo ping scan, que


consiste no envio de um ICMP ECHO REQUEST para o nosso Kali Linux. Essa
simples varredura nos permite saber se o host está ativo e se respostas
ICMP estão podendo passar por um firewall.

78
A seguir, faremos uma varredura do tipo TCP Connect ou conexão
completa Three-Way handshake, este tipo de varredura não é aconselhável,
pois qualquer IDS ou Firewall poderia detectar facilmente.

Observe que o nmap nos retorna algumas portas abertas, dentre elas
80 HTTP e, diante do resultado, podemos deduzir a existência de um servidor
WEB rodando nesta porta. Porém, para termos a certeza, vamos usar o
comando nmap –sV para detecção de versão de serviços e vamos varrer
somente a porta 80.

79
Agora, obtivemos a certeza de que há um servidor WEB sendo
executado neste host e que está respondendo na porta 80 do protocolo TCP
utilizando o serviço HTTP. Quanto ao tipo do servidor, observamos que se
trata do Apache na versão 2.4.41 em um sistema operacional Linux Debian.
Desse ponto em diante, poderíamos buscar vulnerabilidades associadas ao
servidor Apache na versão 2.4.41 e, caso encontradas, explorá-las por meio
por exemplo de exploits.

É importante dizer que o NMAP é uma excelente ferramenta com


diversas opções a serem exploradas. Então, explore-as sem medo de ser
feliz!

3.2.1.1. Varreduras Furtivas com NMAP


Ao contrário de varreduras do tipo TCP Connect que podem ser
detectadas facilmente, podemos utilizar varreduras furtivas do tipo TCP Syn.
Ao executarmos um scanner do tipo SYN (-sS), não significa que estaremos
livres de ser pegos por um IDS ou firewall, pois apenas dificultaremos a
detecção.

Neste tipo de conexão, o Three-way handshake não ocorre por


completo e apenas metade do processo é executado, daí o nome Stealth
Scan (Half-open Scan), ou scanner furtivo de meia conexão (figura 35). O
atacante envia o pacote Syn, que é o primeiro passo de uma conexão de três
vias, e caso a vítima responda com um Syn – Ack, então poderemos deduzir
que o estado da porta é OPEN. Caso receba um RST, o estado da porta será
CLOSED. Note que, neste caso, não houve a conexão real ou TCP Connect,
pois não ocorreu a conclusão do handshake (figura 36) e, dessa forma, não

80
foi registrada a conexão, possivelmente não será detectada por um firewall
ou IDS.

Figura 35 - Handshake completo (facilita a detecção de um IDS ou Firewall)

Figura 36 - Handshake incompleto (dificulta a detecção de um IDS ou Firewall)

3.2.1.2. Descobrindo Firewall e IDS


Existem ainda técnicas furtivas para detecção e subversão de
firewalls ou IDS, isto pode ser feito através de um exame utilizando ACK, ou
seja, no exame por TCP ACK apenas um bit ACK ligado será enviado e, por
convenção de normas RFC, o alvo tem por obrigação responder com pacotes
RST, então podemos verificar se existem filtragens ou não. A seguir, faremos
um exame TCP ACK contra nosso alvo Kali Linux e limitaremos apenas as
portas 80.

Observe que o resultado ao lado apresentado revela que a porta 80


não está sendo filtrada por nenhum tipo de firewall ou IDS.

Agora, vamos ativar a regras junto ao iptables “firewall” para


bloquear a porta 80 e novamente realizamos a varredura.

81
Agora, podemos observar que a porta 80 está sendo filtrada. Ou seja,
existe um mecanismo de proteção (no caso o firewall) verificando as
solicitações de conexões da porta 80 do protocolo tcp e serviço http.

Como já mencionado anteriormente, varreduras podem ser


facilmente detectadas, basta um firewall ou IDS estarem configurados
corretamente e LOGs serão gerados. Porém, podemos, então, utilizar um
recurso muito interessante do NMAP, o despiste.

A tática consiste em forjar um IP de origem que esteja ativo. No


exemplo a seguir utilizaremos nosso Kali Linux, para despistar, vamos
utilizar o IP 192.168.87.30 e nosso alvo será o já conhecido 192.168.82.37.
Deve-se deixar claro que, se tentarmos utilizar um IP de origem que não
esteja ativo, poderá ocorrer a negação de serviço devido a inundação por
SYN.

Dessa forma “despistamos” o firewall ou IDS. Pois nos registros de


LOGs, constará como IP atacante o IP 192.168.87.30 e não o IP realmente
utilizado durante a varredura. Porém, vale ressaltar que os equipamentos
mais novos de firewall e IDS ou IPS já possuem tecnologias para reconhecer
esse tipo de “despiste”.

82
3.2.1.3. Zenmap
Não podemos deixar de fora o Zenmap, versão gráfica do poderoso
NMAP. Interativa, que exibe os resultados de forma organizada, mostrando
detalhes com a varredura em andamento, podendo desenhar o mapa
topológico da rede testada e é de fácil utilização.

A seguir, realizaremos uma varredura contra nosso alvo “igti.edu.br”,


o comando utilizado será nmap –T4 –A –v, ou seja, temporização agressiva
em modo verboso. Ao iniciar a varredura, você poderá navegar através das
abas contidas na interface, note aba ports / hosts a porta 80 RPC em estado
OPEN.

Podemos ainda observar o mapa de topologia da rede e informações


referente ao sistema operacional instalado no alvo, simplesmente
navegando entre as abas.

83
84
3.2.2. Scanner OpenVas
Descobrir vulnerabilidades em sistemas computacionais é uma
tarefa árdua para muitos administradores de sistemas e analistas de
segurança, principalmente, porque existem diversos equipamentos,
sistemas e recursos para serem gerenciados, além do trabalho de pesquisa
que precisa ser feito para entender as vulnerabilidades encontradas e
encontrar as melhores soluções. Então, agora, imagine você poder fazer todo
esse trabalho de verificação e análise de vulnerabilidades que afetem a
segurança usando uma única ferramenta! Portanto, conheça o OpenVas
(Open Vulnerability Assessment System).

Trata-se de um framework open-source disponível no Kali Linux, com


capacidade de analisar e verificar vulnerabilidades em diversos tipos de
ambientes de TI, de maneira automática, por meio de um conjunto de
scripts, ferramentas e um banco de dados constantemente atualizado que
contém inúmeras vulnerabilidades detectadas por fabricantes,
desenvolvedores, comunidades de segurança e entusiastas.

O OpenVas é uma ferramenta de extrema utilidade para as equipes


de segurança da informação e segurança cibernética no combate de
ameaças, devido a sua capacidade de analisar de maneira simples as
vulnerabilidades encontradas em um ambiente de TI e sugerir correções
com base em um banco de dados com mais de 50.000 vulnerabilidades
cadastradas.

85
Figura 37 - Interface OpenVas.

Como mencionada, uma das grandes vantagens do uso dessa


ferramenta para a fase de varredura e o seu banco de dados de
vulnerabilidades, que está constantemente sendo atualizado pelo
desenvolvedor e sua comunidade. Um ponto interessante é que essas
vulnerabilidades são classificadas de acordo com a sua severidade.

Figura 38 - CVEs e NVTs OpenVas

86
CVEs (do inglês, Common Vulnerabilities and Exposures) ou
Vulnerabilidades e Exposições Comuns é uma lista de entradas criada em
1999 pela empresa MITRE1, que tem como objetivo identificar e categorizar
vulnerabilidades em dispositivos computacionais (hardware e software)
para auxiliar as equipes de segurança da informação e segurança
cibernética. NTVs (do inglês, National Vulnerability Database) ou Banco de
Dados Nacional de Vulnerabilidades é um repositório controlado e mantido
pelo governo dos Estados Unidos que tem como objetivo realizar o
gerenciamento de vulnerabilidades baseado em padrões usando o SCAP –
Security Content Automation Protocol, que permite medição de segurança
e conformidade em conjuntos de hardwares e softwares desenvolvidos.

Ambas as duas são consideradas referência mundial quanto à


verificação de vulnerabilidades, falhas de softwares e hardwares
relacionados à segurança, configurações incorretas, bugs, nomes de
produtos e métricas de impacto. Caso tenha curiosidade em conhecê-las,
acesse: https://cve.mitre.org/ e https://nvd.nist.gov/.

1 Mitre é uma organização sem fins lucrativos que opera centro de pesquisas e
desenvolvimentos financiados pelo governo federal nos Estados Unidos.

87
Um ponto importante que não podemos deixar de mencionar, para
melhor compreensão, são os conceitos relacionados aos seguintes itens:

• VULNERABILIDADE – é uma fraqueza que pode ser explorada em


um ataque cibernético para obter acesso não autorizado ou executar
ações não autorizadas em um sistema de computador. As
vulnerabilidades podem permitir que os invasores executem
códigos, acessem a memória do sistema, instalem diferentes tipos
de malware e roubem, destruam ou modifiquem dados confidenciais.

• EXPOSIÇÃO – é um erro que dá ao invasor acesso a um sistema ou


rede. As exposições podem levar a violações de dados, vazamentos
de dados e informações de identificação pessoal sendo vendidas na
dark web. De fato, algumas das maiores violações de dados foram
causadas por exposição acidental, e não por ataques cibernéticos
sofisticados.

Para compreender melhor o funcionamento do OpenVas, convido


você a assistir o nosso webinar sobre esta ferramenta no endereço abaixo.
Porém, em nossa aula interativa, iremos realizar uma varredura.

Figura 39 - Link: https://www.youtube.com/watch?v=BWuH0fQ5QJE

88
3.2.3. Nmap Scripting Engine
Agora, vamos discutir outra ferramenta que oferece o recurso de
scanning de vulnerabilidades. Assim como o OpenVas evoluiu a partir de um
framework de exploração de falhas até se tornar um pacote completo de
análise de vulnerabilidades, com centenas de bibliotecas de
vulnerabilidades e módulos, o Nmap, de modo semelhante, evoluiu além de
seu objetivo inicial, que era o de efetuar scanning de portas. O NSE (Nmap
Scripting Engine) permite executar scripts publicamente disponíveis e
possibilita a criação de seus próprios scripts. Você encontrará os scripts
empacotados com o NSE no Kali em /usr/share/nmap /scripts. Os scripts
disponíveis se enquadram em diversas categorias, incluindo coleta de
informações, avaliação ativa de vulnerabilidades, pesquisa de sinais de
comprometimentos anteriores e assim por diante. A listagem (figura 40)
mostra os scripts NSE disponíveis em sua instalação default do Kali.

Figura 40 – Diretório default Nmap Scripting Engine

Para obter mais informações sobre um script ou uma categoria de


scripts em particular, use a flag --script-help no Nmap. Por exemplo, para ver
todos os scripts que estão na categoria default, digite nmap --script-help
default, como mostrado na listagem abaixo. Muitos fatores contribuem para
determinar se um script estará na categoria default, incluindo a sua
confiabilidade e o fato de o script ser seguro, com poucas chances de causar
danos ao alvo.

89
Se a flag -sC for usada para dizer ao Nmap para executar um scan de
scripts, além de um scanning de portas, ele executará todos os scripts da
categoria default, como mostrado a seguir:

Como você pode ver, o Nmap Scripting Engine descobriu uma boa
quantidade de informações interessantes. Por exemplo, vemos que o
servidor SMTP na porta 25 do alvo Windows Server 2008R2 permite o uso
do comando VRFY, que permite ver se um nome de usuário existe no
servidor de e-mails. Se tivermos um nome de usuário válido, o uso desse
comando fará com que ataques para adivinhar credenciais tenham muito
mais chances de serem bem-sucedidos.

90
3.2.4. Metasploit Modo Scanner
O Metasploit, também pode ser utilizado como um scanning de
vulnerabilidades por meio de vários módulos auxiliares. De modo diferente
dos exploits, esses módulos não nos permitirão o controle do computador-
alvo, porém nos ajudarão a identificar vulnerabilidades a serem exploradas
posteriormente. Como exemplo da funcionalidade desses módulos observe
o resultado do metasploit após uma análise para descobrir qual o software
utilizado como servidor FTP no nosso alvo (Windows Server).

Vale ressaltar que os módulos auxiliares do Metasploit possibilitam


efetuar o scan de vários hosts ao mesmo tempo, o que fará você economizar
tempo quando estiver testando um ambiente extenso. Ainda podemos
utilizar Metasploit para verificar uma determinada vulnerabilidade, observe:

91
No caso, verificamos se o alvo possui a vulnerabilidade MS17-010,
bem comum em diversos sistemas operacionais da família Microsoft
Windows e que possibilitou mais de 300 mil computadores serem infectados
com o Ransomware WannaCry no ano de 2018, causando um grande
transtorno para diversas empresas e equipes de TI e segurança da
informação.

3.2.5. Scanner Web Application


Atualmente, existem centenas de milhares de aplicações WEB
destinadas a vários propósitos e objetivos. Como exemplo, podemos citar
aplicações web destinadas a controles financeiros, de pessoal etc., e todas
também podem conter vulnerabilidades. Nesse contexto, é preciso que as
equipes de segurança realizem uma análise de vulnerabilidades para
descobrir quais aplicações possuem vulnerabilidades que precisam ser
corrigidas. Um Pentest poderá realizar essa análise com o propósito de
informar à empresa e suas equipes de TI as possíveis falhas expostas que
precisam ser corrigidas.

O NIKTO é um scanner de vulnerabilidades de aplicações web


incluído no Kali Linux que é como o OpenVas para aplicações web: ele
procura problemas como arquivos perigosos, versões desatualizadas e erros
de configuração. Para executar o Nikto em um determinado alvo, basta
informar o host seguido da flag -h, como mostrado a seguir:

92
Observe que, após a análise realizada, percebe-se que o servidor
WEB em referência possui diversos métodos habilitados, o que pode
proporcionar uma exploração mais avançada e posteriormente um roubo de
dados e informações.

O OWASP-ZAP é um outro scanner de código aberto e gratuito e uma


plataforma de teste para testar a segurança de aplicativos da web, podendo
encontrar diversos tipos de vulnerabilidades em sites e aplicações web.

Figura 41 - Interface OWASP-ZAP

Por fim, temos o WPSCAN, um scanner dedicado à busca de


vulnerabilidades em aplicações desenvolvidas em Wordpress.

93
3.2.6. Captando o Tráfego - Whireshark
Antes de prosseguirmos para a exploração de falhas (4ª fase),
usaremos a ferramenta de monitoração Wireshark, para efetuar o sniffing e
a manipulação do tráfego de modo a obter informações úteis de outros
computadores da rede local. Em um teste de invasão interno, quando
estivermos simulando uma ameaça interna ou um invasor que tenha
conseguido acessar a periferia do sistema, capturar o tráfego de outros
sistemas da rede pode nos proporcionar informações adicionais
interessantes (quem sabe até mesmo nomes de usuário e senhas) que
poderão nos ajudar na exploração de falhas. O problema é que a captura de
tráfego pode gerar uma quantidade massiva de dados potencialmente úteis.
Capturar todo o tráfego somente em sua rede local pode fazer com que
várias telas do Wireshark sejam preenchidas rapidamente, e descobrir qual
tráfego é útil em um teste de invasão pode ser difícil. Vamos dar uma olhada
em diversas maneiras de manipular uma rede para ter acesso ao tráfego ao
qual não deveríamos ter permissão para visualizar.

Se você se encontrar em uma rede que utilize hubs no lugar de


switches, a captura do tráfego não destinado ao seu computador será fácil,
pois quando um hub da rede recebe um pacote, ele o reenvia por meio de
broadcast a todas as portas, deixando a cargo de cada dispositivo decidir a
quem pertence o pacote. Em uma rede com hubs, capturar o tráfego de
outros sistemas é tão fácil quanto selecionar Use promíscuos mode (Usar o

94
modo promíscuo) em todas as interfaces no Wireshark. Isso diz ao nosso
NIC (Network Interface Controller) para acessar tudo o que for visto por ele,
o que, em uma rede com hub, corresponde a todos os pacotes. De modo
diferente dos hubs, os switches enviam tráfego somente para o sistema
desejado, portanto, em uma rede com switches, não podemos ver, por
exemplo, todo o tráfego de e para o controlador de domínio sem que
enganemos a rede para que ela nos envie esse tráfego. A maioria das redes
com as quais você se deparar nos testes de invasão provavelmente será
composta de redes com switches; até mesmo alguns hardwares de redes
legadas que argumentam ser um hub podem ter a funcionalidade de um
switch.

Vamos começar usando o Wireshark para capturar tráfego em nossa


rede local. Inicie o Wireshark no Kali. Para efetuar a captura na interface
local de rede ao selecionar Capture / Options e escolher a interface local de
rede. Você começará a ver o tráfego chegando e poderá capturar todo o
tráfego destinado ao computador Kali, bem como qualquer tráfego de
broadcast (tráfego enviado para toda a rede).

95
Para uma demonstração do tráfego que podemos capturar em uma
rede com switches, vamos começar nos conectando ao nosso alvo Windows
Server a partir de nosso computador Kali por meio de FTP.

Você deverá ver pacotes do sistema com endereço IP 172.18.22.45


para 172.18.22.39 e vice-versa no Wireshark, com o campo Protocol
(Protocolo) marcado como FTP. O Wireshark está capturando o tráfego
sendo enviado de e para o nosso computador Kali.

96
Observe que, no exemplo apresentado, ao capturarmos os pacotes
de dados por meio do Wireshark, coletamos algumas informações que “não
deveriam” ser visualizadas. Aqui já temos um ponto de vulnerabilidade – a
exposição de informações como usuário e senha para conexão ao serviço de
FTP, trafegando livremente na rede!

Mesmo após ter filtrado o tráfego, pode haver várias conexões FTP
capturadas durante o mesmo intervalo de tempo, portanto pode continuar
sendo difícil dizer o que está acontecendo. Mas, depois que encontrarmos
um pacote interessante, por exemplo, o início de um login FTP (demonstrado
anteriormente), podemos explorar a conversação mais detalhadamente ao
clicar no pacote com o botão direito do mouse e selecionar Follow TCP
Stream.

É importante ressaltar que “snifar” pacotes da rede podem trazer


sérios problemas a empresa. Isso porque os dados capturados podem

97
revelar informações importantes a um invasor. No exemplo abaixo, veja que
um simples e-mail trocado entre funcionários pode ser capturado utilizando-
se o Wireshark e posteriormente, após uma análise minuciosa dos dados,
podemos encontrar por exemplo dados bancários da empresa ou outras
informações.

Figura 42 - Captura do protocolo SMTP via Wireshark

98
Figura 43 - Datagrama contendo informações importantes

Dados descobertos!
“segue dados para acesso as contas bancárias:

• Banco Orangecolor
• Ag 001 conta:0012-3
• Usuário: morangecolor
• Senha: m2020orange

3.3. Exploração (Ganho de Acesso)


Após todo o trabalho, finalmente chegamos à parte divertida: a
exploração de falhas. Na fase de exploração de falhas do teste de invasão,
executamos exploits contra as vulnerabilidades descobertas para obter
acesso aos sistemas-alvo. Algumas vulnerabilidades – por exemplo, o uso de
senhas default – são tão fáceis de serem exploradas que nem parecem ser
uma exploração de falhas. Outras são muito mais complicadas. Mas, antes
vamos conhecer o Metasploit como ferramenta de exploração, ou seja, como
uma ferramenta que proporcionará o ganho de acesso em um determinado
alvo, após a descoberta de uma vulnerabilidade.

Metasploit, se tornou uma ferramenta padrão de mercado para os


analistas de segurança, Ethical Hacker e Black Hackers. Disponibilizado
inicialmente em 2003, o Metasploit conquistou status de cult por toda a
comunidade de segurança da informação e cibersegurança. Embora,
atualmente, o Metasploit seja propriedade da empresa de segurança Rapid7,

99
uma edição de código aberto continua disponível, com o desenvolvimento
amplamente direcionado pela comunidade de segurança a segurança da
informação e cibersegurança.

A arquitetura modular e flexível do Metasploit ajuda os


desenvolvedores a criarem exploits funcionais de maneira eficiente à
medida que novas vulnerabilidades são descobertas. Como você verá, o
Metasploit é intuitivo e fácil de usar, além de oferecer um modo centralizado
de executar códigos de exploits confiáveis, cuja precisão já tenha sido
garantida ela comunidade.

Agora, por que usar o Metasploit? Retornaremos à vulnerabilidade


que descobrimos em nosso Windows Server “MS17-010”, você se lembra?
Bem, utilizando o Metasploit você poderá explorar essa vulnerabilidade e
avaliar o risco causado por ela.

É importante ressaltar que as equipes de segurança precisam


compreender como cada vulnerabilidade se comporta e que tipos de exploits
podem ser utilizados para explorá-la. Nesse contexto, pesquisar códigos na
Internet que explorem essa vulnerabilidade, torna-se essencial para garantir
as melhores medidas de segurança. Sites como o Packet Storm Security,
SecurityFocus e o Exploit Data base, disponibilizam repositórios com
códigos para exploit conhecidos. Entretanto, considere-se avisado: nem
todos os códigos públicos de exploit fazem o que ele diz que fazem. Alguns
códigos de exploit podem destruir o sistema-alvo ou até mesmo atacar o seu
sistema em vez de atacar o alvo. Permaneça sempre vigilante ao executar
qualquer código que você encontrar online e leia o código cuidadosamente
antes de confiar nele. Além disso, os exploits públicos que você encontrar
podem não atender diretamente às suas necessidades. Pode ser necessário
realizar algum trabalho adicional para portá-los ao seu ambiente de teste de
invasão. Independentemente de desenvolvermos um exploit desde o início
ou de usarmos um exploit público como base, continua sendo necessário

100
fazer esse exploit funcionar em seu teste de invasão. Nosso tempo
provavelmente será mais bem empregado em tarefas que sejam difíceis de
automatizar e felizmente podemos usar o Metasploit para fazer com que
explorar vulnerabilidades conhecidas, como o MS17-010, seja rápido e
descomplicado.

Para iniciarmos o Metasploit no Kali, precisamos, em primeiro lugar,


iniciar o banco de dados que ele utiliza, que no caso é o “PostgreSQL”. Uma
vez instalado o PostgreSQL no Kali Linux, existem diversas maneiras de
iniciarmos o PostgreSQL. Para exemplo ilustrativo ou realizar de uma
maneira que você possa observar o banco de dados iniciado:

Agora, precisamos iniciar o Metasploit e para isso executamos o


comando “msfconsole” no terminal shell do nosso Kali Linux. Observe:

Figura 44 - Tela inicial do Metasploit

101
Observe que, após seu início, o Metasploit nos informa a quantidade
de exploits, módulos auxiliares e assim por diante, que constam em sua base
de dados (seta vermelha na figura 44).

Vale lembrar que esta base está em constante atualização por parte
da Rapid7 e da comunidade de segurança da informação e segurança
cibernética. Para manter seu Metasploit devidamente atualizado, basta
executar no terminal do shell do Kali Linux o comando: msfupdate e
aguardar até o final das atualizações.

Aqui, vai uma dica: caso em algum momento você se sinta perdido
ao utilizar o msfconsole, basta digitar “help” para obter uma lista de todos
os comandos disponíveis e consecutivamente a descrição de cada um deles.
Caso deseje uma informação mais detalhada sobre o comando, digite “help”
seguido pelo nome do comando. Veja o exemplo:

Caso deseje saber mais detalhes do comando “cd”, por exemplo,


digite: help.

Vamos agora usar o Metasploit para explorar uma vulnerabilidade


MS-17-010 do nosso alvo. Lembrando que essa vulnerabilidade já possui
correção junto a Microsoft, através do seu boletim de segurança 4013389.
Porém, uma pergunta rápida a você: como sabemos que esse patch está

102
ausente em nosso alvo Windows Server 2008R2? Bem, realizando uma
varredura de vulnerabilidades, com o comando nmap, por exemplo:

Figura 45 - Resultado da varredura realizada pelo NMAP - MS17-010 encontrado.

Vamos agora procurar por essa vulnerabilidade no site da


comunidade do Rapid7 para sabermos qual será o módulo utilizado junto ao
msfconsole para realizarmos a exploração do alvo.

103
Conforme podemos observar, há pelo menos cinco módulos que
podem ser acionados no msfconsole e que poderemos utilizar para realizar
o ganho de acesso. Vamos utilizar para o nosso teste de penetração o
exploit: eternalblue_doublepulsar (aquele utilizado pelo Ransomware
WannaCry em 2018) e, posteriormente, iremos configurar o “payload” e as
informações como: IP e Porta do equipamento remoto (alvo) e do
equipamento local (invasor); sistema operacional e processo do alvo, entre
outras informações que coletamos na fase de varredura. Mas, antes, vou
apresentar alguns conceitos básicos que você precisa saber para realizar a
configuração junto ao msfconsole:

104
• LHOST e LPORT – refere-se ao endereço IP (LHOST) e porta de
comunicação (LPORT) que será utilizada pelo invasor;

• RHOSTS e RPORT – refere-se ao endereço IP (RHOSTS) e porta de


comunicação (RPORT) do alvo a ser verificado ou invadido;

• TARGET – corresponde a informações sobre o sistema-alvo, podendo


essas serem tipo de sistema operacional, versão, arquitetura etc., de
acordo com o exploit ou módulo que está sendo utilizado.

• PAYLOADS – podendo ser denominado também de “carga útil”, são


scripts simples que Ethical Hacker ou Black Harker podem utilizar, para
interagir com um Sistema-alvo testado ou invadido. Os payloads podem
ser do tipo: únicos (singles) - scripts muito pequenos e projetados para criar
algum tipo de comunicação e depois passar para o próximo estágio. Por
exemplo, apenas criação de um usuário. preparado (staged) – no geral
utilizado carregar um arquivo maior em um sistema vítima; estágios (stages) –
scripts que oferecem recursos avançados sem limites de tamanho, como
meterpreter e que possuem diversos outros scripts auxiliares.

• EXPLOIT (exploração) – são scripts (chaves) utilizados para obter


acesso ao sistema-alvo e, assim realizarmos os testes de penetração.
Os exploits podem ser executados por meio do msfconsole (interface
texto) ou pelo Armitage (interface gráfica). Ambas disponíveis na
distribuição Kali Linux.

Bem, agora que sabemos o básico, vamos colocar a “mão na massa”!


Em primeiro lugar, vamos voltar para onde paramos, configurar o exploit no
msfconsole e posteriormente configurar os itens acima mencionados, com
os comandos “set” e “use”. Caso tenha dúvida lembre-se do comando
“show”, pois ele irá mostrar a você as opções referentes ao comando.
Exemplo: show target – irá informar que tipos de alvos (sistemas
operacionais) podem sem configurados no exploit que estamos utilizando.

105
Feito as configurações, vamos executar o comando “exploit”. Se tudo
estiver correto, haverá então o ganho de acesso ao sistema-alvo.

Figura 46 - Exploração realizada com sucesso no sistema-alvo

Agora, pode-se realizar diversos tipos de explorações e testes no


sistema-alvo comprometido, como por exemplo, criação de usuários, captura
de arquivos Hash de senhas, captura e gravação de texto, áudio, vídeo e
imagens, navegação de diretórios e explorando compartilhamentos de
redes, realizando download e upload de arquivos, reconfiguração do sistema,
instalando códigos maliciosos, capturando pacotes da rede interna,
eliminando registros de logs, gerando credenciais e senhas de acesso,

106
conectando-se a banco de dados, instalando novos serviços, entre outras
coisas mais. Ou seja, realizando as fases 5 e 6 de um teste de penetração.

Figura 47 - SYSINFO (obtendo informações do sistema comprometido)

Aproveite esse tempo para conhecer um pouco mais sobre o


framework Metasploit, bem como o msfconsole e seus comandos, criando
um laboratório virtual e aprimorando seus conhecimentos de Ethical Hacker.

3.4. Detonando Senhas


No geral, as senhas representam o ponto que oferece a menor
resistência em atividades de um Pentesting. Uma empesa com um sistema
e uma equipe de TI robusta de segurança pode corrigir falhas de
vulnerabilidades em sistemas operacionais e sistemas de informação, porém
quando o assunto está relacionado aos usuários e às senhas que estes
utilizam em seu dia a dia, torna-se uma atividade difícil e de extrema
importância. Isso porque, na questão segurança da informação e segurança
cibernética, o ativo de TI “pessoa” é o ponto mais vulnerável e suscetível a
um ataque.

Nesse contexto, as empresas estão despertando para os riscos e


ameaças inerentes à autenticação baseada em senhas. Ataques por meio de
força bruta e palpites embasados em ataques baseados em engenharia
social, senhas fracas, ausência de uma gestão de identidade e acesso e a
implementação de mecanismos de autenticação de dois fatores contribuem

107
para aumentar as falhas de vulnerabilidades, possibilitando que invasores e
ameaças comprometam o ambiente corporativo e sua infraestrutura de TI,
representado um risco sério a empresa.

Assim como usamos ferramentas automatizadas para descobrir


vulnerabilidades, podemos usar ferramentas para tentar fazer login
automaticamente em serviços e descobrir credenciais válidas. Essas
ferramentas usam uma técnica chamada força bruta, ou seja, tentam usar
todas as combinações possíveis de nome de usuário e senha, que são
baseadas em dicionários previamente gerados de forma automática.

O problema com a força bruta é que à medida que senhas mais fortes
são usadas, o tempo necessário para descobri-las por meio dessa técnica
pode ultrapassar horas, anos e até mesmo a duração de uma vida.
Provavelmente, poderemos descobrir credenciais funcionais mais
facilmente se fornecermos palpites embasados sobre as senhas corretas a
uma ferramenta automatizada de login. Palavras que se encontram em
dicionários são fáceis de serem lembradas, portanto, apesar dos avisos de
segurança, muitos usuários as incorporam nas senhas.

3.4.1. Encontrando Senhas com o Hydra e o Medusa


O Hydra é uma ferramenta que possibilita descobrir senhas através
da utilização de dicionários de lista de usuários e senhas, realizando testes
on-line nos serviços em execução, como por exemplo: serviços de telnet, ssh,
smtp etc., no sistema-alvo.

Após a fase de varredura em um sistema-alvo “Linux”, descobrimos


que ele possui diversos serviços e portas disponíveis e possivelmente com
possibilidades de vulnerabilidades a serem exploradas. Utilizando a
ferramenta Sparta, podemos facilmente descobrir essas vulnerabilidades.
Observe, na figura 47rel, que o sistema-alvo possui um servidor de e-mail, e
este, por sua vez, contém uma vulnerabilidade na qual expõe a lista de
usuários cadastrados que pode ser visualizada na barra superior do Sparta.

108
Figura 48 - Varredura de vulnerabilidades com Sparta

Figura 49 - Lista de usuários

Agora que sabemos os nomes dos usuários, vamos utilizar o próprio


Sparta para descobrir as senhas, inserindo um dicionário contendo os nomes
de usuários descobertos e outro dicionário contendo possíveis senhas para
tentarmos encontrar uma senha. Não se esqueça de configurar o IP e o

109
serviço do sistema-alvo que deseja ganhar o acesso. Dica: um ótimo
dicionário com mais de 14 milhões de combinações de senha é o rockyou.txt,
que pode ser encontrado facilmente na internet.

Após a realização do ataque de força bruta, o Hydra nos apresentou


um resultado satisfatório, contendo um achado, isto é, uma senha de um de
nossos usuários listados (figura 49 e 51). Para validarmos o ganho de acesso,
vamos testar o usuário e senha encontrados, através de uma conexão ssh
no sistema-alvo, conforme demonstrado abaixo (figura 50).

Figura 50 - Realizando o ganho de acesso

Figura 51 - Ataque de força bruta – Hydra

110
Podemos ainda realizar o mesmo processo de ataque de força bruta,
através do terminal shell do Kali Linux, observe:

Outra ferramenta de ataque de força bruta, também muito eficiente


é o Medusa. Semelhante ao Hydra, o Medusa pode facilmente descobrir
senhas por meio da utilização de dicionários de usuários e senhas.

É importante que o Ethical Hacker explore todas essas ferramentas,


fazendo uso dos seus manuais por meio do comando “help” ou “man” no Kali
Linux. Afinal, conhecer as funções e funcionalidades é a chave para o
sucesso de qualquer teste de penetração.

3.4.2. Encontrando Senhas com Hashdump - Metepreter


Outra maneira de quebrar senhas é obter uma cópia das hashes de
senha e tentar revertê-las para o seu formato texto simples. É mais fácil falar
do que fazer isso, pois as hashes foram concebidas para serem o produto de
uma função unidirecional de hash: dada uma entrada, você pode calcular a
saída usando a função de hash, porém dada a saída, não há nenhuma
maneira confiável de determinar a entrada. Desse modo, se uma hash for
comprometida, não deverá haver nenhum modo de calcular a senha em

111
formato texto simples. Entretanto, podemos fornecer um palpite para uma
senha, gerar sua hash usando a função unidirecional de hash e comparar o
resultado com a hash conhecida. Se as duas hashes forem iguais, é porque
descobrimos a senha correta.

Após o ganho de acesso a um sistema-alvo, no caso o Windows


Server por meio da exploração da vulnerabilidade MS-17-010 com o
Meterpreter, vamos utilizar o comando Hashdump para visualizar e copiar os
hashes encontrados para o arquivo hash.txt.

Podemos agora utilizar no próprio meterpreter o script mimikatz


(comando load mimikatz) para calcularmos os hashes encontrados e
posteriormente executar o comando wdigest para visualizar o resultado.
Observe:

Observe que revelamos a senha do usuário “Pedrão” que neste


momento está logado no sistema-alvo. Agora, vamos utilizar o John the
Ripper para descobrirmos as demais senhas dos outros usuários.

Primeiramente, copiamos o resultado do Hashdump em um arquivo


texto e, posteriormente, executamos o John the Ripper para “quebrar” os
hashes. Atenção: este processo poderá levar minutos, horas ou dias, pois

112
depende da complexidade da senha criada pelo usuário. Porém, para
acelerar o processo, alguns Ethical Hackers utilizam dicionários, como por
exemplo o Hydra e Medusa, visto anteriormente.

Figura 53 - John The Ripper em ação

Observe que à medida que o John the Ripper vai decodificando os


hashes, as senhas vão sendo reveladas (figura 50).

3.5. Engenharia Social Toolkit


Na segurança da informação, é comum dizer que os usuários
representam a vulnerabilidade que jamais poderá ser corrigida. Uma equipe
de segurança poderá instalar todos os controles de segurança necessários
e implementar uma política de segurança robusta, porém, se um funcionário
puder ser convencido a dar informações sensíveis da empresa, tudo terá sido
em vão. Por exemplo, considere o famoso hacker Kevin Mitnick, várias das
mais famosas explorações de falhas de Mitnick se reduziram a entrar em um
prédio, convencer o segurança de que ele tinha permissão para estar lá e, em
seguida, sair com o que queria. Esse tipo de ataque, que se chama
engenharia social, tem como objetivo explorar as vulnerabilidades humanas,
como por exemplo: o desejo de ser prestativo, a falta de conscientização a
respeito de políticas de segurança e assim por diante.

Os ataques de engenharia social podem envolver requisitos técnicos


complexos ou nenhuma tecnologia. Um engenheiro social pode adquirir um
uniforme de funcionário da TV a cabo e, potencialmente, entrar em uma

113
empresa ou até mesmo na sala do servidor. O departamento de suporte de
TI pode receber um telefonema desesperado da secretária de um diretor,
argumentando que o diretor não estar conseguindo acessar sua conta de
webmail.

As pessoas, em geral, querem ser prestativas, portanto, a menos que


haja uma política de segurança em vigor, o funcionário do suporte da TI
poderá passar a senha pelo telefone ou configurá-la com um valor default,
mesmo que a pessoa que ligou não seja quem diz ser. Um vetor comum em
ataques de engenharia social é o e-mail. Se, em algum momento, você
estiver sem nada interessante para fazer no trabalho, dê uma olhada em sua
pasta de e-mails spams. Entre as inúmeras propagandas, com certeza
haverá algum e-mail malicioso no qual passará despercebido por você.

Tentar enganar um usuário de modo que ele dê informações


sensíveis ao se fazer passar por uma pessoa de confiança em um e-mail ou
por outro meio eletrônico é conhecido como ataque de phishing. E-mails do
tipo phishing podem ser usados para atrair alvos a visitarem sites maliciosos
ou fazerem download de anexos maliciosos, entre outras atividades.

Os ataques de engenharia social representam o elemento que


faltava, necessário para enganar os usuários de modo que os tornem vítimas
de ataques. As empresas devem investir tempo e esforço no treinamento de
todos os funcionários no que diz respeito aos ataques de engenharia social.
Independentemente do tipo de tecnologia de segurança implantado, os
funcionários devem poder usar suas estações de trabalho, seus dispositivos
móveis e assim por diante para fazerem o seu trabalho. Eles terão acesso a
informações sensíveis ou a controles de segurança que, em mãos erradas,
podem prejudicar a empresa.

Algumas orientações dadas em treinamentos de segurança podem


ser óbvias como “Não compartilhe sua senha com ninguém” e “Confira o
crachá de uma pessoa antes de segurar a porta de uma área segura para que

114
ela possa passar”. Outras orientações para ter ciência quanto à segurança
podem ser novidade para muitos funcionários. Por exemplo, em um recente
de testes de invasão realizado na empresa em que trabalho, tive bastante
sucesso ao deixar pen drives USB em uma mesa qualquer com uma etiqueta
em que se lia “Folha de pagamento”. Usuários curiosos começam
conectando esses dispositivos, abrem os arquivos e me concedem acesso a
seus sistemas. Treinamentos para conscientização a respeito de segurança
no que diz respeito a arquivos maliciosos, pen drives USB e outros ataques
podem ajudar a impedir que usuários se tornem vítimas desses tipos de
ataques de engenharia social.

Um framework bem interessante é o Social-Engineer Toolkit. Trata-


se de uma ferramenta de código aberto baseada em Python, que foi
concebida para ajudar Ethical Hackers a realizar ataques de engenharia
social durante os testes de invasão.

O SET ajudará a criar uma variedade de ataques como campanhas de


e-mails do tipo phishing (com o propósito de roubar credenciais,
informações financeiras e assim por diante, por meio de e-mails para alvos
específicos) e ataques baseados em web (como clonagem do site de um
cliente, fazendo com que os usuários sejam enganados de modo a inserirem
suas credenciais de login). O SET já vem instalado no Kali Linux. Para iniciá-
lo, digite setoolkit em um prompt do Kali Linux.

Usaremos o SET (figura 51) obsrpara realizar ataques de engenharia


social, portanto digite 1 no prompt para acessar o menu Social-Engineering
Attacks (Ataques de engenharia social).

115
Figura 54 - Interface SET

Criaremos um ataque do tipo: spear-phishing, que permitirá gerar


arquivos maliciosos para ataques do lado do cliente, enviá-los por e-mail e
instalar um handler do Metasploit automaticamente para capturar o
payload.

116
A primeira opção, Perform a Mass Email Attack (Realizar um ataque
em massa via e-mail), permite enviar um arquivo malicioso a um endereço
predefinido de e-mail ou a uma lista de endereços, assim como instalar um
listener no Metasploit para o payload selecionado. A segunda opção, Create
a FileFormat Payload (Criar um payload fileformat), permite criar um arquivo
malicioso com um payload do Metasploit. A terceira opção permite criar um
template de e-mail a ser usado em ataques com o SET. Selecione a opção 1
para criar um ataque por e-mail. (Teremos a opção de enviar um único e-mail
ou vários e-mails posteriormente.)

Agora, vamos selecionar um payload, observe que será mostrado um


conjunto de opções. No nosso exemplo, vamos escolher um arquivo PDF,
selecionando a opção: Adobe util.printf() Buffer Overflow.

117
Você será solicitado a escolher um payload para o seu arquivo
malicioso, escolha o Windows Meterpreter Reverse_TCP x64 (para sistemas
operacionais 64bits).

O SET deve pedir as opções relevantes do payload que, nesse caso,


são LHOST e LPORT. Configure o listener do payload com o endereço IP do
Kali Linux. Deixe a porta com a qual será feita a conexão de volta com o valor
default (443). A seguir, você será solicitado a dar um nome ao seu arquivo
malicioso, selecione a opção 2 para renomear o PDF malicioso e digite o
nome do arquivo cupomdescontoifood.pdf. O SET deverá continuar.

Agora, decida se o SET deverá enviar o nosso arquivo malicioso a um


único endereço de e-mail ou a uma lista de endereço. No caso, vamos enviar
apenas para um destinatário. Observe que o SET irá perguntar se deseja um

118
template de e-mail padrão ou se deseja criar um template personalizado.
Vamos escolher template padrão.

Vamos selecionar a opção 3 e, posteriormente, digitar o e-mail do


nosso alvo.

Após definirmos o remetente e as demais informações sobre o


servidor de e-mail, basta ativarmos o listener do SET, aguardar o usuário
alvo, receber o e-mail e abrir o PDF para ganharmos acesso ao sistema-alvo.

119
Sessão conectada, após o usuário abrir o arquivo PDF.

3.6. Explorando o Alvo (Pós Exploração)


Um Ethical Hacker, após ganhar o acesso ao sistema-alvo, deve
procurar informações valiosas da mesma maneira que um Black Hacker.
Porém, posteriormente na entrega dos resultados obtidos, ele deverá
comprovar a invasão ao sistema-alvo e informar quais informações foram
capturadas durante o teste. A seguir, veremos alguns comandos úteis nessa
jornada.

Procura de arquivos usando o comando “search”. Observe que


encontramos no sistema-alvo um arquivo que continha a palavra “senha”.

Outra maneira de coletar informações é permitir que o usuário


logado as forneça para você, por assim dizer. O Meterpreter contém um
keylogger (registrador de teclas) que podemos usar para registrar as teclas

120
digitadas. Quem sabe o usuário faça login em sites ou em outros sistemas
da rede enquanto nossa sessão Meterpreter estiver ativa. Inicie o keylogger
na sessão Meterpreter do sistema-alvo digitando keyscan_start, e
posteriormente key_dump para capturar o que está sendo digitado no
teclado. Para finalizar a captura, use key_stop.

Existem alguns ótimos comandos a serem utilizados nessa fase de


coleta de dados após a exploração, como por exemplo o comando screenshot
utilizado para realizar um print-screen da tela do sistema-alvo, e os
comandos: record_mic para acionar a gravação em tempo real do microfone
do sistema-alvo, e o webcam_stream para realizar a visualização em tempo
real de uma webcam.

Gostou? Quer saber mais comandos? Digite do shell do meterpreter


o comando “help” e descubra o que esse framework é capaz de fazer durante
um teste de intrusão.

3.7. Eliminação dos Rastros


Como acredito ser de conhecimento de todos, um dos itens mais
importantes no contexto da TI e que poucas equipes (infelizmente) dão
valor são os arquivos de LOGs. Isso porque um arquivo de LOG pode dizer
muita coisa sobre o que está ocorrendo em um ambiente de TI. Sabendo
disso, um Black Hacker, sempre busca eliminar os rastros deixados após a
fase de exploração. Vejamos como isso é realizado.

Aqui nós temos o sistema-alvo com o “visualizador de eventos”


aberto e totalmente carregado de LOGs.

121
O processo para limpeza utilizando o meterpreter é bem simples,
basta executar o comando “clearev” para apagar todos os eventos.

No caso do sistema operacional Linux, os arquivos de LOG ficam no


diretório /var/log e, neste caso, para realizar a limpeza, após um ataque ao
sistema, bastaria remover os arquivos com o comando rm -rf /*.

122
4
Capítulo 4. Tópicos Especiais: HoneyPot
Por definição, um HoneyPot é um recurso computacional de
segurança dedicado a ser sondado, atacado ou comprometido. Podendo ser
compreendido melhor como uma configuração de um computador ou rede
que tem como principal objetivo aprimorar o conhecimento das equipes de
segurança atraindo Black Hackers ou Crackers para posteriormente analisar
suas ações e determinar os melhores mecanismos e medidas de proteção
em um ambiente de TI real.

Dentre as vantagens obtidas com a implementação de um HoneyPot,


citamos:

• A redução dos riscos à segurança da informação, uma vez que as


equipes de segurança aprendem o comportamento de um invasor, e
com esse aprendizado podem implementar meios de mitigar os
riscos e as ameaças;

• Avaliação dos mecanismos de segurança implementados, em uma


escala menor se comparado com um teste de intrusão, um HoneyPot
permite à equipe de segurança, de maneira rápida, mensurar seus
mecanismos de proteção implementados no ambiente de TI;

• Fonte de pesquisa, um HoneyPot é uma ótima fonte de pesquisa,


quando o assunto é comportamento de uma ameaça perante uma
vulnerabilidade. Isso porque o HoneyPot permite coletar as ações
que estão sendo executadas.

Mesmo sendo considerada por muitos especialistas em segurança


da informação como uma fermenta valiosa à proteção de um ambiente de

124
TI, sua implementação requer muito cuidado e atenção, pois caso contrário,
pode-se tornar uma porta de acesso aos Black Hackers.

Figura 55 - Arquitetura de um HoneyPot

Um HoneyPot muito interessante é o HoneyDrive. Trata-se de uma


distribuição Linux já totalmente configurada com os principais softwares
que devem conter um HoneyPot, configurados e totalmente funcionais, que,
após sua instalação e algumas configurações específicas, realizadas pelas
equipes de segurança para adequá-lo ao seu ambiente, proporciona grandes
resultados.

Figura 56 - Interface do HoneyDrive

125
Quanto à classificação de um HoneyPot, este pode ser classificado
de acordo com a sua localização em um ambiente de TI, podendo estar
localizado no ambiente de produção, no qual busca-se obter informações
sobre as técnicas usadas para tentar violar os sistemas que compõem essa
infraestrutura.

O leque de possibilidades oferecidas por um honeypot em uma rede


em produção é muito amplo. Desde a possibilidade de localizar o honeypot
no segmento da rede interna de servidores da empresa, com o objetivo de
detectar o possível acesso dos usuários internos aos recursos críticos da
organização (por exemplo, ao arquivo da folha de pagamento), até a
publicação de um serviço da web com a mesma configuração e design que o
mesmo serviço que está em produção ou pré-produção. A maior
desvantagem dessa escolha é o perigo para os sistemas organizacionais,
permitindo (até causando) que o tráfego malicioso coexista com o legítimo.

Podemos ainda ter os HoneyPots de pesquisa, nesse caso, o


principal objetivo é a coleta da maior quantidade de informações que
permita às equipes de segurança analisar novas tendências nos métodos de
ataque, bem como os principais objetivos perseguidos e as diferentes
origens dos ataques. O resultado dessa análise é incluído em relatórios cujo
objetivo é apoiar a tomada de decisões na implementação de medidas
preventivas de segurança.

A principal vantagem de colocar o honeypot em uma rede


independente, dedicada exclusivamente à pesquisa, é a separação do
sistema vulnerável do restante dos sistemas produtivos, evitando assim a
possibilidade de sofrer um ataque através do próprio honeypot. A
desvantagem refere-se à quantidade de recursos necessários sobre a
arquitetura a ser usada, pois haverá mais trabalho a ser realizado. Isso

126
porque haverá a necessidade de, “vamos dizer”, criar toda uma
infraestrutura de TI do zero.

Outro método de classificação de um HoneyPot é a INTERAÇÃO com


o atacante. Nesse caso, os honeypots são agrupados em dois tipos:

• Baixa interação: o honeypot emula um serviço, um aplicativo ou um


sistema vulnerável. Suas principais características são a instalação
e configuração simples, além da capacidade limitada de obter
diferentes tipos de dados. Exemplos de honeypots desse tipo são:
Honeydrive já mencionado anteriormente; HoneyC, que tem como
objetivo a identificação de servidores web maliciosos na rede e, para
isso, emula vários clientes e coleta o máximo de informações
possível das respostas dos servidores, quando eles respondem às
solicitações de conexão. O HoneyC é expansível de várias maneiras:
diferentes clientes, sistemas de pesquisa e algoritmos de análise
podem ser usados; Honeytrap, esse honeypot é destinado à
observação de ataques contra serviços de rede. Ao contrário de
outros honeypots, que geralmente se concentram na coleta de
malware, o objetivo do Honeytrap é capturar explorações; e, por fim,
o Glastopf, que emula milhares de vulnerabilidades para coletar
dados de ataques contra aplicativos da web. A base para a coleta de
informações é a resposta correta oferecida ao invasor quando ele
tenta explorar o aplicativo da web. É fácil de configurar e, uma vez
indexado pelos mecanismos de pesquisa, as tentativas de explorar
suas vulnerabilidades se multiplicam.

• Alta interação: nesse caso, o honeypot é um aplicativo com o qual


você pode interagir e responder conforme o esperado, com a
diferença de que seu design é orientado a fazer um registro
exaustivo da atividade realizada nele e de que a informação que ela

127
contém não é relevante em nenhum caso. Como exemplo, podemos
citar: HI-HAT (Kit de Ferramentas de Análise de Honeypot de Alta
Interação), uma ferramenta que transforma aplicativos php em
aplicativos de honeypot de alta interação. Também oferece uma
interface web que permite consultar e monitorar os dados gravados;
HoneyBow, uma ferramenta de coleta de malware que pode ser
integrada ao honeypot de baixa interação da Nephentes para criar
uma ferramenta de coleta muito mais completa; Sebek, que funciona
como um HIDS (Sistema de Detecção de Intrusão Baseado em Host
), permitindo capturar uma grande variedade de informações sobre a
atividade em um sistema, uma vez que atua em um nível muito baixo.
É uma arquitetura cliente-servidor, com capacidade
multiplataforma, que permite que Honeypots de clientes sejam
implantados nos sistemas Windows, Linux, Solaris etc., responsáveis
por capturar e enviar a atividade coletada para o servidor Sebek.
Poderíamos dizer que faz parte de uma terceira geração de
honeypots.

No Brasil, existe um projeto mantido pelo CERT.br que tem como


objetivo aumentar a capacidade de detecção de incidentes, correlação de
eventos e determinação de tendências de ataques na internet brasileira. A
configuração utilizada é de Honeypot de baixa interatividade, que cobre uma
quantidade razoável de endereços IPv4 da internet no Brasil. Entre as
funções que se destacam nesse projeto, podemos citar o seu sistema de
notificação diária aos grupos de tratamento de incidentes (CSIRTs) que
fazem parte do projeto.

Figura 57 - Honeypots que compõem o projeto da CERT.br

128
Referências
BRUYNE, Paul de. Dinâmica da pesquisa em Ciências Sociais: os polos da
prática metodológica. 5. ed. Rio de Janeiro: Francisco Alves, 1991.

CERT.br. O Centro de Estudos, Resposta e Tratamento de Incidentes de


Segurança no Brasil, 2020. Disponível em: https://www.cert.br/. Acesso em: 26
jan. 2022.

FRAGA, Bruno. Técnicas de Invasão: Aprenda as Técnicas Usadas por


Hackers em Invasões Reais. Rio de Janeiro: Editora Labrador, 2016.

MACHADO, Felipe R. Nery. Segurança da Informação: Princípios e controle


de ameaças. Rio de Janeiro: Editora Érica, 2014.

MORENO, Daniel. Introdução ao Pentest. 2. ed. São Paulo: Editora Novatec,


2017.

MORENO, Daniel. Pentest em Aplicações WEB. São Paulo: Editora Novatec,


2018.

129
MOTA FILHO, José Eriberto. Análise de Tráfego em Redes TCP/IP. São Paulo:
Editora Novatec, 2014.

PORTO, Lidianne. Você já ouviu falar de Método? Saiba o que é a


Metodologia. 2020. Disponível em: https://escolaeducacao.com.br/o-que-e-
metodologia/. Acesso em: 26 jan. 2022.

RICHARD, Blum; BRESNAHAN, Cristine. Linux Command Line and Shell


Scripting Bible. 3. ed. USA: Wiley, 2015.

SCHULTZ, Corey P. Kali Linux Cookbook – Effective Penetration Testing


Solutions. 2. ed. USA: Packet, 2018

SÊMOLA, Marcos. Gestão da Segurança da Informação. 2. ed. São Paulo:


Gen-LTC, 2013.

SINHA, Sanjib. Beginning Ethical Hacking with Kali Linux: Computational

7
10
6
9
8
5
Techniques for Resolving Security Issues. Índia: Apress, 2018.

STALLINGS, Willian. Criptografia e Segurança de Redes: Princípios e


Práticas. 6. ed. São Paulo: Pearson, 2016.

STRAUSS, Anselm; CORBIN, Juliet. Basics of qualitative research: grounded


theory procedures and techniques. Newbury Park, CA: Sage Publications,
1998.

TANENBAUM, Andrew. S. Redes de Computadores. 4. ed. Rio de Janeiro:


Editora Campus (Elsevier), 2011.

TEIXEIRA, Daniel; SINGH, Abhinav; AGARWAL, Monika. Metasploit


Penetration Testing Cookbook. 3. ed. Mumbai: Packt, 2017.

130

Você também pode gostar