Buscar

UNIP Pareceres e Testes Unidade 4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 39 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

108
Unidade IV
Unidade IV
7 MÉTODO DE ESTUDO
7.1 Capture the flag
Uma forma de iniciar o aprendizado em técnicas de hacking é estudar as plataformas de capture the 
flag (CTFs), competições cujos participantes têm como objetivo descobrir uma flag utilizando as mais 
variadas ferramentas e técnicas de subversão para desvendar o enigma de desafios propostos. Os jogos 
englobam pergunta, desafio e resposta. De modo geral, as flags são alguns dados apresentados quando 
se consegue atingir o objetivo do desafio. As modalidades mais comuns são:
• Engenharia reversa: os participantes precisam entender e alterar o comportamento de binários, 
fazendo o caminho reverso e descompilando o funcionamento do binário para concluir o desafio.
• Criptografia: testa o entendimento dos participantes referente a dados e sistemas criptografados; 
a ideia é desvendar os dados que estão ilegíveis.
• Esteganografia: serve para encontrar informações ocultas em imagens ou arquivos; essa técnica 
é usada para esconder uma mensagem dentro de um arquivo que aparentemente não possui 
aquela informação. Por exemplo, uma foto com uma senha embutida.
• Forense: envolve a análise forense de memória, a análise de tráfego de rede e de discos rígidos. O 
objetivo é recuperar dados que estavam gravados e que, de alguma forma, foram comprometidos.
• Diversos: são conhecidos como misc, abrangendo mais de uma modalidade, como forense e 
programação (são misturados), e não se encaixam em outras categorias. Podem envolver 
conhecimentos gerais sobre segurança da informação e o mundo da tecnologia.
• Web Hacking: são os principais desafios das plataformas e são voltados às vulnerabilidades 
em sistemas web.
• Redes: abordam investigação de dump de rede focados em análises de pacotes, quebras de senhas 
e reconhecimento de informações que estão trafegando.
• XPL: exploração de binários focados em alterar o fluxo de um programa durante uma exploração.
• PPC: envolve os desafios de programação. Os participantes se deparam com códigos de qualquer 
linguagem, e estes podem ser alterados para o resultado necessário da flag; eles também podem 
ser bem complexos, ao ponto de os participantes terem que mudar a linguagem usada.
109
PARECERES E TESTES DE INVASÃO
Existem alguns eventos nacionais e internacionais para tais práticas, e o Hackflag, do RoadSec, é 
a principal plataforma nacional. Pode ser acessado via internet, mas após a evolução da competição, 
os embates passaram a ser realizados presencialmente nos eventos do RoadSec. O evento ocorre em 
diversas cidades do Brasil e os vencedores concorrem a prêmios.
Os desafios de CTF são para desvendar problemas de segurança da informação, e os participantes 
têm como desafio explorar ou defender uma vulnerabilidade de um sistema ou aplicativo.
Um CTF envolve uma captura lógica de bandeiras e pode ter como base um pentesting, ataques 
a URL, engenharia reversa, autenticação pautada no conhecimento, falsificação de endereços de IP, 
quebra de senhas, de códigos, forense, entre outras técnicas. A gincana pode ser feita individualmente 
ou em grupos, e o CTF pode ocorrer de três formas diferentes. O primeiro é Jeopardy-Style, no qual os 
jogadores precisam resolver os desafios e os pontos são de acordo com a complexidade do problema. Em 
alguns casos, são on-line e servem de qualificação para a final. O segundo se chama Attack e/ou Defense, 
e os competidores têm acesso a ambientes com falhas e vulnerabilidades que deverão ser solucionadas 
em determinado tempo. Assim, quando esse tempo se encerra, os jogadores deverão invadir o ambiente 
do adversário e proteger o próprio ambiente ao mesmo tempo. Por último, há os híbridos, nos quais as 
modalidades se misturam e podem ser usadas de várias formas.
O CTF avalia todas as habilidades e vulnerabilidades de uma rede, programação, criptografia etc. 
Contudo, pode-se explorar os conhecimentos além de uma área específica, exigindo domínio da língua 
portuguesa, matemática etc.
 Lembrete
A base do hacking é o conhecimento técnico avançado em mais de uma 
disciplina a fim de conseguir manipular situações para que uma atividade 
não programada seja executada.
Em resumo, as competições englobam profissionais de diversas áreas da segurança e de TI com o 
objetivo de capturar a bandeira e pontuar com a resolução dos desafios de segurança da informação.
Os eventos têm o intuito de aprimorar a experiência dos participantes. Em um ambiente seguro, eles 
podem atacar e se defender como no mundo real.
A segurança contra os ataques cibernéticos é um assunto vital nas empresas, que investem tempo e 
dinheiro em treinamento para os profissionais na área de segurança.
Os eventos de CTF promovidos são excelentes para os profissionais se descobrirem na área, para 
aprimorar os conhecimentos com troca de experiência com os demais. Recrutadores, diretores e gestores 
sempre acompanham tudo, a fim de filtrar bons profissionais no mercado.
110
Unidade IV
Cada dia mais as empresas devem incentivar os profissionais de segurança a participar de eventos 
de CTF, pois nem sempre existe grande experiência na área.
Alguns confundem CTF com hackathon. Ambos reúnem equipes para resolução de problemas com 
tempo limitado, porém a CTF incentiva as equipes a invadirem sistemas e evitar as defesas. Para tal, elas 
podem usar as estratégias que conhecem ou criar novas para ganhar mais pontos. Já o hackathon é um 
evento que permite que desenvolvedores e programadores mostrem seus talentos diante da criação de 
um programa ou aplicativo dentro de um tempo limitado.
A seguir, vamos demonstrar o funcionamento de alguns portais que disponibilizam desafios de 
capture the flag.
 Saiba mais
