Carreira de Pentester na prática - Parte 2

Carreira de Pentester na prática - Parte 2

Na primeira parte aprendemos o que é um pentest, os níveis de acesso e as tecnologias associadas tais como aplicações web, mobile, redes internas e externas, entre outros.
Agora vamos falar sobre como executar um pentest e outros detalhes interessantes nesta tarefa.

Ok, mas como executar um Pentest?

Este tópico aborda como é o decorrer de uma análise de segurança, sendo importante ressaltar que, na maioria das vezes, somente algumas etapas são consideradas, a depender de como foi realizado o contrato de Pentest e o tipo de análise. Um exemplo é quando se tem um escopo muito pequeno, que não cabe reconhecimento, outro é o não sucesso de uma exploração, impedindo a Pós-Exploração e Movimentação Lateral.

Reconhecimento

A primeira etapa de um Pentest consiste na enumeração do ambiente, com o objetivo de conseguir a maior quantidade de informações que possam servir de insumo para análise das vulnerabilidades, incluindo requisições efetuadas por aplicações, envio de dados a servidores, versões de aplicações e sistemas, e outras informações que possam ser obtidas com o uso de diversas ferramentas ou técnicas manuais.

Esta etapa divide-se em duas partes:

Reconhecimento Ativo

Consiste na identificação das tecnologias e versões dos serviços e softwares utilizados no sistema a partir de interação direta com eles e na verificação se tais tecnologias possuem ou não vulnerabilidades conhecidas. As principais ferramentas utilizadas são:

●   Wafw00f: Ferramenta que permite identificar um WAF (Web Application Firewall) que pode estar protegendo um site;
●   Nmap: Principal ferramenta de escaneamento de portas e serviços, com múltiplas funcionalidades;
●   BurpSuite: Uma das ferramentas mais populares no ramo da segurança em geral, sendo um proxy extremamente robusto, ele possui diversas extensões com as mais variadas funcionalidades. Imagem mostrando algumas vulnerabilidades identificadas pelo BurpSuite Pro:

Reconhecimento Passivo

Consiste na busca por informações confidenciais, tais como nomes de usuário, chaves privadas, credenciais, arquivos de configurações e demais dados que possam ser encontrados através de buscas no site da organização ou em sites de terceiros, como vazamento de código ou busca de informações, tais esses:

●   censys.io: Coleta informações sobre a Infraestrutura, ASNs, hosts, portas e serviços;
●   securitytrails.com: Busca informações referente a registros históricos de um domínio;
●   Amass: Ferramenta de enumeração de subdomínios e endpoints;
●   Trello: Ferramenta de organização de tarefas;
●   Pastebin: Ferramenta de compartilhamento de código e texto em geral;
●   GitHub: Plataforma de hospedagem de código-fonte com controle de versão de versão usando o Git. Exemplo:

Análise de vulnerabilidades

Após a obtenção de informações na etapa de reconhecimento, é feita uma busca em toda a cobertura do sistema mapeado para encontrar possíveis pontos de exploração. Neste processo, o teste é realizado tanto de forma manual, quanto com ferramentas automatizadas, sendo as principais:

●   Nessus: O scanner de vulnerabilidades mais famoso e completo no mundo, ele consegue automatizar um processo de pentest, desde o reconhecimento à geração de relatório;
●   Nikto: Scanner de vulnerabilidades utilizado em aplicações web em busca de arquivos comuns, aplicações desatualizadas e outras falhas de segurança mais comuns;
●   Nuclei: Um dos scanners mais populares, sendo bastante flexível e tendo como diferencial ser baseado em templates;
●   Nmap+scanner: O Nmap também possui scripts de scan de vulnerabilidades para alguns casos que acabam sendo bastante úteis, tais como a função "--script vuln", que identifica se os serviços expostos estão vulneráveis ou a função "--script http", que captura as versões de serviços, os vazamentos através de cabeçalhos e também identifica possíveis vulnerabilidades.

Exploração

Após uma vulnerabilidade ser identificada, o objetivo torna-se efetuar a exploração das falhas identificadas, na qual são direcionados diversos ataques a todas as classes de vulnerabilidade possíveis, em um esforço para obter acessos de forma não autorizada.

Para cada tipo de falha existe um meio de exploração diferente, sendo grande parte feita de forma manual. Porém, existem ferramentas automatizadas que auxiliam no processo, tais como:

●   metasploit-framework: O mais usado e completo Framework voltado para Pentest, contendo inúmeros exploits de CVEs;
●   aircrack-ng: Um conjunto de ferramentas voltado para ataques de Wi-Fi;
●   Ettercap: Software para ataques de Man-In-The-Middle em LANs;
●   Payloads All The Things: O mais completo repositório de payloads e tutorias das principais vulnerabilidades Web;
●   sqlmap: A ferramenta mais conhecida de exploração de SQL Injection. Imagem da execução em ambiente controlado:

Pós-Exploração

Caso, após a exploração de uma vulnerabilidade, seja obtido algum acesso especial ao sistema, é feito um mapeamento da rede interna visando a possibilidade de acesso a outras partes do sistema, escalação de privilégios e movimentação lateral, que serão vistos adiante.

Escalação de privilégios

Em todos os cenários que envolvam credenciais, após obter algum tipo de acesso ao sistema, a pessoa Pentester pode explorar falhas ou realizar ataques para a escalação de privilégios com o intuito de obter usuários com privilégios mais elevados, como um acesso administrativo de um domínio. Para pentests de Rede, há dois guias de suma importância:

●   Escalação de Privilégios em Windows (HackTricks);
●   Escalação de privilégios em Linux (HackTricks).

Outra dica é que, em certos momentos, esta etapa pode acabar sendo bastante facilitada com a ajuda de alguns exploits de CVEs publicadas, como por exemplo esses famosos exploits de Linux Kernel Exploitation:

●   Dirty COW (CVE-2016-5195);
●   Dirty Pipe (CVE-2022-0847). Execução do Dirty Pipe:

Movimentação lateral

A movimentação lateral consiste, como o nome sugere, em mover-se “lateralmente” entre usuários ou máquinas de um mesmo sistema com a obtenção de credenciais. Graças a essa técnica, é possível explorar outras máquinas e ganhar uma maior cobertura de informações a fim de aumentar as chances de se obter uma vulnerabilidade de criticidade mais alta, como uma escalação de privilégios a um usuário administrativo, por exemplo - vale ressaltar que o cenário do exemplo é mais comum em Pentests de Rede que contenham AD.

Exfiltração

Com o domínio da rede e acesso administrativo, o foco da etapa de exfiltração tem como objetivo a visualização de documentos pessoais e restritos da rede interna, sendo eles localizados em: Banco de dados, File Shares, E-mails, etc.

Relatório

Elabora-se um relatório com uma descrição, uma classificação e recomendações para mitigação e correção de cada vulnerabilidade identificada, tudo isso com a conclusão da pessoa Pentester sobre a maturidade de segurança do sistema testado.

Continuação

O sucesso na Carreira de Pentester depende em grande parte da ligação entre o constante estudo sobre as novas tecnologias de segurança da informação e o desempenho criativo durante as análises.

A pessoa Pentester é a responsável tanto pelo teste e aferição das condições de segurança quanto pela sinalização das possíveis falhas e pontos que podem ser aprimorados em um determinado ambiente de uma organização, sendo atividades de enorme relevância que visam garantir o pleno e seguro funcionamento de todos os sistemas.

Em breve serão publicados mais artigos abordando temas como “O que é preciso para iniciar na carreira de Pentester”, “Certificações” e “Plataformas de Estudo”.

Até logo!

⚠️
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.