Você está na página 1de 44

Fundamentos em Segurança Ofensiva

Bootcamp: Segurança Ofensiva

Paulo Gontijo

2021
Fundamentos em Segurança Ofensiva
Bootcamp: Segurança Ofensiva
Paulo Gontijo
© Copyright do Instituto de Gestão e Tecnologia da Informação.
Todos os direitos reservados.

Fundamentos em Segurança Ofensiva – Página 2 de 44


Sumário

Capítulo 1. Introdução a Segurança ...................................................................... 5

Pilares e conceitos de Segurança ........................................................................... 5

Segurança – Generalizações e especializações..................................................... 6

Red Team, Blue Team e Purple Team ................................................................... 6

Em segurança ofensiva, o que preciso conhecer? ................................................. 7

Hacker mindset ....................................................................................................... 8

Capítulo 2. Conceitos básicos de redes e uso de Linux ...................................... 10

Introdução a redes de computadores – Modelo OSI............................................. 10

TCP/IP .................................................................................................................. 11

Linux ..................................................................................................................... 13

Capítulo 3. Ativos de segurança e virtualização .................................................. 15

Ativos de Segurança e Infraestrutura .................................................................... 15

Capítulo 4. Ataque a redes de computadores ..................................................... 17

Ataques e defesa a redes de computadores ........................................................ 17

Ameaças do cyberspace ....................................................................................... 20

Capítulo 5. Segurança ofensiva........................................................................... 21

É tudo igual ou diferente? ..................................................................................... 21

Tipos de ataque e obtenção de autorização ......................................................... 22

Fases de um ataque ............................................................................................. 22

Engenharia social ................................................................................................. 23

Capítulo 6. Reconhecimento, varredura e enumeração ...................................... 24

Reconhecimento com Shodan .............................................................................. 24

Reconhecimento com DNS ................................................................................... 25

NMAP ................................................................................................................... 25

Fundamentos em Segurança Ofensiva – Página 3 de 44


Scan de vulnerabilidades ...................................................................................... 26

CVE e CVSS ......................................................................................................... 28

Capítulo 7. Exploração de vulnerabilidades - Infraestrutura ................................ 31

Kali ........................................................................................................................ 31

Metasploit.............................................................................................................. 32

Capítulo 8. Explorando vulnerabilidades – Aplicações ........................................ 33

Entendendo a causa de aplicações inseguras ...................................................... 33

Arquitetura de aplicações ..................................................................................... 33

Ataque a APIs ....................................................................................................... 35

Ataques a aplicações Web.................................................................................... 36

Utilizando Burp e SQLMAP ................................................................................... 37

Capítulo 9. Apresentando resultados .................................................................. 38

Apresentação de resultados ................................................................................. 38

O dilema do Red Team ......................................................................................... 39

Capítulo 10. Entendendo como ocorre a proteção do ambiente............................ 42

Entendendo como ocorre a proteção do ambiente ............................................... 42

Referências............ .................................................................................................. 44

Fundamentos em Segurança Ofensiva – Página 4 de 44


Capítulo 1. Introdução a Segurança

Olá! Esta apostila tem como objetivo ser um guia rápido dos conceitos e
práticas vistas e detalhadas nas aulas gravadas, utilize-a como referência. Boa leitura!

Pilares e conceitos de Segurança

Os pilares de segurança se aplicam a todas suas dimensões: da informação,


cibernética, ofensiva, defensiva dentre outras:

Figura 1 – Pilares de Segurança.

Conceitos fundamentais se aplicam a segurança e podem ser melhor


entendidos por seus conceitos, são eles:

Ameaça = Atacante hacker.

Vulnerabilidade = Banco de dados com senha padrão exposto na internet.

Ativo = Servidor Web com o site da empresa.

Controle = Firewall bloqueando FTP para a Internet.

Tais conceitos se conectam da seguinte forma: “Uma ameaça explora uma


vulnerabilidade presente em um ativo, que não é protegido por um controle de
segurança”.

Fundamentos em Segurança Ofensiva – Página 5 de 44


Segurança – Generalizações e especializações

Segurança cibernética, pode ser entendida como a especialização da


segurança da informação, da mesma forma que segurança ofensiva é uma
especialização das citadas anteriormente. Cabe aqui ressaltar que não há mais ou
menos importância se estamos nos referindo a algo mais genérico (segurança da
informação) ou mais especializado (segurança ofensiva). Para tal, façamos uso de
uma analogia: a medicina.

Na medicina, um médico, clínico geral, possui um conhecimento abrangente


do corpo humano, entendendo seu contexto, interações e formas de manifestação
como um todo. Já um médico especializado em cirurgia do joelho, entende menos,
por exemplo, sobre enxaquecas recorrentes e muito mais sobre como operar um
joelho lesionado. Note que não há graus de importância em que possamos comprar
ambos os médicos, fato é que, dependendo da dor, iremos procurar um ou outro. Em
segurança a analogia é a mesma, gestores de segurança, por exemplo, tem uma
visão ampla e abrangente, enquanto integrantes de um red team, tem conhecimento
especializado em ferramentas de ataque, ambos são igualmente importantes e
necessários no contexto de uma organização.

Red Team, Blue Team e Purple Team

Os times de segurança podem ser agrupados em 3 grandes verticais:

Figura 2 – Times de Segurança.

Fonte: Twitter, @proxyblue.

Fundamentos em Segurança Ofensiva – Página 6 de 44


Suas principais atribuições são:

Red Team:

▪ Simula ataques.

