Alura > Cursos de DevOps > Cursos de Segurança > Conteúdos de Segurança > Primeiras aulas do curso Pentest: explorando vulnerabilidades em aplicações web

Pentest: explorando vulnerabilidades em aplicações web

O que é Pentest? - Apresentação

Boas-vindas! Sou Camila, mas muitos me chamam de Mila. Faço parte do time de conteúdo da Alura e vou acompanhar vocês neste curso de Pentest.

Audiodescrição: Camila Machado tem cabelos longos, pretos e cacheados e olhos castanhos escuros. No corpo, veste uma blusa preta e um colar dourado com um pingente. Ao fundo, uma parede branca com uma iluminação em tons de azul.

O que Aprenderemos neste Curso?

Neste curso, vamos hackear sistemas web, portanto, "Welcome to the hack side!" (boas-vindas ao lado hacker da força!). Mas pode se acalmar, pois não faremos nada ilegal. Vamos agir como os famosos hackers éticos.

Para isso, vamos aprender algumas coisas, como, por exemplo, uma introdução ao Pentest. O Pentest é um teste que também pode ser chamado de teste de intrusão, muito utilizado na área de segurança ofensiva. Com isso, vamos aprender alguns termos da área e até mesmo realizar alguns desses testes.

Também vamos conhecer vulnerabilidades, entre elas algumas famosas, como as listadas pelo Top 10 da OWASP (Open Web Application Security Project), uma fundação sem fins lucrativos que cria listas das vulnerabilidades que mais ocorrem em sistemas web.

Além disso, vamos aprender sobre algumas dessas vulnerabilidades, como, por exemplo:

Também exploraremos algumas ferramentas que podem nos auxiliar a encontrar ou até mesmo executar essas vulnerabilidades, como, por exemplo, o Kali Linux, um sistema operacional focado para segurança ofensiva.

Existem algumas ferramentas pré-instaladas nesse sistema operacional, como, por exemplo:

Pré-requisitos

Para aproveitar ao máximo este curso, é preciso ter alguns pré-requisitos, como, por exemplo:

Ao concluir este curso, seremos capazes de realizar os primeiros testes de intrusão e conheceremos ferramentas que vão auxiliar a realizar esses testes, reconhecendo vulnerabilidades que podem existir em aplicações web.

Esperamos ter despertado seu interesse para conhecer esse mundo de Pentest e segurança ofensiva. Nos vemos nos próximos vídeos!

O que é Pentest? - O que é Pentest?

Estamos felizes por você decidir se juntar a nós na área de segurança ofensiva. Antes de começarmos a trabalhar nessa área, é necessário conhecer alguns termos comumente utilizados, como, por exemplo, o que é um Pentest.

O que é Pentest?

Para contextualizar, vamos voltar ao tempo em que os computadores domésticos e a internet se tornaram cada vez mais acessíveis. Com isso, temos cada vez mais usuários conectados em rede, o que pode levar ao surgimento de vulnerabilidades, como aplicações falhando ou dados vazando.

Muitas vezes, aceitamos todas as permissões do aplicativo sem saber exatamente o que ele está utilizando, ou seja, quais dados estamos fornecendo para as pessoas desenvolvedoras que gerenciam a aplicação.

Do ponto de vista da pessoa desenvolvedora, geralmente há várias etapas envolvidas no trabalho, como o design, o back-end, o front-end, até o deploy e o acompanhamento da aplicação.

Com a aplicação já na rede, podem surgir perguntas como: onde estão as vulnerabilidades? Será que a pessoa desenvolvedora conseguirá abordar todos os pontos vulneráveis dessas aplicações? Ou será que uma pessoa de fora pode ver melhor as possíveis portas de entrada para uma pessoa mal-intencionada?

