Alura > Cursos de DevOps > Cursos de Segurança > Conteúdos de Segurança > Primeiras aulas do curso Pentest: combinando vulnerabilidades e acessando o Shell

Pentest: combinando vulnerabilidades e acessando o Shell

LFI com PHP wrapper - Apresentação

Boas-vindas ao Curso de Pentest: combinando vulnerabilidades e acessando o Shell, eu sou o José Augusto e serei o seu instrutor.

José Augusto é um homem branco, de olhos escuros, cabelos pretos, barba média e bigode curto e pretos. Veste uma camiseta preta sem estampa e está sentado em um ambiente com iluminação esverdeada. Ao fundo, há um armário com alguns livros na lateral esquerda e à direita do instrutor há uma mesa com um livro e acima uma janela com uma cortina branca.

José Augusto é autor do livro "Pentest em aplicações web: Avalie a segurança contra ataques web com testes de invasão no Kali Linux", pela Casa do Código (2021).

Neste curso vou passar para vocês um pouco da minha experiência em exploração de aplicações web em segurança ofensiva.

Segurança ofensiva: É um ramo da Segurança da Informação que serve para aumentar as defesas da organização.

Neste curso, não ensinaremos conceitos antiéticos. O objetivo de se ter uma ação ofensiva dentro de uma organização é gerar um relatório com as vulnerabilidades a serem corrigidas. Isto é, nos adiantar perante os agentes maliciosos. É isso que aprenderemos neste curso, com o foco em aplicações web.

Pré-requisitos: Dinâmica do curso:

Você será desafiado várias vezes ao longo do curso, para concluir algumas etapas. Mas vou concluir essas etapas em vídeos posteriores com você, ou seja, é um curso baseado em desafios que vamos resolver juntos!

Vou apresentar uma introdução a um teste ofensivo em uma aplicação web, e você será desafiado a seguir sem a solução até o próximo vídeo. Caso não consiga, a resposta estará no vídeo de solução do desafio!

Espero que vocês gostem deste curso. Até a próxima aula!

LFI com PHP wrapper - Apresentação do desafio

Olá! Agora montaremos o ambiente desta aula. Precisamos garantir que você tenha instalado as seguintes ferramentas:

O nosso primeiro passo será acessar o VulnHub , este é uma plataforma que possui diversas máquinas vulneráveis em que podemos baixar e treinar com elas. Ou seja, realizar os testes de invasões em um ambiente controlado, em que vamos poder melhorar as nossas habilidades.

No site do VulnHub , podemos clicar em " Download (Mirror) ". Isso fará o download dessa máquina para a máquina de vocês.

Em seguida, acessaremos o nosso Virtualbox. Com ele aberto, na aba de downloads da sua máquina, podemos clicar "pwnlab_init.ova". Será aberta uma janela com o título "Configuração do Appliance", no campo "Nome" digitaremos "pwnlab" e clicaremos em "Placa de Rede" para garantir outros aspectos. Em seguida, vamos selecionar o botão "Importar", no canto inferior direito.

Com a máquina importada, vamos clicar no ícone de engrenagem na parte superior em "Configurações", para analisarmos se há alguma observação. Note que na janela que será aberta, na parte inferior terá uma mensagem: "Configurações: inválidas detectadas", com um ícone de atenção em um monitor de tela. Isso significa que é necessário alterar o monitor.

Do lado esquerdo, selecionaremos "Monitor", no campo "Controladora Gráfica" alteraremos para outra opção, até o erro desaparecer. Clicando em "Redes", à esquerda, no campo "Conectado a" eu vou deixar em modo Bridge, mas caso queira deixar em outro, basta alterar nesse campo. Garanta, também, que esteja utilizando a sua placa de rede correta em "Nome". Em seguida, clicaremos no botão "Ok", do lado direito inferior.

Na próxima aula, realizaremos alguns ataques, na prática. Vamos lá?

Preparando o ambiente

LFI com PHP wrapper - Mapeamento inicial do sistema

Estamos com o ambiente preparado para iniciar o nosso desafio. Porém, não sabemos o IP da máquina. Anota aí: a primeira coisa que precisamos fazer é um escaneamento na rede para encontrar esse servidor.

Estamos trabalhando com aplicações web, logo vamos procurar na nossa rede algum servidor que esteja com a porta 80 aberta.

Lembrando que a máquina virtual do instrutor está ligada em modo Bridge.

Como podemos buscar esses servidores com a porta 80 aberta? Vamos usar uma ferramenta de mapeamento de rede chamada de Nmap. Para isso, precisamos saber o IP, por isso, no terminal do Kali Linux, executaremos o comando ifconfig. Note que temos no retorno inet finalizado com "15.171" e com o netmask sendo "255.255.155.0". Logo, é um "/24".

Como vamos executar o Nmap? No terminal, rodaremos o seguinte comando:

nmap -n -p 80 --open 192.168.15.0/24

Note que no retorno temos:

Como faremos para acessá-lo? Vamos copiá-lo, e acessar o Burp Suite. Para isso, clicaremos no ícone do Kali na parte superior esquerda do terminal e procurar por "Burp Suite".

Caso não saiba para que serve o Burp Suite, o ideal é assistir aos cursos listados nos pré-requisitos.

Será exibida uma tela, em que clicaremos no botão laranja escrito "Next", na parte inferior direita. Na próxima tela, selecionaremos o botão "Start Burp". Utilizaremos o Burp Suite por ser um proxy, que facilita o nosso trabalho com aplicações web. Além de incluir um browser bem configurado.

Após carregar, para acessar o browser, vamos selecionar "proxy" na parte superior na tela e, depois, "Open Browser" - por enquanto, podemos desabilitar o proxy selecionando "Intercept is on". Basta aguardar um navegador chromium abrir.

Será solicitado uma autenticação, em que você vai precisar inserir a senha do seu sistema operacional. Após inseri-la, basta clicar no botão "Unlock", do lado inferior direito.

Dessa forma, podemos colar o IP na URL do navegador e buscar. Com isso, acessamos a máquina do nosso desafio. Note que a aplicação possui algumas páginas: home, login e upload. Nesta última, é informado que para acessá-la é preciso estar logado.

Para essa máquina, vamos utilizar um ataque chamado LFI - Local File Inclusion (em português, "Injeção de arquivo local").

Esse tipo de ataque LFI - Local File Inclusion também é explicado nos cursos anteriores.

Observe as variações dos liks. Na página login está como "192.168.15.132/?page=login" e na página de upload fica "192.168.15.132/?page=upload".

No Back-End, temos algo parecido com: echo $nomedapagina + ".php", sendo $nomedapagina a variável. Temos controle somente sobre a etapa de nome da página, logo não conseguimos, por exemplo, colocar o "/etc/pwd". Isso porque no momento do PHP acessar, ele concatenaria com .php e assim ficaria "/etc/pwd.php" - sendo um arquivo inexistente.

Portanto, precisamos acessar arquivos que finalizam com ".php". Porém, se o arquivo termina com .php, não conseguimos acessar informações sensíveis, dado que ele será sempre executado pelo servidor Apache.

Existe um conceito chamado de PHP Wrappers e vamos acessar a documentação dele no próximo vídeo!

Sobre o curso Pentest: combinando vulnerabilidades e acessando o Shell

O curso Pentest: combinando vulnerabilidades e acessando o Shell possui 97 minutos de vídeos, em um total de 47 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!

Conheça os Planos para Empresas