Para conhecer o maior evento de hacking no Brasil, acesse:
ROADSEC 2019 reúne entusiastas da cibercultura hacker. 2019. 1 vídeo 
(3:14). Publicado por tvbrasil. Disponível em: https://www.youtube.com/
watch?v= I5FwfAOmUu0. Acesso em: 9 out. 2020.
7.2 Usando picoCTF para o aprendizado
Trata-se de uma plataforma livre, desenvolvida pela Universidade Carnegie Mellon, uma das 
referências em segurança e time de respostas a incidentes.
• Inicialmente, acesse https://picoctf.com/
• Selecione Register/Signin no menu superior e, em seguida, picoCTF 2019.
Figura 102 – Acesso ao picoCTF 2019: tela 1
• Complete o cadastro e selecione Register team.
• Você receberá um e-mail para confirmar seu cadastro.
111
PARECERES E TESTES DE INVASÃO
• Clique no link recebido e valide seu login.
• Ao fazer login, selecione Play as na individual para não se juntar a uma equipe.
Figura 103 – Acesso ao picoCTF 2019: tela 2
• Role até o topo da página e selecione Challenge problems.
Do lado esquerdo, serão apresentadas as categorias dos desafios.
Figura 104 – Acesso ao picoCTF 2019: tela 3
• Selecione Only Web Exploitation.
112
Unidade IV
7.3 Desafios
Primeiro desafio
Figura 105 – Primeiro desafio picoCTF 2019: tela 1
Esse desafio diz que Kishor Balan nos deu uma dica de que o código abaixo precisa de inspeção 
e deixa um link para acesso. O campo abaixo é destinado para colocar a chave caso o jogador tenha 
encontrado. A aba Hints dá uma dica, caso precise, de como resolver esse desafio. Como o objetivo é o 
aprendizado, as dicas são explícitas, mas em alguns portais as pistas podem até atrapalhar o jogador.
• Clique na palavra Link com a tecla Ctrl pressionada; então, será aberta outra aba para 
realizar o desafio.
• Dentro de seu Firefox, aperte a tecla F12 no teclado.
Assim, será apresentada a ferramenta do Firefox chamada Inspector. Hoje os navegadores modernos 
– Firefox, Chrome e Internet Explorer – possuem o modo Inspector instalado com pequenas mudanças 
em suas funcionalidades. Essencialmente, elas servem para desenvolvedores e analistas de TI fazerem 
diagnósticos em páginas web. Para profissionais de segurança, pode ser uma ferramenta poderosa para 
encontrar informações relevantes.
Em uma página, é possível capturar as referências externas, como arquivos .css usadospara armazenar 
informações visuais sobre página e arquivos .js (javascripts) que o site usa para manipular informações. 
Estudando essas referências, pode-se entender como essa página se comporta. O código HTML tem 
referências de outras páginas e comentários muitas vezes esquecidos por programadores descuidados.
A dica desse desafio diz que essa página necessita de inspeção, fazendo referência ao Inspector 
presente nos navegadores. Portanto, ao pressionar F12, a tela a seguir será apresentada:
113
PARECERES E TESTES DE INVASÃO
Figura 106 – Primeiro desafio picoCTF 2019: tela 2
Clique com o botão direito em <html> e selecione Expand All.
Figura 107 – Primeiro desafio picoCTF 2019: tela 3
Agora que todo o código-fonte da página foi aberto, encontre a parte onde ele informa sobre o 
início de uma flag.
Figura 108 – Primeiro desafio picoCTF 2019: tela 4
114
Unidade IV
O texto diz que temos 1/3 da chave “picoCTF{tru3_d3”, e agora teremos que encontrar as outras 
partes. O código-fonte dessa página é simples, não há quase elementos extensos para buscar.
No início do código, temos duas referências externas:
Figura 109 – Primeiro desafio picoCTF 2019: tela 5
Essas referências são mycss.css e myjs.js, ambos são arquivos que estão localizados no mesmo 
servidor e, provavelmente, na mesma pasta. Caso fossem de outro servidor, seriam referenciados com 
os endereços completos.
• Na aba superior, selecione Style Editor para ver os arquivos .css
• Em seguida, clique em mycss.css
• Role o arquivo até o final e veja a segunda parte da flag.
Figura 110 – Primeiro desafio picoCTF 2019: tela 6
A segunda parte da flag é: “t3ct1ve_0r_ju5t”
115
PARECERES E TESTES DE INVASÃO
Agora vamos acessar o arquivo myjs.js clicando em Debugger. Depois, selecione a seta ao lado de 
problem/61676 e, em seguida, em myjs.js
Figura 111 – Primeiro desafio picoCTF 2019: tela 7
A terceira parte da flag é “_lucky?1638dbe7}”.
Juntando as três partes, temos: “picoCTF{tru3_d3t3t1ve_0r_ju5t_lucky?1638dbe7}”. As flags do 
portal picoCTF sempre são no formato “picoCTF{chave}”.
Se, ao realizar os desafios, o jogador não chegar a uma resposta como essa, não se trata da chave. 
Para dificultar o jogo, há portais que não usam esse padrão ou outro, e a flag é livre, o que torna a busca 
mais desafiadora.
Com a flag em mãos, retornamos à página de desafio e digitamos no campo para computar a 
pontuação ganha.
Figura 112 – Primeiro desafio picoCTF 2019: tela 8
Caso a resposta esteja correta, o jogador verá no canto superior direito uma mensagem de resposta 
correta e os pontos serão adicionados no topo da página.
Assim, os jogadores têm como adquirir conhecimento de modo gradativo e em um ambiente 
seguro, sem a necessidade de infringir leis ou fazer ataques reais em infraestruturas. Os desafios são 
116
Unidade IV
desenvolvidos por profissionais de segurança que entendem os desafios e vulnerabilidades atuais. De 
fato, é um bom método de aprendizado em forma de jogo.
Segundo desafio
Figura 113 – Segundo desafio picoCTF 2019: tela 1
O enunciado diz “Can you break this super secure portal? – Você pode explorar esse site superseguro?”
• Acesse o link com o botão Ctrl pressionado.
• A página abrirá com um formulário como esse:
Figura 114 – Segundo desafio picoCTF 2019: tela 2
Vamos novamente inspecionar o código-fonte dessa página usando o Inspector. Para tal, aperte a 
tecla F12. Ao inspecionar a página, podemos ver esse trecho de javascript:
Figura 115 – Segundo desafio picoCTF 2019: tela 3
117
PARECERES E TESTES DE INVASÃO
Mesmo sem conhecer exatamente o que o trecho de código faz, podemos ver que essa é a função 
que valida o campo e alerta a mensagem “Password Verified”, que significa senha verificada. Para olhar 
melhor essa função, podemos usar a aba Debugger.
Figura 116 – Segundo desafio picoCTF 2019: tela 4
Nesse pedaço do código, podemos ver trechos da flag inseridos em “’pico’” e “CTF{”. As numerações 
ao lado do campo split podem dar a ideia de ordem em que os campos podem ser dispostos.
Sabendo que a flag é “picoCTF{flag}”, podemos seguir a lógica da posição do primeiro split:
• ...(0, split) == ‘pico’
• ...(split, split*2) == CTF{“
• ...(split*2, split*3) == no_c”
• ...(split*3, split*4) == lien”
• ...(split*4, split*5) == ts_p”
• ...(split*5, split*6) == lz_9”
• ...(split*6, split*7) == 0ff3”
• ...(split*7, split*8) == 4}”
Montando a flag picoCTF{no_clients_plz_9off34).
Muitas vezes, analisando o código-fonte de sites, podemos ver como as funções operam. Assim, 
podemos explorar alguma falha ou conseguir acesso através do fluxo do código.
• Retorne à página de desafios e digite a flag. Depois, clique em Submit para pontuar.
118
Unidade IV
Terceiro desafio
Veremos agora um desafio de exploração de binários. Binários são os executáveis que podem realizar 
ações maliciosas. Podem ser programas criados para serem explorados ou partes de funções de segurança 
que são usadas por outros programas.
Figura 117 – Segundo desafio picoCTF 2019: tela 1
A dificuldade será maior a cada etapa concluída.
O enunciado diz que a fábrica está escondendo algo de todos os seus usuários e pergunta se você 
conseguiria fazer login.
• Clique no link com a tecla Ctrl pressionada para abrir o site.
Figura 118 – Terceiro desafio picoCTF 2019: tela 2
Inicialmente, teremos uma tela de login. Ao tentar fazer acesso com qualquer credencial, uma tela 
de acesso logado será mostrada, porém sem a flag de resposta.
119
PARECERES E TESTES DE INVASÃO
Figura 119 – Terceiro desafio picoCTF 2019: tela 3
Para visualizar esse desafio, usaremos o Inspector no modo Network para ver a entrada e a saída de 
pacotes trocados entre o navegador e o servidor. Caso esteja na mesma tela apresentada na imagem 
anterior, volte à página inicial.
• Aperte F12 para abrir o Inspector.
• Clique em Network e ative a opção Persist Logs.
A opção de persistir logs é manter toda a interação feita com o navegador e o servidor gravada no 
Inspector; se não deixarmos essa opção ativa, a cada alteração ou navegação que realizarmos, ela será 
apagada e serão gravados novos dados.
Figura 120 – Terceiro desafio picoCTF 2019: tela 4
Com o Inspector aberto, vamos inserir qualquer credencial de login e senha e inspecionar os pacotes.
• Digite “teste” em Username e “teste” em password.
• Clique em Sign In.
120
Unidade IV
Figura 121 – Terceiro desafio picoCTF 2019: tela 5
Nesse momento, serão mostrados os pacotes trocados com o método GET ou POST em cada 
pacote. Ao clicar nos pacotes, podemos ver mais dados, selecionar o cabeçalho em Headers, ver as 
variáveis criadas em Cookies, os parâmetros passados em Params, a resposta em Response; e no caso 
do Timings, podemos ver o tempo de resposta desse pacote, e, em Security, os dados do certificado 
usado na página.
Analisando os pacotes, podemos ver no segundo, de login em headers, os cookies gravados. Cookies 
são informações que o navegador grava internamente em um arquivo para resgatá-las posteriormente, 
como os itens dentro de um carrinho ou preferências dentro de um site de compras. É uma funcionalidade 
antiga que ainda permanece nos navegadores atuais.
Figura 122 – Terceiro desafio picoCTF 2019: tela 6
Nesse pacote, podemos ver a gravação de cookies da senha “password=teste”, “username=teste” e 
um campo chamado “admin=False”, ou seja, administrador igual a falso. Os cookies ficam armazenados 
na parte interna do navegador, e nós podemos alterar essa informação. Para facilitar a edição, vamos 
usar uma extensão do navegador chamado Cookie Editor.
 Observação
Muitas ferramentas disponíveis na internet de fontes não confiáveis 
prometem realizar determinadas atividades, cuidado. Verifique se aquela 
aplicação de fato somente faz o que está sendo descrito ou se há 
funcionalidades não declaradas em seu funcionamento.
121
PARECERES E TESTES DE INVASÃO
• Abra uma nova guia do navegador e digite “cookie editor firefox” e pressione Enter.
• Clique no primeiroresultado: https://addons.mozilla.org/pt-BR/firefox/addon/cookie-editor/
• Clique em Adicionar ao Firefox.
Figura 123 – Terceiro desafio picoCTF 2019: tela 7
• Em seguida, clique em Add.
Figura 124 – Terceiro desafio picoCTF 2019: tela 8
• Marque a opção “Allow this extension to run in Private Windows”.
Essa opção serve para que a extensão também funcione em janelas anônimas. Essas janelas 
anônimas são usadas para não deixar o navegador gravar credenciais de acesso e histórico nos seus 
arquivos internos.
• Clique em “Okay, Got It”.
122
Unidade IV
Figura 125 – Terceiro desafio picoCTF 2019: tela 9
Com a extensão adicionada, volte à aba do site que estamos trabalhando e clique no botão superior 
em formato de cookie. As variáveis gravadas no cookie serão listadas:
Figura 126 – Terceiro desafio picoCTF 2019: tela 10
Vemos as quatro primeiras variáveis gravadas pelo navegador e as demais gravadas pela página. Ao 
clicar em admin, podemos alterar seu valor de False (Falso) para True (Verdadeiro):
Figura 127 – Terceiro desafio picoCTF 2019: tela 11
• Ao clicar em salvar (imagem do disquete), ao lado do campo True, salvamos esse valor nos cookies.
123
PARECERES E TESTES DE INVASÃO
• Volte para a página e aperte F5 para recarregá-la.
Figura 128 – Terceiro desafio picoCTF 2019: tela 12
A flag é demonstrada na tela, e isso significa que completamos o objetivo.
O uso de cookies para armazenar informações sensíveis é uma prática insegura e comum. A alteração 
desses campos é simples, tudo fica armazenado na parte do cliente, e não há nenhuma garantia de que 
algo não tenha sido alterado.
Analisar os pacotes, os dados de cookie e como o site se comporta pode trazer grandes descobertas 
de como explorar o seu funcionamento.
• Volte para a página de desafios e pontue com a flag encontrada.
Figura 129 – Terceiro desafio picoCTF 2019: tela 13
O próximo desafio é simples de ser resolvido, mas também denota uma falha comum em sistemas web: 
o arquivo robots.txt. Conforme Moreno (2017), esse arquivo é usado para demonstrar aos indexadores 
como googlebot quais páginas não devem ser indexadas, evitando que uma pessoa, ao acessar o Google, 
consiga saber que aquele conteúdo existe.
 Observação
Com o uso do Google Hacking, é possível descobrir uma série de 
informações, arquivos e links sobre as organizações. Com o arquivo robots, 
pode-se impedir essa indexação automática.
124
Unidade IV
Quarto desafio
• Clique no link com a tecla Ctrl pressionada para abrir uma nova aba.
Figura 130 – Quarto desafio picoCTF 2019: tela 1
O enunciado diz “Você pode encontrar os robôs?” Essa é uma referência ao arquivo robots, 
normalmente encontrado na raiz do site. Por exemplo, no site oficial da UNIP, o arquivo robots está em 
https://unip.br/robots.txt
Ao acessar o desafio, digite na barra de endereço o arquivo robots.txt ao lado da URL da seguinte forma:
Figura 131 – Quarto desafio picoCTF 2019: tela 2
• Em seguida, pressione Enter para acessar.
Vemos no arquivo robots.txt que não deve ser indexada a página 713d3.html
Para saber o que tem dentro dessa página, vamos acessá-la da mesma forma que acessamos o 
arquivo robots, através do acesso direto ao arquivo:
Figura 132 – Quarto desafio picoCTF 2019: tela 3
Assim, descobrimos essa flag dentro da página.
Muitas vezes, a organização não quer permitir a indexação porque ela está ligada diretamente a 
informações confidenciais ou a telas de login de sistemas críticos. Como não serão indexadas pelo 
Google ou outros buscadores, deve-se conferir o arquivo robots.txt para verificar se links importantes 
podem ser extraídos dele.
125
PARECERES E TESTES DE INVASÃO
• Volte para a página do desafio e cole a flag para pontuar:
Figura 133 – Quarto desafio picoCTF 2019: tela 4
Na próxima tarefa desse desafio, vamos ver técnicas de ofuscação, que são usadas para dificultar 
a análise do código de um programa, página ou binário. Sabendo da prática de análise de código e 
engenharia reversa, pode-se usar ofuscação de código, que embaralha o código-fonte, aumentando a 
dificuldade de um ataque bem-sucedido.
Acesse o próximo desafio:
Figura 134 – Quarto desafio picoCTF 2019: tela 5
O enunciado remete a um desafio já realizado, porém não é o mesmo.
• Clique em link com o botão Ctrl pressionado para criar uma aba.
• Abra o Inspector e entre em Debugger.
Não é fácil de identificar o script de validação do campo como vimos anteriormente. Observe que há 
uma linha extensa com um código ofuscado:
Figura 135 – Quarto desafio picoCTF 2019: tela 6
126
Unidade IV
Além de essa função ser extensa, os campos não possuem nomes comuns e as variáveis estão 
ofuscadas, por exemplo: 0x5a46, 0x4bf822, 0x2bd6f7. Enquanto um código comum possui dez linhas 
com variáveis de nome “login” e “senha”, um código ofuscado de vinte linhas com variáveis de nomes 
“0x4acda” e “0x474acd” poderá levar algumas horas para ter suas variáveis totalmente compreendidas.
Para resolver esse desafio, selecione a linha completa desse código e abra o editor de texto mousepad:
• Em um terminal, digite “mousepad”.
• Cole o conteúdo copiado para leitura.
 Lembrete
O uso de cookies para armazenar informações sensíveis é uma prática 
insegura e comum.
Para conseguir encontrar a flag, separe esse código como se fosse escrito por um programador, e a 
organização do código é chamada de indentação:
Figura 136 – Quarto desafio picoCTF 2019: tela 7
Já no início conseguimos ver os campos iniciados na variável 0x5a46 e podemos juntá-los para 
montar uma frase: picoCTF{not_this_again055670}. A parte legível significa “isso novamente não”. 
Para pontuar, acesse novamente a página do desafio e cole a flag encontrada.
Figura 137 – Quarto desafio picoCTF 2019: tela 8
127
PARECERES E TESTES DE INVASÃO
Desafios de CTF podem ser educativos e divertidos, podendo ser jogados sozinhos ou em grupos. Na 
internet, existem vários desafios resolvidos, chamados de write-ups, que destacam as respostas de como 
os usuários conseguiram resolver uma determinada etapa de uma plataforma de CTF.
 Observação
Essas respostas são escritas pelos jogadores. Pode haver somente a 
resposta, a explicação de como foi descoberto o resultado, detalhando o 
processo, ou às vezes todos esses itens juntos, com a devida conclusão de 
como e por que a falha ou a vulnerabilidade existe.
No momento de realizar testes reais, as habilidades da equipe de testes estarão mais apuradas 
e preparadas para os ataques mais comuns. Além disso, haverá ideias para criar novas maneiras de 
completar ataques bem-sucedidos.
 Saiba mais
Para ver um desafio de engenharia reversa sendo resolvido, acesse:
ENGENHARIA reversa em Binarios Windows [CTF] [Sql3t0] 
[DeadLockTeam]. 2020. 1 vídeo (57:50). Publicado por JJ Lima. Disponível em: 
https://www.youtube.com/ watch?v=fJjJs8ES1qY. Acesso em: 9 out. 2020.
8 COLETA E RELATÓRIO DE TESTE DE INVASÃO
Após a introdução dos dispositivos tecnológicos de segurança, a grande dificuldade é saber se 
tudo aquilo que foi implantado e investido está efetivamente protegendo as informações. Para isso, 
os administradores aplicam os testes de invasão, que podem verificar na prática se os dispositivos 
tecnológicos estão cumprindo sua finalidade. Além disso, eles pensam nas mais diversas formas de 
ataques que podem ocorrer repentinamente e, assim, reconfigurar os dispositivos para evitá-los, 
inclusive em tecnologias eminentes.
8.1 Teste de invasão, conceito
Testes de invasão ou pentesting (não confundir com testes de caneta 
esferográfica ou de canetas-tinteiro) envolvem a simulação de ataques 
reais para avaliar os riscos associados a potenciais brechas de segurança. 
Em um teste de invasão (em oposição a uma avaliação de vulnerabilidades), 
os pentesters não só identificam vulnerabilidades que poderiam ser usadas 
pelos invasores, mas também exploram essas vulnerabilidades, sempre que 
possível, para avaliar o que os invasores poderiam obter após uma exploração 
bem-sucedida das falhas (WEIDMAN,2014, p. 30).
128
Unidade IV
A veiculação de informações a respeito de organizações de grande porte que foram alvo de um 
ciberataque é muito comum atualmente. Com mais frequência do que se esperava ou se possa suportar, 
os invasores não usam a última e mais recente vulnerabilidade zero-day (que ainda não foi corrigida 
pelos fornecedores de software), eles atacam com vulnerabilidades existentes há muito tempo e, na 
maioria das vezes, com a correção publicada.
Organizações de grande porte, com orçamentos consideráveis em segurança, tornam-se vítimas 
de vulnerabilidades de injeção de SQL em seus sites, de ataques de engenharia social contra seus 
funcionários, de senhas fracas em serviços disponíveis pela internet e assim por diante. Em outras palavras, 
as organizações estão perdendo dados proprietários e expondo detalhes pessoais de seus clientes por 
causa de brechas de segurança que poderiam ter sido corrigidas. Quando aplicamos um teste de invasão, 
descobrimos esses problemas antes que um invasor o faça e fornecemos recomendações sobre como 
corrigi-los e sobre como evitar vulnerabilidades futuras.
O escopo dos testes de invasão pode variar de cliente para cliente, assim como ocorrerá com as 
tarefas. Algumas organizações terão uma postura excelente quanto à segurança, enquanto outras terão 
vulnerabilidades que permitiriam aos invasores violar o perímetro e obter acesso aos sistemas internos.
Às vezes, também será necessário ser responsável pela avaliação de uma ou mais aplicações web 
personalizadas. Isso poderá exigir ataques de engenharia social e do lado do cliente, para obter acesso à 
sua rede interna. Alguns testes de invasão exigirão atuações como se o invasor fosse alguém de dentro 
(um funcionário mau-caráter ou descontente) ou um invasor que já tenha violado o perímetro.
Algumas situações exigirão um teste de invasão externo, em que será necessário simular um ataque 
por meio da internet. Algumas organizações podem desejar que a segurança das redes wireless de seus 
escritórios seja avaliada. Em alguns casos, você poderá até mesmo efetuar uma auditoria nos controles 
de segurança físicos da organização.
8.2 Processos de um teste de invasão
Os testes de invasão têm início com a fase de preparação (pre-engagement), que envolve definir 
os objetivos, o mapeamento do escopo (a extensão e os parâmetros do teste) e assim por diante. Quando o 
pentester e a organização chegarem a um acordo sobre o escopo, a composição do relatório e o formato do 
teste de invasão, o teste será iniciado.
Na fase de coleta de informações (information-gathering), o pentester procura informações 
disponíveis publicamente sobre a organização e identifica maneiras em potencial de conectar-se 
com seus sistemas.
Na fase de modelagem das ameaças (threat-modeling), o pentester usa essas informações para 
determinar o valor de cada descoberta e o impacto sobre o cliente caso a descoberta permita que 
alguém invada um sistema. Essa avaliação permite ao pentester desenvolver um plano de ação e 
métodos de ataque.
129
PARECERES E TESTES DE INVASÃO
Antes que o pentester possa começar a atacar os sistemas, ele realiza uma análise de vulnerabilidades 
(vulnerability analysis). Nessa fase, o pentester procura descobrir vulnerabilidades nos sistemas que 
poderão ser analisadas na fase de exploração de falhas (exploitation). Um exploit bem-sucedido pode 
conduzir a uma fase de pós-exploração de falhas (post-exploitation), em que se tira vantagem do 
resultado da exploração de falhas, de modo a descobrir informações adicionais, obter dados críticos, 
acessar outros sistemas etc.
Por fim, na fase de geração de relatórios (reporting), o pentester sintetiza as descobertas tanto para 
os profissionais executivos quanto para os técnicos.
 Saiba mais
Para obter mais informações sobre testes de invasão, acesse:
http://www.pentest-standard.org/
Logo após o término da fase de coleta de informações, inicia-se a modelagem das ameaças, 
conforme o conhecimento obtido na fase anterior. Nesse ponto, deveremos pensar como os 
invasores e então desenvolver planos de ataque de acordo com as informações coletadas. Por 
exemplo, se o cliente desenvolver um software proprietário, um invasor poderá devastar a empresa 
ao obter acesso aos seus sistemas de desenvolvimento internos, cujo código-fonte é desenvolvido 
e testado, e vender os segredos comerciais da empresa a um concorrente. Assim, criaremos 
estratégias para invadir os sistemas da organização com base nos dados encontrados durante a 
fase de coleta de informações.
As análises de vulnerabilidades representam a etapa a seguir do processo. Então, os pentesters 
começam a descobrir ativamente as vulnerabilidades, a fim de determinar até que ponto suas 
estratégias de exploração de falhas poderão ser bem-sucedidas. Os exploits que falharem poderão 
desativar serviços, disparar alertas de detecção de invasão e arruinar suas chances de efetuar 
uma exploração de falhas com êxito. Com frequência, durante essa fase, os pentesters executam 
scanners de vulnerabilidades, que usam bancos de dados específicos e uma série de verificações 
ativas para obter um palpite melhor a respeito de quais vulnerabilidades estão presentes no 
sistema de um cliente. Todavia, embora esses scanners sejam ferramentas eficazes, elas não 
podem substituir totalmente o raciocínio crítico, portanto, também devem ser realizadas análises 
manuais nessa etapa.
Em seguida, temos a exploração de falhas, com certeza a parte mais interessante. Nessa etapa, são 
executados exploits contra as vulnerabilidades descobertas (às vezes, usando uma ferramenta como o 
Metasploit) para tentar acessar os sistemas de um cliente. Algumas vulnerabilidades são muito fáceis de 
serem exploradas, por exemplo, fazer login com senhas default.
No pós-exploração de falhas, os testes de invasão só deverão começar após a exploração de falhas.
130
Unidade IV
Nesse instante, você conseguiu entrar no sistema, mas o que essa invasão realmente significa para 
a organização? Se você invadir um sistema legado, sem patches (correções), que não faça parte de 
um domínio ou que não esteja ligado a alvos muito valiosos, e esse sistema não contiver nenhuma 
informação que interesse a um invasor, o risco dessa vulnerabilidade será significativamente menor do 
que se você pudesse explorar um controlador de domínio ou um sistema de desenvolvimento de um 
cliente. Durante a fase de pós-exploração de falhas, reunimos informações sobre o sistema invadido, 
procuramos arquivos interessantes, tentamos elevar o nível de nossos privilégios quando necessário 
e assim por diante. Por exemplo, podemos fazer um dump das hashes de senha para ver se podemos 
revertê-las ou usá-las para acessar sistemas adicionais. Também podemos tentar usar o computador 
explorado para atacar sistemas que não estavam anteriormente disponíveis a nós se efetuarmos um 
retorno para esses sistemas.
Na geração de relatórios, está descrita a última etapa do processo. É nela que informamos as nossas 
descobertas de maneira significativa. Dizemos o que está sendo feito corretamente, os pontos que devem 
ser melhorados, a postura quanto à segurança, como você conseguiu invadir, o que você descobriu, 
como corrigir os problemas etc.
Escrever um bom relatório de teste de invasão é uma arte que exige prática para dominar. Será 
necessário informar as suas descobertas de forma clara a todos, da equipe de TI responsável pela correção 
das vulnerabilidades até a alta gerência, que aprova as alterações com os auditores externos. Por exemplo, 
devemos evitar termos técnicos em excesso; se forem usados, devemos explicar o conceito. Uma maneira 
melhor de transmitir esse raciocínio seria mencionar os dados privados que você foi capaz de acessar 
ou de alterar. Uma afirmação como “fui capaz de ler o seu email” irá gerar repercussões em quase todos.
O relatório do teste de invasão deve incluir tanto um sumário executivo como um relatório técnico.
O sumário executivo descreveos objetivos do teste e oferece uma visão geral das descobertas. 
O público-alvo que se pretende atingir são os executivos responsáveis pelo programa de segurança. 
Seu sumário executivo deve incluir o seguinte:
• Histórico: criam-se uma descrição do propósito do teste e definições de qualquer termo que 
possa não ser familiar aos executivos, bem como vulnerabilidades e medidas de prevenção.
• Postura geral: é uma visão geral da eficiência do teste, destacando os problemas encontrados 
(por exemplo, a exploração da vulnerabilidade MS08-067 da Microsoft) e os problemas gerais que 
causam vulnerabilidades, como a ausência de gerenciamento de patches.
• Perfil do risco: faz-se uma classificação geral da postura da empresa quanto à segurança, 
quando comparada com organizações semelhantes, com medidas – como alto, moderado ou 
baixo. Você também deve incluir uma explicação sobre a classificação ou utilizar a matriz de risco 
da organização caso ela o tenha.
• Descobertas gerais: envolvem uma sinopse geral dos problemas identificados, com estatísticas e 
métricas sobre a eficiência de qualquer medida de prevenção implantada.
131
PARECERES E TESTES DE INVASÃO
• Resumo das recomendações: é uma visão geral das tarefas necessárias para corrigir os problemas 
descobertos no teste de invasão.
• Mapa estratégico: oferece objetivos de curto e de longo prazo ao cliente para melhorar a sua 
postura quanto à segurança. Por exemplo, você pode dizer ao cliente para aplicar determinados 
patches agora para endereçar as preocupações de curto prazo. Contudo, sem um plano de longo 
prazo para o gerenciamento de patches, o cliente estará na mesma posição após novos patches 
terem sido disponibilizados.
O relatório técnico oferece detalhes técnicos sobre o teste. Ele deve incluir o seguinte:
• Introdução: traz um inventário dos detalhes, como escopo e contatos.
• Coleta de informações: indica detalhes das descobertas da fase de coleta de informações. Os 
rastros do cliente (footprint) deixados na internet ganham destaque.
• Avaliação de vulnerabilidades: acentua os pormenores das descobertas da fase de análise de 
vulnerabilidades.
• Exploração de falhas/verificação de vulnerabilidades: expressa detalhes das descobertas da 
etapa de exploração de falhas.
• Pós-exploração de falhas: destacam-se particularidades das descobertas dessa fase.
• Risco/exposição: faz-se uma descrição quantitativa do risco identificado. Essa seção traz uma 
estimativa das perdas caso as vulnerabilidades identificadas sejam exploradas por um invasor.
• Conclusão: indica uma visão geral do teste.
8.2.1 Etapa de coleta de informações
O objetivo dessa etapa é conhecer o máximo possível os nossos clientes. O executivo revela 
informações demais no Twitter? O administrador do sistema está escrevendo para listservs de 
arquivos, perguntando a respeito de como garantir a segurança de uma instalação de Drupal? Que 
softwares estão sendo executados em seus servidores web? Os sistemas voltados à internet estão 
ouvindo mais portas do que deveriam? Se esse é um teste de invasão interno, qual é o endereço IP 
controlador de domínio?
Nessa fase, também começaremos a interagir com nossos sistemas-alvo, conhecendo o máximo que 
pudermos sobre eles, sem atacá-los de forma ativa. Usaremos o conhecimento adquirido nessa fase 
para a próxima – modelagem de ameaças –, quando deveremos pensar como os invasores e desenvolver 
planos de ataque com base nas informações coletadas. De acordo com as informações que descobrirmos, 
iremos procurar e verificar as vulnerabilidades de forma ativa usando técnicas de scanning.
132
Unidade IV
Podemos aprender bastante sobre a organização e a infraestrutura do objeto de análise antes mesmo 
de lhes enviar um único pacote. Contudo, a coleta de informações continua sendo uma espécie de alvo 
em movimento. Não é viável estudar a vida on-line de todos os funcionários e, dada uma quantidade 
enorme de informações coletadas, poderá ser difícil discernir dados importantes de ruído.
Se o executivo tuitar com frequência sobre um time esportivo favorito, o nome desse time poderá 
ser a base da senha de seu webmail, mas essa informação pode ser totalmente irrelevante. Em outras 
ocasiões, será mais fácil escolher algo que seja mais importante. Por exemplo, se o seu cliente tiver 
postagens de ofertas de emprego on-line para uma vaga de administrador de sistemas especialista 
em determinado software, existe uma boa chance de essas plataformas terem sido implantadas na 
infraestrutura da organização.
Em oposição aos dados de inteligência obtidos a partir de fontes secretas, por exemplo, ao vasculhar 
lixos, vasculhar bancos de dados de sites e usar a engenharia social, o OSINT (Open Source Intelligence 
– Inteligência de Fontes Abertas) é coletado a partir de fontes legais, por exemplo, de registros públicos 
e por meio da mídia social. O sucesso de um teste de invasão, com frequência, depende do resultado da 
etapa de coleta de informações, e algumas ferramentas para obter dados interessantes são provenientes 
de fontes públicas.
8.2.2 Descobrindo as vulnerabilidades
Antes de começarmos a lançar exploits, é preciso fazer pesquisas e análises. Quando identificamos 
vulnerabilidades, procuramos, de forma ativa, problemas que levarão a um comprometimento na fase 
de exploração de falhas. Embora algumas empresas de segurança executem somente uma ferramenta 
automatizada de exploração de falhas e esperem pelo melhor, um estudo cuidadoso das vulnerabilidades 
feito por um pentester habilidoso proporcionará melhores resultados do que qualquer ferramenta por si só.
Após obtidas as informações sobre o alvo e a superfície de ataque, podemos desenvolver cenários 
para atingir os objetivos de nosso teste de invasão. Por exemplo, o servidor FTP na porta 21 anunciou-se 
como sendo o Vsftpd 2.3.4.
 Observação
Vsftpd corresponde à abreviatura de very secure FTP.
Podemos supor que um produto que se autodenomine very secure (muito seguro) está pedindo para 
ter problemas, e, de fato, em julho de 2011, veio à tona a notícia de que o repositório do Vsftpd havia 
sido invadido. Os binários do Vsftpd haviam sido substituídos por uma versão contendo um backdoor 
(porta dos fundos) que podia ser acionado com um nome de usuário contendo uma carinha sorridente. 
Isso fazia com que um root shell fosse aberto na porta 6200. Depois que o problema foi descoberto, os 
binários com o backdoor foram removidos e o Vsftpd 2.3.4 oficial foi restaurado. Portanto, embora a 
presença do Vsftpd 2.3.4 não assegure que o nosso alvo seja vulnerável, definitivamente é uma ameaça 
133
PARECERES E TESTES DE INVASÃO
a ser considerada. O teste de invasão se torna mais fácil se pegarmos uma carona com um invasor que 
já tenha o controle de um sistema.
Embora alguns cursos de testes de invasão excluam totalmente o scanning de vulnerabilidades e 
argumentem que um pentester habilidoso pode descobrir tudo o que um scanner pode, os scanners 
continuam sendo ferramentas valiosas, especialmente porque muitos testes de invasão são realizados 
em uma janela de tempo menor do que qualquer um gostaria de ter. Porém, se um dos objetivos de sua 
avaliação for evitar a detecção, você deverá pensar duas vezes antes de usar um scanner indiscreto de 
vulnerabilidades.
Não obstante as ferramentas sejam eficazes às vezes, nenhuma solução chegará nem perto da análise 
manual de vulnerabilidades para verificar se um serviço resultará em um comprometimento, e não há 
melhor maneira de se aperfeiçoar do que a prática. A seguir, vamos explorar algumas pistas promissoras 
obtidas a partir do scanning de portas e de vulnerabilidades.
Como exemplo, podemos analisar uma porta que não costuma não aparecer em scans automatizados, 
que é a porta 3232, a qual tem como alvo o Windows. Se tentarmos efetuar o scan dessa porta com um 
scan convencional, perceberemos que haverá uma falha. Esse comportamento sugere que o programa 
que está ouvindo foi projetado para ouvir um dadode entrada em particular e que ele tem dificuldade 
de processar qualquer outra informação.
Esse tipo de comportamento é interessante para os pentesters porque os programas que falham 
quando lidam com dados de entrada indevidos não estão validando suas entradas de forma adequada.
 Observação
Existem diversas ferramentas automatizadas de exploração de 
vulnerabilidades, e os testes serão mais eficientes se o responsável unir 
a tecnologia com sua experiência, pois algumas ameaças estão além do 
ambiente tecnológico das redes.
8.2.3 Capturando tráfego
Antes de partir para exploração de falhas, devemos usar as ferramentas de monitoração, e uma 
bem conhecida é o Wireshark. Essas ferramentas são usadas 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), 
as quais 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 poderá ser difícil.
134
Unidade IV
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 para o 
controlador de domínio sem que enganemos a rede para ela nos enviar 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 ou até mesmo alguns hardwares de redes legadas que utilizam hub que podem ter a 
funcionalidade de um switch.
As redes virtuais parecem agir como hubs, pois todas as suas máquinas virtuais compartilham um 
dispositivo físico. Se o tráfego for capturado em modo promíscuo em uma rede virtual, você poderá 
ver o tráfego de todas as máquinas virtuais, bem como o do computador host, mesmo que um switch 
esteja sendo usado no lugar de um hub em seu ambiente. Para simular uma rede não virtualizada, 
desativamos o use promiscuous mode (usar modo promíscuo) em todas as interfaces no Wireshark, o 
que significa que teremos de nos esforçar um pouco mais para capturar o tráfego de nossas máquinas 
virtuais avaliadas.
8.2.4 Exploração de falhas
Nessa fase serão executados os 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, pois há outras muito mais complicadas.
Agora que temos mais informações básicas sobre a vulnerabilidade, continuemos a estudar o exemplo 
anterior (MS08-067). É possível explorar um problema no servidor SLMail POP3 usando um módulo do 
Metasploit. Além do mais, vamos pegar carona em um comprometimento anterior e ignoraremos o 
login no servidor FTP em nosso alvo Linux. Vamos explorar uma vulnerabilidade na instalação do TikiWiki 
no alvo Linux e alguns problemas de senhas default em uma instalação do XAMPP no alvo Windows. 
Também vamos tirar proveito de um compartilhamento NFS com permissão de leitura e de escrita 
para assumirmos o controle de chaves SSH e fazer login como um usuário válido sem que tenhamos 
conhecimento da senha. Iremos interagir com um servidor web frágil em uma porta não padrão para 
tirar proveito de um problema de directory traversal (travessia de diretórios) e faremos o download de 
arquivos do sistema.
8.2.5 Ataques a senhas
 