Para responder a essas questões, temos a pessoa profissional conhecida como pentester, que realiza testes de penetração ou de intrusão. Essa pessoa age como alguém de fora, tentando encontrar os pontos vulneráveis e apontando para a pessoa desenvolvedora quais partes precisam ser trabalhadas para evitar possíveis ataques. Dessa forma, a pessoa pentester pode agir de forma preventiva, antes que algo pior aconteça com as aplicações.

Red team contra Blue team

Em empresas, essas pessoas profissionais geralmente trabalham em equipes, que podem ser internas ou externas. Temos a Red team (equipe vermelha), focada em realizar ataques na aplicação, procurando vulnerabilidades, como se fossem possíveis hackers. E temos a Blue team (equipe azul), que trabalha na defesa, focada em como deixar a aplicação segura.

Essas duas equipes podem trabalhar juntas, uma identificando os pontos que precisam melhorar e a outra tornando a aplicação segura.

Algumas empresas também têm a Purple team (equipe roxa), uma combinação das equipes vermelha e azul, focada tanto na defesa quanto no ataque. Para isso, as pessoas integrantes precisam ter conhecimentos tanto da parte de web quanto de segurança.

Existem alguns sistemas operacionais próprios com ferramentas que podem facilitar nos testes de penetração ou de intrusão, como:

Todos esses são sistemas operacionais que possuem diversas ferramentas focadas para testes de intrusão. Essas ferramentas auxiliam a realizar testes como força bruta, SQL Injection, XSS, entre outros, que veremos com mais detalhes durante o curso.

Vamos utilizar o sistema operacional Kali Linux, simulando a máquina de uma pessoa hacker e utilizando essas ferramentas para explorar as aplicações que vamos trabalhar na nossa possível empresa contratante.

No próximo vídeo, vamos preparar o nosso ambiente para começar efetivamente os nossos testes e iniciar a prática. Lembre-se, só podemos realizar esses testes em aplicações para as quais temos autorização. Fazer esses testes em aplicações sem autorização pode ser contra a lei e até mesmo um crime.

Até a próxima!

O que é Pentest? - Preparando o ambiente

Conhecemos alguns termos de segurança ofensiva, como, por exemplo, os testes de intrusão ou pentests. Vamos agir como possíveis hackers e procurar pontos de vulnerabilidade em uma aplicação web, destacando-os para serem trabalhados. O objetivo é agir contra essas vulnerabilidades antes que uma pessoa maliciosa possa atacar a aplicação.

Neste curso, vamos supor que fomos contratados por uma empresa que desenvolve aplicações web e temos a missão de testar as aplicações assim que forem lançadas. Para isso, precisamos preparar ambiente para realmente fazer esses testes.

No curso, estamos usando o ambiente Windows e, como mencionado anteriormente, existem sistemas operacionais próprios para testes de intrusão, como, por exemplo, o Kali Linux. Ele é um sistema operacional que possui ferramentas que facilitarão trabalho.

Vamos pesquisar mais sobre ele e descobrir o que ele tem e por que é interessante instalá-lo em máquina.

Conhecendo o Kali Linux

Vamos abrir o navegador (browser), e pesquisar por "Kali Linux" no Google.

Kali Linux

Veremos que o primeiro resultado da busca é o site oficial do Kali. Vamos acessá-lo.

Em seu interior, logo no início, temos algumas informações sobre o Kali, informando que ele é um sistema operacional open source, e também uma distribuição Linux baseada em Debian. Portanto, os comandos Linux funcionarão normalmente neste sistema operacional.

Além disso, o site informa que ele também é focado para penetration test (teste de penetração), ou pentest.

Descendo essa página, temos informações sobre a documentação, a comunidade, o sistema operacional e algumas ferramentas que podemos usar com ele. Algumas serão utilizadas durante o curso, como, por exemplo, o sqlmap e o Burp Suite, que estão pré-instaladas no Kali Linux e facilitarão bastante trabalho.