▪ Atua continuamente buscando vulnerabilidades e explorando falhas.

▪ Executa testes Black / Gray box.

▪ Não tem acesso prévio / liberado aos sistemas atacados.

▪ Atua, sempre, com permissão (escrita) prévia.

Blue Team:

▪ Cria, implanta e monitora controles para evitar ataques.

▪ Identifica e reage a incidentes.

▪ Corrige e reporta falhas.

▪ Tem amplo conhecimento e acesso ao ambiente interno.

Purple Team:

▪ Cria, implanta e monitora controles para evitar ataques.

▪ Identifica e reage a incidentes.

▪ Corrige e reporta falhas.

▪ Tem amplo conhecimento e acesso ao ambiente interno.

Em segurança ofensiva, o que preciso conhecer?

A aquisição de conhecimento é um processo contínuo e deve ser encarado


como um processo de descoberta, gerando, portanto, prazer e não sofrimento. Se

Fundamentos em Segurança Ofensiva – Página 7 de 44


este é o seu caso, esteja certo de que trabalhar com segurança é para você. Isso pois
a amplitude de conhecimento que se espera de um profissional que trabalha nesta
área é muito vasta, especialmente aqueles que trabalham com segurança ofensiva.
Os conhecimentos envolvem quatro grandes áreas de conhecimento: infraestrutura,
ferramentas de segurança, governança e software.

Figura 3 – Áreas de conhecimento.

Hacker mindset

A palavra hacker, de acordo com a Wikipedia, tem conotação bem diferente


daquela que nos deparamos com o exposto pela mídia em geral:

Figura 4 – Definição de hacker.

Fonte: Wikipédia.

Já a palavra mindset, remete a uma visão de mundo ou filosofia de vida. Desta


forma, hacker mindset pode ser entendido como acreditar em um mundo que deve
ser explorado além de suas fronteiras tradicionais. Assim, se um sistema foi
designado para funcionar de forma X, é interesse do hacker encontrar formas que

Fundamentos em Segurança Ofensiva – Página 8 de 44


fujam da forma originalmente projetada. É um caminho de descobertas constantes,
de experimentação, de tentativa e erro.

Fundamentos em Segurança Ofensiva – Página 9 de 44


Capítulo 2. Conceitos básicos de redes e uso de Linux

Neste capítulo veremos os conceitos básicos para o correto entendimento das


redes de computador, bem como uma breve introdução ao Linux.

Introdução a redes de computadores – Modelo OSI

O modelo OSI (Open Systems Interconnection) é composto de sete camadas


de comunicação, cada uma com uma finalidade específica. O objetivo do modelo OSI
é permitir a interligação entre equipamentos de diferentes fabricantes. Assim eu posso
ter um computador da marca Dell, conectado com um switch da Cisco, que se conecta
com um roteador Huawei, que por sua vez está conectado a um firewall Checkpoint.
Tudo isso é possível graças a compatibilidade proporcionada por este modelo.

Figura 5 – Fluxo de dados.

Na imagem acima é descrito na primeira coluna o número da camada, na


segunda o seu nome, na terceira o nome do protocolo de exemplo e na quarta um
exemplo de fluxo e como cada camada participa do processo. Note como o processo
começa no desktop, na camada 7, onde o usuário seleciona uma imagem para upload
e este pacote vai sendo agregado com informações nas camadas inferiores, até que
sai da máquina na camada 1, através da sua transformação em pulsos elétricos. Na

Fundamentos em Segurança Ofensiva – Página 10 de 44


outra ponta temos o servidor, que recebe tais pulsos elétricos e desempacota tais
informações, camada a camada até ser interpretada na camada 7, para que a imagem
seja salva.

Nem toda comunicação acontece em todas as camadas. O popular comando


ping (echo request), por exemplo, começa sua execução na camada 3 e desce o
modelo OSI até ser transformado em pulso elétrico. Assim que recebido pelo servidor
ele interpreta tais pulsos elétricos e desempacota o mesmo apenas até a camada 3,
respondendo com um pong (echo reply).

A figura abaixo demonstra como um pacote recebe agregação de


informações à medida que vai descendo as camadas do modelo OSI.

Figura 6 – Pacote no modelo OSI.

Fonte: Wikipédia, com adaptações.

TCP/IP

O Transmition Control Protocol/Internet Protocol é, como o nome diz, o


protocolo da internet. Embora carregue apenas o nome TCP, há também o UDP (User
Datagram Protocol).

Fundamentos em Segurança Ofensiva – Página 11 de 44


O TCP e o UDP atuam na camada 4 do modelo OSI e o IP na camada 3. O
TCP fornece conexão com controle de fluxo de sessão, isso significa que há
sequenciamento no processamento dos pacotes. Assim, quando executo um
comando remotamente, por exemplo: “ps –ax” no caso do Linux, para listar os
processos da máquina, eu só devo receber a tela após a tecla ENTER ser
pressionada. Já o UDP não prevê este controle de fluxo e por isso é muito utilizado
em transmissões de voz e vídeo. Há de se destacar que o TCP possui um tamanho
de pacote maior para controles deste fluxo e é por isso mais lento que o UDP.

Em comunicações ao vivo, como ligação telefônica, o uso de UDP é mais