Geralmente, as senhas representam o ponto que oferece a menor resistência 
em atividades de testes de invasão. Um cliente com um programa robusto 
de segurança pode corrigir a falta de patches do Windows e evitar a 
existência de softwares desatualizados, porém os usuários em si não podem 
ser corrigidos (WEIDMAN, 2014, p. 247).
Os ataques aos usuários com maior êxito a senhas utilizam técnicas de engenharia social, porém, se 
pudermos adivinhar ou calcular corretamente a senha de um usuário, poderemos evitar totalmente seu 
envolvimento no ataque.
135
PARECERES E TESTES DE INVASÃO
As empresas estão despertando para os riscos inerentes à autenticação baseada em senhas, e ataques 
por meio de força bruta e palpites embasados representam riscos sérios às senhas fracas. Muitas empresas 
utilizam a biometria (impressões digitais ou scan de retina) ou uma autenticação de dois fatores para 
atenuar esses riscos. Até mesmos os web services como o Gmail e o Dropbox oferecem autenticação de 
dois fatores, em que o usuário fornece uma senha, além de um segundo valor, por exemplo, os dígitos 
de um token eletrônico. Se a autenticação de dois fatores não estiver disponível, o uso de senhas fortes 
será mandatório para garantir a segurança da conta, pois tudo o que estiver entre o invasor e os dados 
sensíveis poderá se reduzir a uma simples string. Senhas fortes são longas, usam caracteres de classes 
com diversas complexidades e não são baseadas em palavras que se encontram em dicionários.
As empresas podem forçar os usuários a criar senhas fortes, mas à medida que as senhas se tornam 
mais complexas, fica mais difícil de serem lembradas.
É provável que os usuários deixem uma senha da qual não conseguem se lembrar em um arquivo em 
seu computador, no smartphone ou até mesmo em um papel para recados, pois é mais fácil se recordar 
delas dessa maneira. É óbvio que senhas que podem ser descobertas por aí em formato texto simples 
colocam em risco a segurança proporcionada pelo uso de uma senha forte.
Outro pecado mortal para um bom gerenciamento de senhas consiste em usar a mesma senha em 
vários sites. Em um cenário de pior caso, a senha fraca do CEO usada em um fórum web comprometido 
pode ser a mesma usada para o seu acesso corporativo aos documentos financeiros. A reutilização de 
senhas é algo para ter em mente ao realizar ataques a senhas; você poderá encontrar as mesmas senhas 
sendo usadas em vários sistemas e sites.
O gerenciamento de senhas apresenta um problema difícil para a equipe de TI e é provável que 
continue a ser um caminho frutífero para os invasores, a menos que a autenticação baseada em senhas 
seja completamente substituída por outro modelo.
Assim como usamos scans automatizados para descobrir vulnerabilidades, podemos usar scripts 
para tentar fazer login automaticamente em serviços e descobrir credenciais válidas. Para tal, 
utilizaremos ferramentas projetadas para automatizar ataques on-line a senhas ou para fornecer 
palpites para as senhas até o servidor responder com um login bem-sucedido. Essas ferramentas 
usam uma técnica chamada força bruta. As ferramentas que aplicam a força bruta tentam usar 
todas as combinações possíveis de nome de usuário e senha e, se houver tempo suficiente, elas irão 
descobrir credenciais válidas.
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 passa de horas para muitos anos. 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. Usuários um pouco mais conscientes quanto à segurança colocam alguns números ou até 
mesmo um ponto de exclamação no final de suas senhas.
136
Unidade IV
Antes de usar uma ferramenta para adivinhar senhas, deve-se criar uma lista de palavras, o que 
requer uma lista de credenciais para experimentar. Se você não souber o nome da conta dousuário 
cuja senha você quer quebrar, ou se quiser simplesmente fazer o cracking do máximo possível de 
contas, é possível fornecer uma lista de nomes de usuário a ser percorrida pela ferramenta que 
adivinha senhas.
Após a criação da lista de usuários, deve-se determinar o esquema a ser usado pelo alvo do teste para 
os nomes de usuário. Por exemplo, se você estiver tentando invadir as contas de e-mail dos funcionários, 
e descubra o padrão seguido pelos endereços de e-mail. Esse padrão corresponde ao primeiro nome e 
sobrenome, somente um primeiro nome ou é algo diferente?
Você pode dar uma olhada em bons candidatos a nomes de usuário em listas de primeiro nome e 
sobrenome comuns. É claro que haverá mais chances de os palpites terem mais sucesso se você puder 
descobrir os nomes dos funcionários de seu alvo.
Se uma organização usar a inicial do primeiro nome seguido de um sobrenome como o esquema 
para o nome do usuário, e houver um funcionário chamado Carlos Silveira, csilveira provavelmente será 
um nome válido de usuário.
 Observação