Voltando ao topo do site e selecionando o botão "Download", ele nos direciona para outra tela chamada "Choose your Kali", que nos pede para escolher a plataforma. Nela, temos opções para download, e a segunda opção é "Virtual Machines" (máquinas virtuais).

Vamos selecioná-la, pois máquinas virtuais são interessantes para nós. No sistema Windows utilizado no curso, podemos instalar uma máquina virtual para simular o ambiente do Kali, por exemplo.

Para isso, precisamos de um gerenciador de máquinas virtuais, que ainda não temos. Um exemplo deles é o VirtualBox da Oracle.

Instalando o VirtualBox

Vamos abrir uma nova guia e pesquisar no Google por "VirtualBox".

VirtualBox

Entre os resultados, aparece a opção do link de download do VirtualBox, em virtualbox.org. Logo no início dessa página tem uma descrição de boas-vindas, explicando o que é o VirtualBox, e abaixo dela um botão azul intitulado "Download VirtualBox" na versão 6.1. Essa é a versão que vamos utilizar neste curso, e reconmedamos sua utilização.

A versão mais recente do VirtualBox mudou após a gravação deste curso. Para encontrar a versão 6.1, acesse a página das versões anteriores do VirtualBox.

Vamos selecionar esse botão azul de download, e logo em seguida ele nos redirecionará para uma página com várias opções de downloads da versão 6.1.34, com as versões para Windows, macOS, distribuições Linux ou Solaris. Como estamos no Windows, vamos selecionar a opção para Windows.

Ele baixará automaticamente um executável. Podemos abri-lo.

Ele pergunta se desejamos permitir que esse aplicativo faça alterações no dispositivo. Vamos selecionar "Sim" e ele abrirá uma janela de boas-vindas ao VirtualBox da Oracle.

Em seu interior, podemos selecionar o botão "Next" — uma opção na barra inferior da janela de instalação — três vezes. Podemos manter toda a configuração padrão.

Por fim, a janela exibirá um aviso sobre a conexão e perguntará se queremos continuar com a instalação. Vamos selecionar o botão "Sim" e, em seguida, "Install".

A instalação desse gerenciador de máquinas virtuais vai demorar um pouco. Durante o processo de carregamento da barra de instalação, é possível que uma nova janela apareça, perguntando se realmente desejamos instalar esse software de dispositivo. Nesse caso, podemos selecionar "Instalar" e o processo de instalação continuará normalmente.

Essa mensagem pode aparecer mais de uma vez. Se isso ocorrer, poderemos selecionar "Instalar" novamente.

Após a instalação ser concluída, podemos manter a caixa de seleção de iniciar a VirtualBox assim que a instalação terminar selecionada. Por fim, vamos selecionar o botão "Finish".

Com isso, finalizamos o processo de instalação e a VirtualBox abrirá uma janela chamada "Oracle VM VirtualBox Gerenciador". Em seu interior, temos uma barra superior com os menus "Arquivo", "Máquina" e "Ajuda". Abaixo dela, à esquerda, temos uma aba com a opção "Ferramentas" e o local onde serão listadas todas as nossas máquinas virtuais. No caso, vamos utilizar a do Kali Linux, mas ainda precisamos adicioná-la.

À direita, há uma área com a mensagem de boas-vindas e acima dela, botões com as opções "Preferências", "Importar", "Exportar", "Novo" e "Acrescentar". Esta última se refere a máquinas virtuais que vamos utilizar mais adiante.

Baixando o Kali Linux

Podemos adicionar o Kali Linux. Para isso, vamos minimizar a janela do VirtualBox e voltar para a página do Kali Linux no navegador.

Quando selecionamos o botão "Download" na página kali.org, o endereço se torna kali.org/get-kali, no qual vamos selecionar o cartão da segunda opção, "Virtual Machines". Isso vai nos redirecionar para a seção "VirtualMachines", na parte inferior da página.

