---
name: web_vulnerability_scan
phase: 3_vulnerability_analysis
tools: [nuclei, nikto]
dependencies: [web_service_identified]
mitre_tactic: TA0043 (Reconnaissance), TA0001 (Initial Access)
---

# Objetivo
Executar varredura automatizada de vulnerabilidades web utilizando templates atualizados, identificando falhas como XSS, SQLi, SSRF, LFI, RCE, misconfigurations e CVEs específicas de tecnologias web.

# Condições de Execução
- O alvo possui serviço web acessível (HTTP/HTTPS).
- A URL base e as tecnologias foram identificadas.

# Comandos e Sintaxe

## 1. Nuclei (Varredura com Templates)
```bash
nuclei -u https://{target_url} -severity critical,high,medium -o {workspace}/nuclei_results.txt -stats
```

## 2. Nuclei com Templates Específicos (se tecnologia conhecida)
```bash
nuclei -u https://{target_url} -tags cve,rce,sqli,xss,ssrf,lfi -o {workspace}/nuclei_specific.txt -stats
```

## 3. Nuclei em Múltiplos Subdomínios
```bash
if [ -f {workspace}/alive_subdomains.txt ]; then
  cat {workspace}/alive_subdomains.txt | awk '{print $1}' | nuclei -severity critical,high -o {workspace}/nuclei_mass.txt -stats -c 30
fi
```

## 4. Nikto (Varredura Clássica)
```bash
nikto -h https://{target_url} -output {workspace}/nikto_results.txt -Format txt
```

# Análise de Resultados
- **Severidade Critical/High no Nuclei:** Priorize estes achados. Verifique se são exploráveis manualmente.
- **RCE (Remote Code Execution):** Vetor de entrada direto. Acione a skill de exploração correspondente.
- **SQLi detectado:** Acione a skill `sql_injection_exploitation` com o endpoint vulnerável.
- **XSS detectado:** Registre no relatório. Se for Stored XSS, pode ser usado para roubo de sessão.
- **SSRF detectado:** Pode ser usado para acessar serviços internos. Acione a skill `ssrf_exploitation`.
- **Nikto findings:** Geralmente são informativos (headers ausentes, versões expostas). Registre no relatório.

# Próximos Passos
- Para cada vulnerabilidade crítica/alta, acione a skill de exploração correspondente.
- Registre todos os achados no Knowledge Graph com severidade e endpoint.

# Tratamento de Erros
- Se `nuclei` não estiver instalado: `go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest`.
- Se os templates estiverem desatualizados: `nuclei -ut` para atualizar.
- Se o WAF bloquear o Nuclei, use rate-limiting: `-rl 10 -c 5`.
- Se o Nikto travar, adicione timeout: `-timeout 10`.