Pesquisas revelam que 60% dos usuários de redes corporativas utilizam 
senhas fracas, as quais facilitam ataques de força bruta. Os testes de invasão 
são mais eficazes para verificar se a norma está sendo cumprida.
8.2.6 Explorando falhas da organização
Nesse tipo de teste, é comum descobrir serviços vulneráveis ouvindo portas, senhas default que não 
foram alteradas, servidores web indevidamente configurados e assim por diante.
Entretanto, organizações que investem bastante tempo e esforço em sua atitude quanto à 
segurança podem estar livres desses tipos de vulnerabilidade. É possível ter todos os patches de segurança 
instalados, efetuar auditorias periódicas em senhas e remover qualquer uma que possa ser facilmente 
adivinhada ou quebrada.
Essas organizações podem controlar os papéis dos usuários: usuários normais podem não ter direitos 
de administrador em suas estações de trabalho e qualquer software instalado é investigado e mantido 
pela equipe de segurança. Como resultado, pode não haver muitos serviços para sequer tentar atacar.
Mesmo assim, apesar da implantação das melhores e mais recentes tecnologias de segurança e do 
emprego de equipes de segurança contra cracking, organizações de destaque (que podem resultar em 
recompensas potencialmente valiosas para os invasores) continuam sendo invadidas.
137
PARECERES E TESTES DE INVASÃO
Às vezes, não é necessário escutar diretamente uma porta nos computadores. Assim, como precisamos 
pensar em outra maneira de atacar um dispositivo dentro do perímetro de uma organização, devemos 
selecionar o nosso payload de acordo com esse cenário. Enquanto um bind shell normal pode funcionar 
bem em sistemas diretamente expostos à internet ou que estejam ouvindo uma porta em nossa rede 
local, nesse caso, no mínimo, estaremos limitados a conexões reversas.
Nos ataques feitos dentro da organização, em vez de atacar diretamente um serviço que esteja 
ouvindo uma porta, será necessário criar uma variedade de arquivos maliciosos que, quando abertos em 
um software vulnerável no computador-alvo, resultará em um comprometimento.
Após o início da execução de ferramentas, análises manuais e pesquisas, as possibilidades de 
exploração de falhas se reduzem gradualmente. Assim, restará um número limitado de problemas nos 
sistemas-alvo. Esses problemas correspondiam a problemas do servidor, ou seja, de serviços que estavam 
ouvindo portas. O que está sendo deixado de lado é qualquer software potencialmente vulnerável que 
não esteja ouvindo uma porta, isto é, softwares da organização.
Softwares como navegadores web, visualizadores de documentos e players de música estão sujeitos 
aos mesmos tipos de problema que os servidores web, os servidores de e-mail e todos os demais 
programas baseados em rede apresentam.
Obviamente, como os softwares da organização não estão ouvindo a rede, não podemos 
atacá-los diretamente, porém o princípio geral é o mesmo. Se pudermos enviar um dado de entrada 
não esperado a um programa para acionar uma vulnerabilidade, podemos sequestrar a execução 
da mesma maneira que exploramos os programas do servidor. Como não podemos enviar dados de 
entrada diretamente aos programas do cliente pela rede, devemos convencer um usuário a abrir 
um arquivo malicioso.
Como a segurança tem sido levada mais a sério e as vulnerabilidades do servidor ficaram mais difíceis 
de serem descobertas, do ponto de vista da internet, a exploração de falhas do cliente está se tornando 
a chave para obter acesso até mesmo em redes internas e cuidadosamente protegidas. Os ataques feitos 
ao lado do cliente são ideais em equipamentos como estações de trabalho ou dispositivos móveis que 
não possuem um endereço IP disponível na internet.
Embora, do ponto de vista da internet, não possamos acessar diretamente esses sistemas, eles 
normalmente podem acessar a internet ou um sistema controlado por um pentester, se pudermos 
sequestrar a execução.
Infelizmente, o sucesso de ataques feitos na organização depende de garantir, de certo modo, que 
nosso exploit seja baixado e aberto em um produto vulnerável, concretizando o ataque.
138
Unidade IV
 Resumo