utilizado, pois se eu perco pacotes na comunicação da rede, por exemplo, conduzindo
a mensagem falada “estou bem”, não faz sentido eu reproduzir este pacote depois de
passado 10 segundos de conversa. No caso de mecanismos de streaming, o uso de
TCP é mais plausível, motivo pelo qual os principais serviços de streaming o
implementam. Isso porque garante que a imagem ficará pouco distorcida (perda de
pacote). A forma como tais serviços diminuem o efeito da maior lentidão do protocolo
TCP é através do caching local. Desta forma, a informação que sua televisão recebe
agora na verdade vai ser reproduzida dentro de alguns segundos, desta forma, caso
alguma informação seja perdida, há tempo para que o TCP corrija as falhas e
entregue um conteúdo com melhor qualidade.

Quando falamos de IP, correlacionamos imediatamente com endereços IP,


não é mesmo? E esta é a sua função, prover endereçamento para que a comunicação
ocorra. Os endereços IPs, na versão mais popular e amplamente usada na internet
(IPv4), tem tipicamente um formato análogo a este: 192.168.0.1, ou seja, um conjunto
composto de quatro subconjuntos, compostos por até três números.

O que é importante reforçarmos, para o nosso conhecimento prático, com


relação ao IP, diz respeito a máscara de rede, isso porque é ela quem determina se
um pacote vai trafegar na rede local, ou precisará ser encaminhado para que o
roteador determine o seu destino.

Considerando que a explicação didática para o entendimento do seu


funcionamento é mais bem demostrada em sala de aula, não aprofundaremos o seu

Fundamentos em Segurança Ofensiva – Página 12 de 44


conhecimento aqui, até mesmo porque atualmente existem inúmeras opções de
calculadoras IP disponíveis na internet. Sorte essa que o autor não teve ao iniciar
seus estudos em redes de computadores há muitos anos atrás. ☺

Portanto, mais importante do que investir tempo na compreensão detalhada


dos bits e bytes que criam a lógica do comportamento do endereçamento IP, é saber
qual a faixa (primeiro e último IP) aquele endereço carrega. Abaixo uma imagem que
demonstra tal consulta no site: http://calculadoraip.com.br/.

Figura 7 – Calculadora IP.

Fonte: http://calculadoraip.com.br/

Linux

O sistema operacional utilizado para praticar os conceitos que aprendemos


acima e que também aprenderemos nos capítulos posteriores é o Linux, na sua
distribuição Ubuntu. O Linux, atualmente já conhecido por todos nós, está presente
em servidores, desktops, dispositivos IoT e muito mais. Na minha visão pessoal não

Fundamentos em Segurança Ofensiva – Página 13 de 44


existe entendimento técnico de segurança sem conhecimento de Linux, motivo pelo
qual o utilizamos do início ao fim do curso. Isso significa que não é importante
conhecer de segurança em Windows ou utilizá-lo para fins de demonstração? De
forma alguma.

O fato é que se torna necessário fazer uma escolha para fins didáticos e esta
foi a escolha do autor que aqui vos escreve. Ademais, boa parte dos alunos tem
contato natural com o Windows no dia a dia, desta forma, utilizar o Linux adiciona
conhecimentos para aqueles que ainda não tiveram oportunidade de conhecer o
sistema operacional. Caso você nunca tenha usado o sistema operacional do
pinguim, como é conhecido, não se assuste. A tela preta, característica principal do
seu console de administração, pode espantar no início, mas muito em breve você
verá o quão maleável e potente ele é e passará a enxergá-lo como amigo.

Existe um guia, disponível online, que recomendo fortemente para aqueles


que querem aprofundar em Linux: https://www.guiafoca.org/.

Fundamentos em Segurança Ofensiva – Página 14 de 44


Capítulo 3. Ativos de segurança e virtualização

Neste capítulo, veremos sobre os principais ativos de segurança e


virtualização.

Ativos de Segurança e Infraestrutura

A topologia abaixo detalha em uma única figura todos os principais


componentes de uma arquitetura de rede que preza pela segurança. Nas imagens
seguintes é possível compreender o papel de cada componente.

Figura 8 – Conjunto de imagens de uma arquitetura segura.

Fundamentos em Segurança Ofensiva – Página 15 de 44


Fundamentos em Segurança Ofensiva – Página 16 de 44
Capítulo 4. Ataque a redes de computadores

Neste capítulo veremos tipos de ataque e nas aulas gravadas usaremos as


ferramentas para execução dos mesmos.

Ataques e defesa a redes de computadores

Cada tipo de ataque a rede de computadores busca explorar um ou mais


pilares de segurança da informação, a figura abaixo cita alguns deles:

Figura 9 – Exemplos de ataques.

Um ataque muito famoso na internet é o de DDoS. Vários bancos, empresas


de e-commerce e outras tantas já ficaram indisponíveis por ataques como este na
internet. Basta fazer uma pesquisa no Google para obter exemplos. O ataque de
DDoS tem início com a infecção por malware ou software malicioso análogo em
dezenas, centenas, as vezes milhares, e há alguns casos raros de milhões de
máquinas infectadas. Ao conjunto destas máquinas, denominamos botnets. Estas
máquinas são então gerenciadas por outras máquinas também invadidas, chamadas
máster. O papel da máquina máster é importante, e é necessário que sejam várias,
pois a perda de uma delas leva automaticamente a perda de controle de muitas
máquinas zumbis. Quando um atacante resolve fazer um ataque, ele envia um
comando para que todas estas máquinas façam conexões simultâneas à vítima.
Usualmente, a vítima, por mais que seja grande, não está preparada para receber um
número tão gigante de conexões simultâneas, quando este limite é ultrapassado
temos então a negação do serviço (Denial of Service).