Descendo mais a página, temos um botão com as opções de sistemas 64-bit e 32-bit. Vamos manter a primeira selecionada. Abaixo desse botão, aparecem as duas opções de gerenciadores 64-bit, "VMware" e "VirtualBox".

No caso, vamos utilizar a VirtualBox, portanto, selecionamos essa opção. Nela, veremos três opções de download: um ícone de seta para baixo com um risco embaixo, "torrent" e "sum". Vamos selecionar o ícone de seta para baixo para baixar esse arquivo.

Após o download ser concluído, veremos que ele baixou um arquivo chamado kali-linux-2022.2-virtualbox-amd64, no formato .ova. Agora, podemos voltar para a VirtualBox.

Adicionando o Kali Linux ao VirtualBox

Vamos minimizar o navegador e abrir a janela da VirtualBox. Para adicionar a máquina do Kali Linux vamos importá-la, selecionar o botão "Importar". Com isso, outra janela chamada "Importar Appliance Virtual" será exibida — ou seja, nós baixamos um appliance do Kali Linux.

Nessa janela, aparece o campo de texto nomeado "Arquivo (F)". Podemos selecionar botão com um ícone de diretório à sua direita e selecionar na janela do explorador o arquivo que acabamos de baixar.

Com isso, o nome do arquivo e seu local de origem aparecem no campo "Arquivo (F)". Em seguida, podemos selecionar o botão "Próximo", no canto inferior direito da janela.

Em seguida, essa janela exibirá informações da máquina virtual, como nome, produto, URL do produto, fabricante, tipo de sistema operacional — no caso, o Debian —, além da quantidade de memória RAM. Caso tivermos interesse, podemos dar uma olhada.

No canto inferior direito dessa janela, podemos selecionar o botão "Importar". Após o clique, uma nova janela será exibida com um link dos termos e condições da máquina virtual.

Termos e Condições da Licença de Uso do Kali Linux.

Podemos copiá-lo e abrir no navegador. Essa página fala sobre as políticas para concordarmos em utilizar a máquina virtual. Fique à vontade para ler com mais calma.

Caso tenha dificuldade com inglês, há uma extensão do Google Tradutor no Chrome que pode ajudar.

Voltando à janela com o link dos termos, selecionaremos o botão "Concordo" e com isso, ele vai importar a máquina virtual, exibindo uma janela com uma barra de carregamento. Esse processo demora um pouco, mas vai valer a pena.

Após a importação ser concluída, voltaremos à janela principal da VirtualBox, em cuja aba de ferramentas à esquerda aparece a máquina "Kali-Linux-2022.2-virtualbox-amd64". Nela, vemos um botão redondo com o ícone de liga e desliga no modo "Desligada".

Podemos dar dois cliques nela para ligar a máquina virtual e ver como ela é. Isso transformará o botão de liga e desliga em uma seta e a palavra "Desligada" em "Executando".

Logando no Kali

Ao ligar a máquina virtual, outra janela será exibida. Vamos maximizá-la. Com isso, veremos uma nova janela com uma mensagem de aviso, informando que a máquina virtual capturará o cursor do mouse. Isso ocorre porque, quando clicamos na tela, mouse fica na máquina virtual e nessa parte não teremos cursor. Caso o seu mouse suma, você pode apertar o "Ctrl" direito.

Nessa janela, vamos selecionar o botão "Capturar". Com isso, veremos uma pequena janela de login do Kali.

O login já está cadastrado. O nome de pessoa usuária e a senha são "kali". Podemos preencher os dois campos e clicar em "Log In" para fazer o login.

kali

Com isso veremos a janela principal, na qual temos a máquina do Kali Linux. Esse sistema operacional vai facilitar a criação dos testes de intrusão. Em seu interior, temos a barra de menus na parte superior. Ao clicar na primeira opção à esquerda, "Applications", veremos todas as aplicações que temos. Existem várias, muitas focadas apenas em testes de intrusão.

Configurando o Teclado para Português do Brasil