Nesta unidade, estudamos os desafios de capture the flag, plataformas 
que contemplam desafios focados em técnicas de hacking, e os profissionais 
de segurança de todos os níveis encontram ambientes seguros para 
aprender a testar e conseguir praticar testes de invasão.
Os tipos de competições, com suas respectivas categorias, envolvem 
desafios em grupos, modos de ataque e defesa e desafios solo. Nesse 
contexto, foram ilustrados desafios de engenharia reversa, forense, 
criptografia, programação e exploração em aplicações web.
Nas competições de capture the flag, além do aprendizado, é possível 
interagir com outros profissionais da área, trocar experiências e ser visto 
por recrutadores de empresas de segurança ou organizações que possuem 
seus próprios times internos.
Em seguida, demonstrou-se uma plataforma chamada picoCTF, 
desenvolvida por uma das instituições mais tradicionais de segurança da 
informação, a Universidade Carnegie Mellon. Os desafios indicados focam 
em teste de invasão em aplicações web. Ao resolver pequenos desafios, 
pudemos ver a riqueza de conhecimentos que podem ser adquiridos usando 
essa forma de estudo.
Por fim, foram acentuados os principais conceitos de testes de invasão 
e as informações necessárias para compor os relatórios com resultados 
executivos. Tais ações são feitas com a finalidade de repassar as informações 
de maneira menos técnica destinadas aos gestores para auxílio na tomada de 
decisões sobre os investimentos, bem como as informações destinadas à 
retroalimentação da matriz de riscos corporativos.
139
PARECERES E TESTES DE INVASÃO
 Exercícios