Fundamentos em Segurança Ofensiva – Página 17 de 44


Figura 9 – Ataque DDoS.

Fonte: Canaltech.

Atualmente um serviço muito utilizado para proteção de ataques de DDoS


são as chamadas CDNs (Content Delivery Network). O propósito principal destas
redes é entregar conteúdos, como imagens, vídeos e páginas web numa velocidade
muito mais ágil. Elas fazem isso aproximando o servidor que atende a requisição do
browser do usuário que acessa o site, no entanto, como tais redes têm uma
capacidade de entrega inimaginável em termos de bits por segundo, é comum serem
usados também para defesa dos sites de empresas. Abaixo uma figura que compara
do lado esquerdo um cenário sem CDNs e do direito a implementação de CDNs.

Fundamentos em Segurança Ofensiva – Página 18 de 44


Figura 9 – Ataque DDoS.

Fonte: Xlab Security.

Outro ataque muito comum em redes de computadores é o sequestro de DNS


(Domain Name System). O DNS é responsável por transformar nomes, como
www.meusite.com.br para IPs. Desta forma, quando nossos computadores fazem
consultas a servidores de DNS, eles recebem como retorno o IP que devem acessar.
Se estes DNSs são invadidos, é possível manipular o IP que é acessado, levando o
usuário a acessar algo que acredita ser o site correto, quando na verdade, este pode
cair em uma armadilha que irá capturar informações relevantes do usuário enganado.
Existem algumas formas de se proteger deste tipo de ataque:

1) Utilize diretamente nas máquinas (desktops ou servidores) o IP 8.8.8.8


(Google) ou 1.1.1.1 (Cloudfare).

2) Se o seu servidor de DNS for um roteador de banda larga, mantenha este


sempre atualizado e usado sempre como cache de serviços, serviços
confiáveis como 8.8.8.8 (Google) e 1.1.1.1 (Cloudfare).

Fundamentos em Segurança Ofensiva – Página 19 de 44


3) Se o seu servidor de DNS está instalado em um servidor interno, garanta
que este atue apenas como resolver, ou seja, que ele preste serviços
apenas para a rede interna.

Ameaças do cyberspace

Existem uma enormidade de ameaças presentes no cyberspace, o quadro


abaixo detalha o tipo de ameaça, como é dado a infecção, os objetivos e a forma de
prevenção/remediação. Para fins didáticos, algumas ameaças foram aglutinadas em
uma única linha.

Figura 10 – Ameaças do cyberspace.

Ameaça Como é a infecção Objetivos Prevenção/Remediação


Malware / Keylogger Usualmente via anexo de email Obter dados como número do cartão de crédito Antimalware
e senhas
Virus / Worms Falhas em sistemas operacionais ou aplicativos muito Se replicar e causar danos ao usuário (deletar Antivirus
usados (ex: pdf reader) arquivos, por exemplo)
Ransonware Falhas em sistemas operacionais ou aplicativos muito Criptografar arquivos do computador e pedindo Anti-Ransonware Tools
usados (ex: pdf reader) resgate em BitCoin para devolução dos dados

Spywares Usualmente via anexo de email e instalação de Obter o comportamento e informações pessoais Antispyware Tools
aplicativos baixados da Internet (search bars) do usuário infectado e direciona-lo para sites de
propaganda
Rootkits Instalado pelo invasor após ter acesso ao sistema Permitir o atacante não ser detectado em chkrootkit
(usualmente presente em servidores invadidos) acessos futuros. Usualmente aplicativos de
sistema como "ls", "ps" e outros são substituídos
pelos do rootkit

Fundamentos em Segurança Ofensiva – Página 20 de 44


Capítulo 5. Segurança ofensiva

Aprofundaremos neste capítulo o entendimento e conceitos sobre segurança


ofensiva.

É tudo igual ou diferente?

Alguns conceitos em segurança ofensiva, são frequentemente confundidos,


e merecem, portanto, explicação a respeito.

Pen Tester ou penetration tester diz respeito ao profissional ou equipe de


profissionais que são contratados para executar testes de penetração. Tais testes
usualmente são amparados por contratos, que tem escopo, tempo e custo bem
definidos.

Red team pode ser entendido como a equipe de segurança ofensiva de uma
empresa. O trabalho executado por um red team é análogo ao pen tester, no entanto,
se difere pelo fato de ser contínuo. Na maioria dos casos, o red team é composto por
funcionários da empresa onde se executam os testes de penetração. Usualmente, o
red team é presente em empresas de grande porte.

Como visto em capítulo anterior, o conceito de hacker é frequentemente


citado pela mídia como atrelado a uma ou mais pessoas que causam danos a uma
empresa, no entanto, o conceito, como também vimos através da Wikipédia, diz
respeito a “um indivíduo que se dedica com intensidade incomum a conhecer e
modificar os aspectos mais internos de dispositivos, programas e redes de
computador”, desta forma, o mais correto é atribuir o nome de hacker malicioso a
indivíduos que geram danos a empresas, buscando obter ganho financeiro ou mesmo
status.

Ethical Hacker, é o indivíduo que atua em red teams ou em


consultorias/empresas que prestam serviços (pen testers) de forma ética e, portanto,
consensual.

Fundamentos em Segurança Ofensiva – Página 21 de 44


Tipos de ataque e obtenção de autorização

Existem três tipos de ataques:

Black box: nenhum conhecimento é fornecido ao atacante (ethical hacker),


devendo este executar todas as etapas necessárias para obter acesso não autorizado
a sistemas ou dados.