Uma coisa importante a fazer no menu "Applications" é acessar as opções "Settings > Keyboard" para configurar o teclado em português, pois pode estar em inglês e algumas teclas podem não funcionar corretamente.

Na aba "Keyboard" (teclado), acessaremos a guia "Layout". No topo dela, vamos desmarcar o botão de alternância da opção "Use system defaults" (Usar configurações padrões), pois não vamos usá-las.

No final dessa guia, veremos uma tabela de layouts exibindo somente a opção "English (US)" (inglês dos EUA). Para adicionar a opção de português, cliquei no botão "Add" (adicionar), e na janela exibida, vamos procurar e selecionar a opção "Portuguese (Brazil)", pressionando em seguida o botão "OK".

Voltando à tabela de layouts, podemos remover o inglês, clicando nele e no botão "Remove". Com isso, nosso teclado já está em português, o que facilita bastante.

Podemos fechar essa janela "Keyboard", clicando no "X" em seu canto superior esquerdo.

Cadastrando uma Conta no PortSwigger

Está quase tudo pronto para começar a realizar os testes. A seguir, precisamos nos cadastrar em uma plataforma chamada PortSwigger, na qual encontraremos todas as aplicações web que vamos explorar, também conhecidas como laboratórios — lembrando que não podemos realizar esses testes em aplicações para as quais não temos autorização, somente em aplicações voltadas para o ensino.

É fundamental fazer esse cadastro, pois utilizaremos bastante esse site, no qual encontraremos os laboratórios, ou seja, as aplicações que vamos explorar.

Vamos abrir o navegador Firefox, que já vem instalado no Linux, clicando sobre seu ícone diretamente na barra de tarefas do Kali Linux. Na barra de busca do navegador, vamos pesquisar por PortSwigger.

portswigger

A primeira opção que aparece é o site Portswigger.net. Ao acessar essa página, encontramos informações sobre o que eles fazem, além de algumas aplicações que exploraremos mais adiante. Essas aplicações são voltadas para testes de intrusão e também possuem uma seção de ensino.

No canto superior direito, vamos clicar no botão laranja chamado "Login". Como ainda não temos uma conta, vamos clicar em "Create account" para criar uma.

Na tela de registro, no campo "Email address", vamos inserir o e-mail que utilizamos para receber essa conta. Após clicar em "Register", eles enviarão um e-mail com nossa senha automaticamente para acessar a página da PortSwigger.

Esse e-mail terá o título "Complete your registration" (Complete seu registro). Podemos traduzi-lo por meio da opção de tradução do próprio Gmail.

O e-mail agradece pelo registro e fornece algumas informações. No entanto, o mais importante é selecionar a opção "Click here" para completar o registro. Após o clique, receberemos a senha para fazer o login.

Mais adiante, utilizaremos essa aplicação para acessar os famosos laboratórios, as aplicações que vamos explorar ao longo do curso.

O processo de instalação foi demorado, mas finalmente temos o ambiente preparado para começar a realizar os testes. A seguir, vamos explorar as aplicações e trabalhar com possíveis hackers. Nos vemos no próximo vídeo. Até mais.

Sobre o curso Pentest: explorando vulnerabilidades em aplicações web

O curso Pentest: explorando vulnerabilidades em aplicações web possui 201 minutos de vídeos, em um total de 57 atividades. Gostou? Conheça nossos outros cursos de Segurança em DevOps, ou leia nossos artigos de DevOps.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Segurança acessando integralmente esse e outros cursos, comece hoje!

Plus

De
R$ 1.800
12X
R$109
à vista R$1.308
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

Matricule-se

Pro

De
R$ 2.400
12X
R$149
à vista R$1.788
  • Acesso a TODOS os cursos da Alura

    Mais de 1500 cursos completamente atualizados, com novos lançamentos todas as semanas, emProgramação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Luri, a inteligência artificial da Alura

    Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com Luri até 100 mensagens por semana.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas