O que é Análise de Vulnerabilidades?
Análise de Vulnerabilidades (Vulnerability Assessment — VA) é a quarta fase da metodologia de hacking ético. Se as fases anteriores (reconhecimento, enumeração, varredura) são sobre coletar informações, a VA é onde você identifica as fraquezas que um atacante poderia explorar.
A diferença fundamental: VA encontra vulnerabilidades. Exploitation explora essas vulnerabilidades. O ethical hacker que faz VA identifica e reporta. O pentester que faz exploitation prova que o risco é real executando o ataque. Ambas são legais quando autorizadas por escrito pelo dono do sistema.
Tipos de VA por escopo:
- Network-based: Analisa hosts, serviços e portas abertas na rede (Nessus, OpenVAS)
- Host-based: Examina configurações do SO, permissões de arquivos, patches instalados
- Application-based: Foca em aplicações web e APIs (Nikto, WPScan, Burp Suite)
- Wireless: Avalia pontos de acesso, protocolos de criptografia, configurações Wi-Fi
- Database: Verifica configurações de bancos de dados, permissões, patches
Metodologias de VA
Não adianta sair escaneando aleatoriamente. Frameworks e metodologias dão estrutura ao processo. Os mais relevantes:
- PTES (Pentest Standard): Define fases padronizadas para pentest, incluindo VA. Cobertura completa: pre-engagement, intelligence, threat modeling, vulnerability analysis, exploitation, post-exploitation, reporting.
- OWASP Testing Guide: Focado em aplicações web. Inclui testes de info gathering, configuration management, authentication, authorization, session management, input validation, e mais.
- OSSTMM (Open Source Security Testing Methodology Manual): Abordagem holística que avalia segurança de canais (humano, físico, wireless, telecom, data).
Fases do VA
- Discovery: Identificar ativos na rede — hosts ativos, serviços, portas. Nmap é o rei aqui.
- Enumeration: Coletar detalhes dos serviços encontrados — versões, banners, OS fingerprint.
- Vulnerability Identification: Comparar as informações coletadas contra bases de vulnerabilidades (CVE, NVD) usando ferramentas automatizadas.
- Analysis: Classificar severidade, avaliar impacto, descartar falsos positivos.
- Reporting: Documentar tudo com contexto, impacto e recomendações.
Nessus
Nessus, da Tenable, é um dos scanners de vulnerabilidades mais usados no mercado. Cobertura ampla de plugins (mais de 200.000), interface web intuitiva e suporte a múltiplos tipos de scan.
Versões
| Versão | Custo | Limitações |
|---|---|---|
| Nessus Essentials | Grátis (registro) | 16 IPs por scan, pessoal/não-comercial |
| Nessus Professional | Pago | Ilimitado, compliance checks, API |
| Nessus Expert | Pago | Tudo do Pro + live results, WAS |
Instalação
# Download em tenable.com/products/nessus/nessus-essentials
# Kali Linux geralmente já tem no repositório
sudo apt install nessus
# Iniciar o serviço
sudo systemctl start nessusd
# Acessar: https://localhost:8834
# Ativar via Tenable (requer registro gratuito para Essentials)
Configurando um Scan
- Acesse
https://localhost:8834 - Clique em New Scan
- Escolha o template:
- Basic Network Scan: Descoberta de hosts + vulnerabilidades em serviços
- Web App Scan: Aplicações web (XSS, SQLi, CSRF)
- Malware Scan: Detecção de malware e backdoors
- Credentialed Scan: Usa credenciais para análise mais profunda (patches, configurações)
- Defina o target (IP, range CIDR, hostname)
- Execute e aguarde
Interpretando Resultados
Os resultados são categorizados por severidade:
| Severidade | Cor | Significado |
|---|---|---|
| Critical | Vermelho | Exploração trivial, impacto massivo (RCE, SQLi sem auth) |
| High | Laranja | Exploração possível, impacto significativo |
| Medium | Amarelo | Exploração exige condições específicas |
| Low | Azul | Impacto limitado, dificilmente explorável |
| Info | Cinza | Informacional, sem vulnerabilidade direta |
Cada resultado inclui: descrição da vulnerabilidade, referências CVE/CWE, solução (patch ou workaround), e output do plugin que detectou o problema.
OpenVAS (GVM)
Greenbone Vulnerability Management (GVM), anteriormente conhecido como OpenVAS, é a alternativa open source mais robusta ao Nessus. Mantido pelo Greenbone Networks, faz parte do Greenbone Community Edition.
Instalação no Kali
# Instalação (Kali já inclui por padrão)
sudo gvm-setup
# O processo gera uma senha de admin — ANOTE
# Se perder, resetar:
sudo gvm-manage-certs -a
sudo runuser -u _gvm -- gvmd --user=admin --new-password=SuaNovaSenha
# Iniciar todos os serviços
sudo gvm-start
# Aguardar a inicialização (NVTs são atualizados automaticamente)
# Pode demorar 10-30 min na primeira vez
# Acessar: https://127.0.0.1:9392
Criando Target, Task e Scan
- Configuration → Targets → New Target — Defina o IP/range e dê um nome
- Scans → Tasks → New Task — Selecione o target e o scan config (Full and fast é o padrão)
- Start — Execute o scan
- Monitore em Scans → Tasks
Os NVTs (Network Vulnerability Tests) são os plugins do OpenVAS — milhares de testes atualizados regularmente via greenbone-feed-sync.
Dashboard e Relatórios
O dashboard do GVM oferece visão geral: vulns por severidade, top hosts vulneráveis, tendência temporal. Os relatórios podem ser exportados em PDF, CSV e XML.
Nikto
Nikto é um web server scanner open source. Rápido de usar, excelente para primeira passada em servidores web. Detecta configurações inseguras, software desatualizado, arquivos perigosos e mais.
Instalação e Comandos
# Kali já tem
sudo apt install nikto
# Scan básico
nikto -h http://target.com
# HTTPS
nikto -h https://target.com -ssl
# Tuning — controla quais testes executar
nikto -h http://target.com -Tuning 1234
# Principais tunings:
# 1 - Interesting files
# 2 - Misconfigurations
# 3 - Information disclosure
# 4 - XSS/Injection
# 5 - Remote file retrieval
# 7 - Denial of Service
# 9 - Server configuration
# 0 - File upload
# Exportar resultados
nikto -h http://target.com -Format csv -o resultados.csv
nikto -h http://target.com -Format html -o resultados.html
O que o Nikto Detecta
- Server misconfigurations (directory listing, server version disclosure)
- Software desatualizado (Apache, PHP, OpenSSL com CVEs conhecidos)
- Arquivos perigosos expostos (
.htaccess,.htpasswd,config.php.bak) - Arquivos default instalados (
test.cgi,phpinfo.php,server-status) - Referências diretas a CVEs
- CMS identificáveis (WordPress, Joomla, Drupal)
WPScan
WPScan é o scanner de referência para WordPress. Enumera plugins, temas, usuários e busca vulnerabilidades conhecidas em cada componente.
Comandos
# Instalação
sudo apt install wpscan
# ou
gem install wpscan
# Scan básico
wpscan --url http://target.com
# Enumerar usuários
wpscan --url http://target.com --enumerate u
# Enumerar plugins
wpscan --url http://target.com --enumerate p
# Enumerar temas
wpscan --url http://target.com --enumerate t
# Enumerar tudo (agressivo — mais barulhento)
wpscan --url http://target.com --enumerate ap,at,u,cb,dbe
# Password attack (com wordlist)
wpscan --url http://target.com \
--password-attack xmlrpc \
--usernames admin \
--passwords /usr/share/wordlists/rockyou.txt
# Com API token (mais vulnerabilidades detectadas)
wpscan --url http://target.com --api-token SEU_TOKEN --enumerate vp
A API token do WPScan é gratuita e dá acesso à base completa de vulnerabilidades. Sem token, a enumeração de plugins vulneráveis é limitada.
O que o WPScan Detecta
- Vulnerabilidades em plugins, temas e core do WordPress (com referências CVE)
- User enumeration via
?author=1, XML-RPC, REST API - Arquivos de backup expostos (
wp-config.php.bak,database.sql) - XML-RPC habilitado (pode permitir brute force)
- Headers de segurança ausentes
- WAF detectado
searchsploit e Exploit-DB
Exploit-DB é o maior repositório público de exploits e PoCs. O searchsploit é a interface CLI que já vem no Kali para consultá-lo localmente.
# Buscar exploits para Apache 2.4
searchsploit apache 2.4
# Resultado típico:
# -----------------------------------------------------------------
# Exploit Title | Path
# -----------------------------------------------------------------
# Apache 2.4.7 - Denial of Service | linux/dos/47532.py
# Apache 2.4.17 - Path Traversal | linux/remote/44557.py
# -----------------------------------------------------------------
# Ver o exploit completo
searchsploit -x linux/remote/44557.py
# Copiar para o diretório atual
searchsploit -m linux/remote/44557.py
# Filtrar por plataforma
searchsploit -p windows apache 2.4
# Remover duplicados da busca
searchsploit apache 2.4 | grep -v "Exploit Title"
Por que searchsploit é importante após VA
Quando o Nessus ou OpenVAS encontra uma vulnerabilidade, o próximo passo é verificar se existe um exploit público. O searchsploit permite buscar rapidamente PoCs para validar se o risco é teórico ou prático. Uma vulnerabilidade Critical sem exploit público tem prioridade diferente de uma Medium com PoC funcional.
CVE e CVSS
CVE — Common Vulnerabilities and Exposures
CVE é o sistema padronizado para identificar vulnerabilidades. Formato: CVE-YYYY-NNNNN (ex: CVE-2024-3094 — a vulnerabilidade XZ Utils que tirou o sono de meio mundo).
Todo software com vulnerabilidade conhecida recebe um CVE. É o “CPF” da vulnerabilidade — uma referência universal que permite comunicação entre equipes, vendors e pesquisadores sem ambiguidade.
CVSS — Common Vulnerability Scoring System
CVSS quantifica a gravidade de uma vulnerabilidade em uma escala de 0.0 a 10.0. A versão atual é CVSS v3.1.
Métricas Base
| Métrica | Valores | Peso no Score |
|---|---|---|
| Attack Vector (AV) | Network (N), Adjacent (A), Local (L), Physical (P) | Quão acessível é o ataque |
| Attack Complexity (AC) | Low (L), High (H) | Quão fácil de explorar |
| Privileges Required (PR) | None (N), Low (L), High (H) | Privilégios necessários |
| User Interaction (UI) | None (N), Required (R) | Precisa de ação do usuário? |
| Scope (S) | Unchanged (U), Changed (C) | O exploit afeta além do componente vulnerável? |
| Confidentiality Impact (C) | None (N), Low (L), High (H) | Vazamento de dados |
| Integrity Impact (I) | None (N), Low (L), High (H) | Alteração de dados |
| Availability Impact (A) | None (N), Low (L), High (H) | Indisponibilidade |
Exemplo Prático de Score
Um RCE (Remote Code Execution) acessível via rede, sem autenticação, sem interação do usuário:
AV:N AC:L PR:N UI:N S:C C:H I:H A:H
Score: 10.0 (Critical)
Um XSS refletido que precisa de interação do usuário e tem impacto limitado:
AV:N AC:L PR:N UI:R S:C C:L I:L A:N
Score: 6.1 (Medium)
Priorização
| Severidade | Score | Prazo típico de remediação |
|---|---|---|
| Critical | 9.0 – 10.0 | 24–72 horas |
| High | 7.0 – 8.9 | 1–2 semanas |
| Medium | 4.0 – 6.9 | 1–3 meses |
| Low | 0.1 – 3.9 | Próximo ciclo de patch |
| Info | 0.0 | Geralmente ignorado |
False Positives e Validação
False positives são resultados que a ferramenta reporta como vulnerabilidades, mas na verdade não são. São comuns em qualquer scanner automatizado e precisam ser tratados com seriedade.
Causas típicas de falsos positivos:
- Versão do software detectada incorretamente (banner grabbing impreciso)
- Patch aplicado mas não detectado pela ferramenta
- Configuração que parece vulnerável mas é mitigada por outro controle (WAF, firewall)
- Protocolo bloqueado por IPS mas a porta responde
Como Validar
- Re-scan: Execute o scan novamente para confirmar consistência
- Verificação manual: Teste o PoC específico ou verifique manualmente a versão/configuração
- PoC (Proof of Concept): Execute um exploit não-destrutivo para confirmar a explorabilidade
- Cross-reference: Verifique a mesma vulnerabilidade com outra ferramenta
A diferença crucial: uma vulnerability existe independentemente de ser explorável. Um exploit prova que a vulnerabilidade pode ser efetivamente explorada no contexto daquele alvo. Nem toda vulnerabilidade é explorável. Nem todo exploit funciona em todos os cenários.
Relatório de VA
O relatório é o entregável principal. Se o cliente não entende o relatório, o VA falhou — independentemente da qualidade técnica do trabalho.
Estrutura Recomendada
- Executive Summary — 1-2 páginas para gestão. Panorama geral, top risks, recomendações prioritárias. Sem jargão técnico.
- Methodology — Ferramentas usadas, escopo, datas, limitações.
- Findings — Cada vulnerabilidade documentada com:
- Vulnerability: Nome e ID (CVE)
- Severity: CVSS score + classificação
- Description: O que é e como funciona
- Impact: O que pode acontecer se explorado
- Recommendation: Como corrigir
- Evidence: Screenshots, outputs de ferramentas, PoC
- Risk Matrix — Visualização cruzando probabilidade × impacto
- Métricas — Total de vulnerabilidades, breakdown por severidade, hosts afetados, compliance mapping
Exemplo de Relatório Simplificado
RELATÓRIO DE ANÁLISE DE VULNERABILIDADES
Cliente: ACME Corp | Data: 10/05/2026 | Escopo: 192.168.1.0/24
Resumo Executivo
Foram identificadas 47 vulnerabilidades em 12 hosts. Destas, 3 são Críticas, incluindo RCE no servidor web (CVE-2024-1234). Recomenda-se ação imediata nos itens Críticos e High.
Métricas
| Critical: 3 | High: 8 | Medium: 19 | Low: 12 | Info: 5 |
Finding #1 — Remote Code Execution no Apache (CRITICAL)
| CVE | CVE-2024-1234 |
| CVSS | 9.8 (Critical) |
| Host | 192.168.1.10:80 |
| Descrição | Path traversal + RCE no Apache 2.4.49 com mod_cgi habilitado. Permite execução de comandos remotos sem autenticação. |
| Impacto | Tomada completa do servidor. Exfiltração de dados, movimentação lateral, ransomware. |
| Remediação | Atualizar Apache para 2.4.51+. Desabilitar mod_cgi se não necessário. Aplicar WAF como proteção temporária. |
Tabela Comparativa de Ferramentas de VA
| Ferramenta | Tipo | Grátis/Pago | Melhor para |
|---|---|---|---|
| Nessus Essentials | Scanner geral | Grátis (16 IPs) | VA de redes pequenas, uso pessoal/estudo |
| Nessus Pro/Expert | Scanner geral | Pago | VA corporativo, compliance, API integration |
| OpenVAS (GVM) | Scanner geral | Open source | Alternativa gratuita ao Nessus, labs, automação |
| Nikto | Web scanner | Open source | Primeira varredura em servidores web, detecção rápida |
| WPScan | WordPress scanner | Grátis + API | WordPress enumeration e vuln detection |
| Burp Suite | Web proxy/scanner | Community + Pro | Testes manuais e automatizados em aplicações web |
| OpenSCAP | Compliance scanner | Open source | Hardening validation, compliance (CIS, STIG) |
| Nuclei | Template scanner | Open source | Scans velozes com templates de comunidade |
| searchsploit | Exploit search | Open source | Pesquisar PoCs e exploits para vulns encontradas |
Hands-on: VA de um Alvo
Vamos fazer um walkthrough completo usando o Metasploitable 2 como alvo — uma VM intencionalmente vulnerável feita para treinamento.
Passo 1: Discovery
# Descobrir hosts ativos
nmap -sn 192.168.1.0/24
# Resultado: Metasploitable está em 192.168.1.105
Passo 2: Port Scan + Service Detection
# Scan completo
nmap -sV -sC -A 192.168.1.105 -p- -oA metasploitable_scan
# Resultados relevantes:
# 21/tcp ftp vsftpd 2.3.4
# 22/tcp ssh OpenSSH 4.7p1
# 80/tcp http Apache 2.2.8
# 139/445/tcp smb Samba 3.0.20
# 3306/tcp mysql MySQL 5.0.51a
Passo 3: Nessus Scan
# No Nessus (https://localhost:8834):
# New Scan → Basic Network Scan
# Target: 192.168.1.105
# Executar e aguardar
# Resultados esperados:
# - CVE-2011-2523: vsftpd 2.3.4 backdoor (CRITICAL)
# - Múltiplas vulns no Apache 2.2.8
# - SMB configurado sem autenticação
# - MySQL com root sem senha
# - Módulos CGI vulneráveis no Apache
Passo 4: Nikto Scan
nikto -h http://192.168.1.105 -o nikto_metasploitable.html -Format htm
# Resultados esperados:
# + OSVDB-3092: /phpmyadmin/ - phpMyAdmin encontrado
# + OSVDB-3268: /icons/README - Apache directory listing
# + /cgi-bin/ - CGI scripts acessíveis
# + Server: Apache/2.2.8 (Ubuntu) DAV/2
# + Multiple CGI scripts with potential vulnerabilities
Passo 5: Buscar Exploits
# Buscar exploits para vsftpd 2.3.4
searchsploit vsftpd 2.3.4
# Resultado:
# vsftpd 2.3.4 - Backdoor Command Execution | linux/remote/17491.c
# Ver o exploit
searchsploit -x linux/remote/17491.c
# Copiar para uso
searchsploit -m linux/remote/17491.c
# Buscar exploits para o Apache
searchsploit apache 2.2.8
# Buscar exploits para Samba
searchsploit samba 3.0.20
# Resultado:
# Samba 3.0.20 - Username Map Script | linux/remote/16320.rb
Interpretação dos Resultados
O Metasploitable 2 é um laboratório com dezenas de vulnerabilidades. Em um cenário real, os passos seriam:
- Classificar cada vulnerabilidade por CVSS
- Verificar quais têm exploits públicos (searchsploit)
- Validar os falsos positivos
- Documentar no relatório com priorização
- Apresentar recomendações específicas para cada finding
Contra-medidas
VA sem remediação é exercício acadêmico. Aqui estão as contra-medidas fundamentais:
- Patch Management: Processo sistemático de aplicar atualizações de segurança. Automatize com WSUS (Windows), unattended-upgrades (Debian/Ubuntu), ou ferramentas como Ansible. SLA: Críticos em 48h, High em 1 semana, Medium em 30 dias.
- Configuration Hardening: Desabilitar serviços desnecessários, aplicar CIS Benchmarks, remover arquivos default, configurar headers de segurança. Ferramentas: OpenSCAP, Lynis, ansible-lockdown.
- Network Segmentation: Segmentar redes para limitar o impacto de uma eventual exploração. VLANs, firewall rules, zero trust architecture.
- WAF (Web Application Firewall): Proteger aplicações web contra exploits conhecidos. ModSecurity, Cloudflare, AWS WAF. Não substitui correção, mas adiciona camada de defesa.
- VA Scans Regulares: Não faça VA só uma vez. Scans semanais em ambientes críticos, mensais em ambientes padrão. Compare resultados entre scans para medir progresso.
- Vulnerability Disclosure Programs: Permitir que pesquisadores de segurança reportem vulnerabilidades legitimamente. Programas como HackerOne, Bugcrowd, ou programas próprios.
Próximo Artigo
Até aqui cobrimos as fases técnicas do hacking ético: reconhecimento, enumeração, varredura e análise de vulnerabilidades. Mas o elo mais fraco de qualquer sistema de segurança nunca é tecnológico — é humano.
No Artigo 10, vamos mergulhar em Engenharia Social: phishing, pretexting, baiting, tailgating, quid pro quo. Vamos entender por que técnicas de manipulação psicológica são mais eficazes que qualquer exploit técnico, como reconhecer ataques de engenharia social, e como construir programas de security awareness que realmente funcionam.
O atacante mais perigoso não é quem explora um buffer overflow — é quem convence você a dar a senha voluntariamente.