Gray box: conhecimento ou acessos parciais se aplicam neste tipo de ataque.


Assim, poderíamos considerar, por exemplo, um usuário que tem acesso não
privilegiado a um sistema e que busca elevar seus privilégios de forma não
autorizada, como um tipo de ataque gray box.

White box: neste tipo de ataque, que se confunde mais com uma análise
exploratória, privilégios são concedidos, por exemplo, ao código fonte de uma
aplicação, e o ethical hacker busca vulnerabilidades que possam ser futuramente
corrigidas.

É fundamental que em todos os tipos de ataque (black, gray ou white box) o


ethical hacker, obtenha autorização prévia, seja este integrante de uma empresa
contratada (pen tester) ou integrante do red team. Tal autorização deve ser concedida
por escrito, delimitar escopos e ações a serem tomadas por este no caso da
descoberta de vulnerabilidades. É fundamental que o ethical hacker comunique a
empresa, através dos canais estabelecidos, a descoberta de tais vulnerabilidades. De
forma alguma o ethical hacker, deve tornar pública as suas descobertas
(vulnerabilidades) atreladas a empresa alvo.

Fases de um ataque

De acordo com o EC-Council, um ataque pode ser descrito em cinco fases,


conforme figura abaixo:

Fundamentos em Segurança Ofensiva – Página 22 de 44


Figura 11 – Fases de um ataque.

Fonte: EC-Council, com adaptações do autor.

Engenharia social

Obter informações, acessos ou influenciar pessoas para que executem ações


em prol de um ataque recebe o nome de engenharia social. Esta técnica, ficou
mundialmente conhecida após Kevin Mitnick ser preso em 1995, por invadir sistemas
de telecomunicações.

Cito este vídeo no Youtube que esclarece bem como a técnica funciona:
https://www.youtube.com/watch?v=My-SizcEJok.

Outra forma de ataque que se baseia em engenharia social é aquela atrelada


a conteúdos (e-mails, sites de internet, publicações em redes sociais etc.) que levam
a pessoa a, na maioria das vezes, clicar em um link ou executar um arquivo infectado
que permite ao atacante acesso a informações não autorizadas.

Fundamentos em Segurança Ofensiva – Página 23 de 44


Capítulo 6. Reconhecimento, varredura e enumeração

Neste capítulo temos as práticas de reconhecimento, varredura e


enumeração que são demonstrados nas aulas gravadas em vídeo, aqui você irá
encontrar os conceitos básicos e referências sobre as ferramentas.

Reconhecimento com Shodan

O Shodan (https://shodan.io) é uma ferramenta de busca online que


apresenta informações sobre equipamentos, serviços ou qualquer outra coisa que
esteja pública na internet. De acordo com o próprio site é possível responder a
perguntas como: qual a versão do IIS é a mais popular em algum país do mundo, ou,
considerando que uma nova vulnerabilidade seja descoberta, qual seria a quantidade
de dispositivos infectados no mundo?

Realizar uma busca no Shodan é simples, basta digitar o que se deseja e ele
retorna uma página com os IPs encontrados, sua localização e informações como
versão, data que foi feita a query pelo Shodan e outras. Para realizar mais do que
dois buscar é necessário estar logado, de forma gratuita, no site.

Figura 12 – Retorno da pesquisa no Shodan.

Fonte: shodan.io.

Fundamentos em Segurança Ofensiva – Página 24 de 44


Reconhecimento com DNS

O DNS, ou Domain Name System, é o serviço responsável por transformar


nomes em IPs e vice-versa. A Internet trabalha com o roteamento de pacotes,
baseado em endereços IPs, mas humanos são melhores em guardar nomes, este é
o principal motivo da existência do DNS. Se desejo acessar a página do Uol, da Gol
ou da Americanas, basta eu colocar o nome destes acrescidos do .com.br, ou seja, a
associação da marca ao nome na internet é imediata.

Podemos utilizar o DNS (ferramenta nslookup), para fazer buscas adicionais


sobre quais são os servidores de e-mail de um domínio, quais são seus responsáveis
e, dependendo do caso, até listar todas as entradas de DNS.

Figura 13 – Utilização do nslookup para consulta de servidor de e-mail.

NMAP

O nmap (nmap.org) é uma ferramenta open source utilizada para realizar


auditorias de segurança e discovery. Em nossas aulas em vídeo, utilizamos o nmap
para realizar escaneamento de portas de um host específico e adicionamos a opção
-A para exibir informações de sistema operacional e fingerprinting, conforme pode ser
visto na imagem abaixo.

Fundamentos em Segurança Ofensiva – Página 25 de 44


Figura 14 – Tela de saída do comando nmap –A.

Scan de vulnerabilidades

De acordo com o site openvas.org/#about, em 2005, os desenvolvedores do


Nessus, decidiram parar de trabalhar com o projeto sob o licenciamento Open Source
e passaram, a partir de então, a comercializar o mesmo. Deste ponto em diante surgiu
o projeto OpenVas, que deu continuidade ao mesmo, usando o licenciamento Open
Source. O OpenVas evoluiu e em 2017 a Greenbone, empresa que mantém seu
código fonte, criou um produto comercial, assim como o Nessus, chamado
“Greenbone Vulnerability Manager”, onde o OpenVas está presente como o scan de
vulnerabilidade. Com isso, uma versão paga e outra gratuita foram originadas.
Infelizmente, comparando o OpenVas/Greenbone de hoje com o de 3 anos atrás,
muitas são as dificuldades atuais para a instalação e atualização do produto, o que
torna o processo didático custoso e muito focado em resolver problemas de

Fundamentos em Segurança Ofensiva – Página 26 de 44


instalação, configuração e atualização em detrimento de focar no que importa, que é
o scan de vulnerabilidades. Por este motivo utilizamos em nossas aulas o Nessus
Essentials, que tem todas as avaliações de profundida da versão paga, com limitação
apenas de 16 IPs verificados.

Se o seu ambiente requerer um volume maior do que estes 16 IPs, sugiro


seguir para a versão paga do Nessus ou mesmo a versão paga do Greenbone.

Figura 15 – Versão do Nessus utilizada nas aulas.

Fonte: https://www.tenable.com/.

Abaixo exemplo de relatório, gerado pelo Nessus (html).

Fundamentos em Segurança Ofensiva – Página 27 de 44


Figura 16 – Relatório gerado pelo nessus.

CVE e CVSS

CVE (Common Vulnerabilities and Exposures) pode ser entendido como uma
referência mundial para catalogar vulnerabilidades. É mantida por uma empresa
chamada MITRE e é financiado pelo governo americano. O CVE é utilizado tanto pelo
Nessus como pelo Openvas para as vulnerabilidades encontradas.

CVSS (Common Vulnerability Scoring System) é utilizado para mensurar o


impacto de uma vulnerabilidade, baseado em pontuações atribuídas a sua

Fundamentos em Segurança Ofensiva – Página 28 de 44


severidade. Assim, temos os CVEs, que apresentam a vulnerabilidade e o CVSS que
atribui o seu grau de severidade, conforme demonstrado na imagem abaixo:

Figura 17 – CVE e CVSS.

Fonte: https://www.imperva.com/.

Na imagem abaixo, podemos observar que a vulnerabilidade (CVE-2018-


8011) que afeta o Apache, tem uma pontuação total de 7.5, baseado em todas as
métricas que são definidas e apresentadas no site do NIST (nvd.nist.gov).

Fundamentos em Segurança Ofensiva – Página 29 de 44


Figura 18 – Pontuação CVSS para vulnerabilidade no Apache.

Fonte: https://nvd.nist.gov/.

Fundamentos em Segurança Ofensiva – Página 30 de 44


Capítulo 7. Exploração de vulnerabilidades - Infraestrutura

Neste capítulo utilizamos o Kali e o Metasploit nas aulas em vídeo, para


explorar vulnerabilidades na máquina Metasploitable.

Kali

O Kali Linux (kali.org) é uma distribuição Linux otimizada para realizar testes
de penetração. É uma distribuição open source, baseada em Linux Debian. O Kali é
mundialmente famoso por já entregar através de máquinas virtuais, ou através de
mídias de instalação, um conjunto completo para execução dos mais abrangentes
testes, como brute force, application assessment, web application analysis, sniffing e
muito mais. Em nossas aulas utilizamos a versão já instalada do Metasploit para
explorar vulnerabilidades em uma distribuição Linux conhecida como metasploitable,
que é intencionalmente vulnerável para o treinamento de pessoas, que como nós,
buscam entender como realizar testes de penetração.

Figura 19 – Kali Linux.

Fonte: https://www.kali.org/.

Fundamentos em Segurança Ofensiva – Página 31 de 44


Metasploit

O Metasploit é um framework que tem versões open source e pagas para


execução de exploração de vulnerabilidades. O Metasploit tem uma comunidade ativa
no GitHub e conta com mais de 11 mil forks e 24 mil estrelas. Em nossas aulas
gravadas, utilizamos exploits para obter acesso, realizar ataques de brute force e para
elevar privilégios.

Figura 20 – Tela do Metasploit.

Fundamentos em Segurança Ofensiva – Página 32 de 44


Capítulo 8. Explorando vulnerabilidades – Aplicações

Segurança em aplicações é um tema vasto e amplo, que abrange várias


tecnologias arquiteturas, frameworks e outros. Iremos entender o que torna o
desenvolvimento seguro e realizaremos exploração de vulnerabilidade em uma
aplicação web.

Entendendo a causa de aplicações inseguras

O autor que aqui vos escreve criou carreira iniciando na área de suporte
técnico, passou em seguida por áreas de segurança em consultorias e empresas de
telecom. Recentemente resolveu inovar e junto com o time de desenvolvedores sentiu
na pele o que é desenvolver com segurança.

Desenvolver um código seguro passa por aprender a desenvolver com


segurança. Isso abrange não só os desenvolvedores, mas os clientes do produto a
ser construído, que precisam ser engajados em ter um pouco menos de velocidade
em prol de qualidade, que neste caso é materializado através da segurança.

Arquitetura de aplicações

Existem diversas formas de comunicação e funcionamento de aplicações,


que são sumarizadas no quadro abaixo.

Fundamentos em Segurança Ofensiva – Página 33 de 44


Figura 17 – Formas de comunicação e funcionamento de aplicações.

Tipo de arquitetura Principal caracteristica Exemplos Ataques mais comuns


Stand alone Não se comunicam em rede PDF Readers PDF que exploram erros e permitem instalação de malwares

Client Server Comunicação de muitos para poucos Microsoft Ataques ao servidor de emails
Maior parte do processamento no servidor Outlook Ataques ao cliente Microsoft Outlook
Sistemas distribuídos Funcionalidades espalhadas em diversos locais Microserviços Ataque ao hub central (orquestrador)
(geográficos ou não)
Cloud Não sabemos onde fica Netflix Falhas humanas ou bugs de software
Web Camadas (usualmente MVC) Aplicações DDoS, exploração de vulnerabilidades na aplicação
corporativas
Mobile Transito de dados (e não de imagens, sons, etc) Jogos Ataques ao servidor

Atualmente as arquiteturas que envolvem Web e APIs (Application


Programming Interface) são as mais utilizadas, sendo esta última especialmente útil
na confecção de aplicações que podem ser rodadas em celulares, televisões,
dispositivos diversos como Alexa da Amazon e demais dispositivos de IoT.

As figuras abaixo ilustram o funcionamento destes tipos de aplicação que


serão exploradas a seguir, a respeito dos métodos de ataque e defesa.

Na arquitetura MVC há uma delegação de responsabilidade em cada camada


de aplicação. Sendo elas:
▪ View: responsável por coletar e exibir dados para usuários (veja sobre
vulnerabilidades desta camada quando falarmos de Javascript nas aulas
práticas).
▪ Controller: responsável por receber as requisições e tratá-las.
▪ Model: responsável por tratamento junto a camada de dados.
Figura 18 – Arquitetura MVC.

Fonte: UFMG

Fundamentos em Segurança Ofensiva – Página 34 de 44


Figura 19 – REST.

Fonte: CXArch.

Na arquitetura de APIs, a View é feita pelo dispositivo remoto, podendo ser


uma página Web, um dispositivo móvel ou um dispositivo IoT. Todo o processamento
é feito pelo fornecedor de dados. Um bom exemplo disso é a API de consulta de CEP
dos Correios, que pode ser consultada por qualquer site de comércio eletrônico, por
exemplo.

Ataque a APIs

O ataque às APIs ocorre quando estas não processam adequadamente as


permissões, controles de sessão e outros mecanismos de proteção de segurança ao
fornecer as informações devidas.

▪ Enumeração de dados / Massive attack (DELETE, PUT).

▪ Falha no controle de sessão.

▪ Injeção de parâmetros.

▪ DoS (ausência de paginação).

▪ Excesso de confiança na camada de apresentação/view (Javascript).

Fundamentos em Segurança Ofensiva – Página 35 de 44


Com relação ao excesso de confiança na camada de apresentação, é
importante destacar que o Javascript é processado na camada de View e que,
portanto, pode ser manipulado por um usuário mal-intencionado. Desta forma,
qualquer validação que envolva regra de negócio pode ser facilitada na camada view,
mas deve ser verificada no backend (API).

As proteções para as APIs serão detalhadas a seguir, junto as proteções


aplicadas às aplicações Web.

Ataques a aplicações Web

De acordo com o OWASP (Open Web Application Security Project), estes são
os ataques mais comuns a aplicações Web:

▪ Injeção de parâmetros (SQL Injection, REST Parameters etc.).

▪ Falha no controle de acesso (erro de implementação de sessão, auth etc.).

▪ Exposição de informações sensíveis (disponibilização demasiadamente de


infos).

▪ Interfaces administrativas expostas.

▪ Falhas de controle de acesso (usuários autenticados acessam mais do que


deveriam).

▪ Configuração default (mensagens verbosas, bibliotecas usadas sem


configuração).

▪ Cross site scripts (Injeção de códigos JS em formulários Web).

▪ Deserialização insegura (confiar no que vem do cliente ou é processado por


este).

▪ Logs / monitoração insuficientes.

Fundamentos em Segurança Ofensiva – Página 36 de 44


Utilizando Burp e SQLMAP

Em nossas aulas utilizamos o BURP e o SQLMAP para explorar a


vulnerabilidade mais comum na Web: SQL Injection.

Figura 20 – Burp.

Figura 21 – Sqlmap.

Fundamentos em Segurança Ofensiva – Página 37 de 44


Capítulo 9. Apresentando resultados

A apresentação de resultados, é uma etapa importante no contexto de pen


testers ou red teams. Neste capítulo veremos o que tais apresentações precisam ter.

Apresentação de resultados

Como vimos em capítulo anterior, por estar presente no dia a dia de uma
empresa, os times purple e red atuam e apresentam resultados de forma contínua e,
por serem funcionários desta empresa, tem um envolvimento maior, ou seja, estão
diretamente interessados que a empresa gere bons resultados. Já o pen tester, tem
um contrato com início e término definidos e o seu envolvimento com a empresa
contratante dura apenas enquanto o contrato está em vigor, estas diferenças fazem
com que os resultados sejam apresentados de forma e em tempos distintos.

Purple teams e Red Team, usualmente tem além de apresentações de


resultados dos testes que executam, outros parâmetros para mensurar o trabalho
feito. É comum, por exemplo, que métricas como tempo médio de correção de
vulnerabilidades críticas, risco total do ambiente e outros façam parte da rotina destes
times.

Saber apresentar resultados é fundamental para o sucesso tanto de contratos


quanto de times, desta forma, a pessoa ou time que irá apresentar os resultados
precisa passar uma mensagem clara, sobre o que foi encontrado no ambiente, sua
severidade e as recomendações. Uma frase de impacto como: “O ambiente analisado
apresenta três vulnerabilidades críticas que se não corrigidas poderão permitir o
vazamento de todas as informações de clientes.”, certamente é mais relevante que
uma série de gráficos abarrotados com informações que não falam por si só e
usualmente este é o erro que muitos times cometem. Na expectativa de demonstrar
o quão árduo foi o trabalho, acabam exibindo informações de forma demasiada e não
conseguem passar a mensagem principal.

Fundamentos em Segurança Ofensiva – Página 38 de 44


Certamente a apresentação de resultados não se resume à apenas uma frase
de efeito, dependendo do público é necessário entrar nos detalhes das
vulnerabilidades encontradas e correções sugeridas, o ponto aqui é que quem
apresenta precisa dosar e ajustar o material para o público que recebe a mensagem.
De uma forma geral, um relatório de apresentação de resultados, segue a seguinte
forma:

Figura 22 – Apresentação de resultados.

O dilema do Red Team

Os integrantes do Red team vivem em um constante dilema. Se por um lado


precisam apontar a falha no desenvolvimento de um software, por outro, querem
manter o bom relacionamento com seus colegas de trabalho e superiores, e
certamente não é apontando o problema que tais profissionais serão bem quistos no
ambiente de TI de uma empresa.

Este tipo de dilema é enfrentado a décadas por profissionais de auditoria


interna. Sabidamente, tal dilema não é enfrentado por profissionais de auditoria
externa. O quadro abaixo, produzido pelo Portal de Auditoria, demonstra as
atividades, ações e mindset de cada profissional:

Fundamentos em Segurança Ofensiva – Página 39 de 44


Figura 23 – Comparação auditoria interna e externa.

Fonte: https://portaldeauditoria.com.br/.

A partir do quadro acima, o autor, que aqui escreve, elaborou o quadro abaixo,
comparando integrantes de Red Teams e Pen Testers, veja como fica claro a
definição do dilema neste contexto.

Fundamentos em Segurança Ofensiva – Página 40 de 44


A pergunta natural que surge, é como resolver tal dilema. Pois bem,
querido(a) leitor(a), a má notícia é que não há solução. A natureza do trabalho de red
teams, assim como de auditores internos, levam a esta encruzilhada. O que torna as
coisas mais simples em muitas empresas é a senioridade das pessoas envolvidas no
trabalho. Se o problema converge para apontar falhas no processo e não nas pessoas
há uma tendência em suavizar as relações, no entanto, se a cultura da empresa é
para buscar e achar “o (i)responsável” que criou vulnerabilidade X, a tendência é que
o dilema se intensifique.

Outra forma de suavizar o dilema é tornando as decisões tomadas em forma


de colegiado, de tal forma que a alta administração decide em colegiado sobre, por
exemplo, retirar ou barrar a entrada em produção de uma aplicação vulnerável,
avaliando para tal os prós e contras. Consenso, dificilmente haverá, mas criando uma
decisão por votos, por exemplo, pode diminuir os conflitos de interesse.

Fundamentos em Segurança Ofensiva – Página 41 de 44


Capítulo 10. Entendendo como ocorre a proteção do ambiente

O foco dos nossos estudos foi totalmente orientado a segurança ofensiva, no


entanto, apresentamos neste capítulo final algumas palavras-chave que podem ser
usadas no Google para obtenção de mais informações a respeito. Para aqueles que
trabalham ou pretendem trabalhar em Blue Teams, um nível de especialização
diferente do que vimos nas aulas é requerido, como por exemplo a arquitetura e
configuração de ambientes e cloud, frameworks de governança e muitos outros.

Entendendo como ocorre a proteção do ambiente

A proteção do ambiente envolve principalmente, quatro verticais: proteger o


código/aplicação, proteger a infra, proteger os dados e proteger as pessoas. Os
profissionais que atuam em Blue Teams podem buscar conhecimento nas seguintes
áreas:

Proteção do código/aplicação:

▪ Treinar desenvolvedores em técnicas de segurança.

▪ Automatizar testes na implantação e no deploy(CI/CD).

Proteção da infra:

▪ Entender e estudar as melhores arquiteturas em Cloud e on-premisse.

▪ Dominar os ativos de defesa como Firewalls, IPS, Application Firewall, e


outros.

Proteção de dados:

▪ Conhecer sobre DLP e criptografia.

▪ Trabalhar a gestão do consentimento do usuário e mudar o mindset, para


reter menos informação.

Fundamentos em Segurança Ofensiva – Página 42 de 44


Proteção de pessoas:

▪ Realizar treinamentos constantes de conscientização dos times.

▪ Implantar, sempre que possível MFA (múltiplo fator autenticação).

Muitos frameworks e documentações são disponibilizadas para ajudar os


integrantes de Blue Teams na implantação de melhores práticas de proteção, abaixo
cito algumas:

▪ LGPD.

▪ COBIT/ITIL.

▪ OWASP.

▪ DevSecOps.

▪ ISO 27001/2.

▪ NIST (publicação 800-53 e outras).

Fundamentos em Segurança Ofensiva – Página 43 de 44


Referências

ABNT – ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS. ABNT NBR ISO/IEC


27001 – Tecnologia da informação — Técnicas de segurança — Sistemas de gestão
da segurança da informação — Requisitos. Brasil, 2013.

JOINT TASK FORCE TRANSFORMATION INICIATIVE. Managing Information


Security Risk: Organization, Mission, and Information System View. NIST, mar. 2011.
Disponível em: <https://csrc.nist.gov/publications/detail/sp/800-39/final>. Acesso em:
20 mai. 2021.

HARRIS, Shon; MAYMI, Fernando. CISSP All-in-One Exam Guide. 8. ed. McGraw-
Hill Education, 2018.

Fundamentos em Segurança Ofensiva – Página 44 de 44

Você também pode gostar