Questão 1. Capture the flag é um tipo de competição com o objetivo de ensinar os primeiros passos 
de testes de invasão. Nessa competição, existem diversas modalidades: entre elas, a esteganografia.
Qual atividade listada a seguir é exemplo de uso da esteganografia?
A) Interceptação de comunicação privada.
B) Busca de informações ocultas em imagens ou arquivos.
C) Decodificação de mensagens criptografadas.
D) Correção de alteração de fluxo de um programa.
E) Alteração e compreensão do comportamento de binários.
Resposta correta: alternativa B.
Análise da questão
Esteganografia é uma técnica usada para ocultamento ou busca de informações ocultas em imagens 
ou arquivos. A decodificação de mensagens privadas é tratada na criptografia, enquanto a correção de 
alterações de fluxos de programas é objetivo da modalidade XPL no capture the flag. Já a alteração 
de binários descompilando o seu comportamento é o método de trabalho da engenharia reversa.
Questão 2. Considere as etapas de um processo de invasão listadas a seguir.
I – Coleta de informações.
II – Geração de relatórios.
III – Modelagem das ameaças.
IV – Análise de vulnerabilidades.
V – Preparação.VI – Exploração de falhas.
140
Unidade IV
A ordem correta dessas etapas é:
A) V, III, I, IV, VI e II.
B) I, VI, III, IV, V e II.
C) I, IV, III, V, II e VI.
D) V, I, III, IV, VI e II.
E) III, IV, II, I, V e VI.
Resposta correta: alternativa D.
Análise da questão
A ordem correta dos processos em um teste de invasão é a seguinte:
• preparação;
• coleta de informações;
• modelagem das ameaças;
• análise de vulnerabilidades;
• exploração de falhas;
• geração de relatórios.
141
REFERÊNCIAS
Audiovisuais
10 BEST Linux distros for ethical hacking & penetration testing. 2018. 1 vídeo (3:35). Publicado 
por Easy Tech Studios. Disponível em: https://www.youtube.com/watch?v=-QidwP0k2IA. Acesso 
em: 9 out. 2020.
ANÁLISE de vulnerabilidade com NMAP. 2020. 1 vídeo (8:23). Publicado por Hacker Security. Disponível 
em: https://www.youtube.com/watch?v=KtAjZRT6MMc. Acesso em: 22 out. 2020.
ANÁLISE de vulnerabilidades versus teste de invasão: qual a diferença? 2020. 1 vídeo (11:10). 
Publicado por Albert Oliveira. Disponível em: https://www.youtube.com/watch?v=_ 6C7TMCKnrE. 
Acesso em: 9 out. 2020.
APRENDENDO de verdade a usar o GREP no Linux. 2020. 1 vídeo (32:35). Publicado por 
Vagner Fonseca. Disponível em: https://www.youtube.com/watch?v=MDADbtNLLnI. Acesso 
em: 9 out. 2020.
ENGENHARIA reversa em Binarios Windows [CTF] [Sql3t0] [DeadLockTeam]. 2020. 1 vídeo (57:50). 
Publicado por JJ Lima. Disponível em: https://www.youtube.com/ watch?v=fJjJs8ES1qY. Acesso 
em: 9 out. 2020.
A ORIGEM dos hackers. Direção: Ralph Lee. EUA: Discovery Channel, 2001. 47 min.
ROADSEC 2019 reúne entusiastas da cibercultura hacker. 2019. 1 vídeo (3:14). Publicado 
por tvbrasil. Disponível em: https://www.youtube.com/watch?v= I5FwfAOmUu0. Acesso 
em: 9 out. 2020.
Textuais
BERTOGLIO D. D.; ZORZO, A. F. Um mapeamento sistemático sobre testes de penetração. 
Technical Report TR 084. Faculdade de Informática, Programa de Pós-Graduação em ciência 
da computação, Pontifícia Universidade Católica do Rio Grande do Sul, Porto Alegre, Rio 
Grande do Sul, 2015.
MORENO, D. Pentest em aplicações web. São Paulo: Novatec, 2017.
WEIDMAN, G. Testes de invasão. São Paulo: Novatec, 2014.
142
Sites
https://packetstormsecurity.com
http://www.pentest-standard.org/
https://picoctf.com/
143
144
Informações:
www.sepi.unip.br ou 0800 010 9000

Continue navegando