ECSS - Modulo 15
OpenVAS no Ubuntu para scan do Windows Server e Windows 11
O aluno vai instalar o Greenbone Vulnerability Manager, conhecido historicamente como OpenVAS, no Ubuntu Server e executar uma varredura autorizada contra as maquinas Windows do proprio student.
Resumo
- Duracao
- 120 a 180 min
- Scanner
- Ubuntu
10.50.X.12 - Alvos
- WS vulneravel
.10e W11 comparativo.11 - Interface
- GSA via tunnel SSH
- Porta local
9443
Limite obrigatorio
Execute o OpenVAS somente contra 10.50.X.10 e 10.50.X.11 do seu student.
Nao escaneie IP publico, internet, Guacamole, o portal, outro student ou ranges inteiros. Este lab usa
varredura controlada, sem brute force e sem DoS.
Objetivos
- Instalar Docker e subir os containers oficiais do Greenbone Community Edition.
- Validar containers, feeds e interface Greenbone Security Assistant.
- Preparar uma vulnerabilidade controlada de SMBv1 no Windows Server.
- Acessar a interface por tunnel SSH seguro.
- Criar targets para Windows Server e Windows 11.
- Executar scan controlado, confirmar achado no Windows Server, exportar relatorio e priorizar remediacao.
1. Preparar variaveis no Ubuntu
Acesse o Ubuntu Server do seu student pelo Guacamole e ajuste o numero do aluno.
STUDENT_NUMBER=1
PREFIX="10.50.${STUDENT_NUMBER}"
WS_IP="${PREFIX}.10"
W11_IP="${PREFIX}.11"
EVIDENCE="$HOME/ecss-m15-openvas"
mkdir -p "$EVIDENCE"
printf "Student: student%02d\nWindows Server: %s\nWindows 11: %s\n" "$STUDENT_NUMBER" "$WS_IP" "$W11_IP" | tee "$EVIDENCE/00-targets.txt"
hostname -I | tee "$EVIDENCE/01-ubuntu-ip.txt"
free -h | tee "$EVIDENCE/02-memory.txt"
df -h / | tee "$EVIDENCE/03-disk.txt"
Resultado esperado: Ubuntu com IP 10.50.X.12, memoria suficiente e pelo menos 40 GB livres.
2. Validar conectividade com Windows Server e Windows 11
Antes de instalar o scanner, confirme que o Ubuntu consegue chegar aos alvos.
sudo apt update
sudo apt -y install nmap
nmap -Pn -p 135,139,445,3389,5985,5986 "$WS_IP" "$W11_IP" -oN "$EVIDENCE/04-windows-baseline-nmap.txt"
cat "$EVIDENCE/04-windows-baseline-nmap.txt"
Resultado esperado: ao menos RDP 3389/tcp deve aparecer como aberto quando os hosts Windows
estiverem ligados. SMB 445/tcp tambem pode aparecer.
3. Preparar vulnerabilidade controlada no Windows Server
No Windows Server 10.50.X.10, habilite SMBv1 e desative a exigencia de assinatura SMB
somente para este laboratorio. O Windows 11 fica sem essa mudanca para servir como comparacao.
# Executar no Windows Server como Administrador
$StudentNumber = 1
$Evidence = "C:\ECSS-M15-SMBV1"
New-Item -ItemType Directory -Path $Evidence -Force
Start-Transcript -Path "$Evidence\m15-smbv1-enable.txt" -Force
"OpenVAS SMBv1 lab" | Set-Content "$Evidence\readme.txt"
New-SmbShare -Name ECSS-M15-SMBV1 -Path $Evidence -ReadAccess Everyone -ErrorAction SilentlyContinue
Set-NetFirewallRule -DisplayGroup "File and Printer Sharing" -Enabled True
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -All -NoRestart
Set-SmbServerConfiguration `
-EnableSMB1Protocol $true `
-RequireSecuritySignature $false `
-EnableSecuritySignature $false `
-Force
Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol, RequireSecuritySignature, EnableSecuritySignature
Stop-Transcript
Restart-Computer
4. Confirmar SMBv1 a partir do Ubuntu
Depois que o Windows Server reiniciar, valide que a superficie vulneravel ficou visivel para o scanner.
nmap -Pn -p445 --script smb-protocols,smb-security-mode "$WS_IP" -oN "$EVIDENCE/04b-windows-server-smbv1-check.txt"
cat "$EVIDENCE/04b-windows-server-smbv1-check.txt"
Resultado esperado: o script smb-protocols deve indicar suporte a SMBv1 ou dialetos antigos
no Windows Server. Se a porta 445/tcp estiver fechada ou filtrada, confira o firewall do Windows.
5. Instalar Docker no Ubuntu
O Greenbone Community Edition sera executado por containers oficiais, com GSA, gvmd, OpenVAS e feeds.
sudo apt update
sudo apt -y install ca-certificates curl gnupg nmap
if ! command -v docker >/dev/null 2>&1; then
curl -fsSL https://get.docker.com | sudo sh
fi
sudo systemctl enable --now docker
sudo docker --version | tee "$EVIDENCE/05-docker-version.txt"
sudo docker compose version | tee "$EVIDENCE/06-docker-compose-version.txt"
6. Baixar e iniciar os containers Greenbone
Baixe o compose oficial e inicie os servicos em segundo plano.
export DOWNLOAD_DIR="$HOME/greenbone-community-container"
mkdir -p "$DOWNLOAD_DIR"
curl -f -O -L https://greenbone.github.io/docs/latest/_static/compose.yaml --output-dir "$DOWNLOAD_DIR"
cd "$DOWNLOAD_DIR"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" pull
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" up -d
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps | tee "$EVIDENCE/07-greenbone-compose-ps.txt"
Resultado esperado: containers como gvmd, ospd-openvas, gsa,
gsad, nginx e containers de feed aparecem como criados ou em execucao.
7. Definir senha do admin do Greenbone
O ambiente cria admin/admin por padrao. Troque a senha antes de usar.
Na primeira execucao, aguarde os containers de feeds ficarem healthy e o
gvmd concluir a importacao inicial. Se o comando de senha parecer travado, cancele com
Ctrl+C, espere alguns minutos e confira os logs antes de tentar novamente.
GVM_PASSWORD="EcssOpenVAS-${STUDENT_NUMBER}!"
export DOWNLOAD_DIR="$HOME/greenbone-community-container"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs --tail 80 gvmd
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" \
exec -T -u gvmd gvmd gvmd --user=admin --new-password="$GVM_PASSWORD"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps | tee "$EVIDENCE/08-greenbone-compose-ps-after-password.txt"
echo "Usuario: admin" | tee "$EVIDENCE/10-gvm-login.txt"
echo "Senha: $GVM_PASSWORD" | tee -a "$EVIDENCE/10-gvm-login.txt"
8. Validar feeds e scan configs
A interface pode abrir antes de todos os objetos de scan estarem importados. Nao crie a task enquanto
get_configs ainda retornar 0.
export DOWNLOAD_DIR="$HOME/greenbone-community-container"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" run --rm --no-deps gvm-tools \
gvm-cli --gmp-username admin --gmp-password "$GVM_PASSWORD" \
socket --xml '<get_configs rows="10"/>' --pretty | tee "$EVIDENCE/09-gvm-scan-configs.xml"
grep -E '<config id=|<name>|<config_count>' "$EVIDENCE/09-gvm-scan-configs.xml"
Resultado esperado: pelo menos uma scan config disponivel. Se aparecer
<config_count>0, aguarde o feed terminar e acompanhe com
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs -f gvmd data-objects scap-data.
9. Abrir a interface por tunnel SSH
No Windows Server ou Windows 11 do mesmo student, abra PowerShell e crie o tunnel para o Ubuntu.
$StudentNumber = 1
$UbuntuIp = "10.50.$StudentNumber.12"
ssh -L 9443:127.0.0.1:443 labjoin@$UbuntuIp
Com o tunnel aberto, no navegador do Windows acesse:
https://127.0.0.1:9443
O compose publica a interface HTTPS apenas no localhost do Ubuntu. Por isso usamos o tunnel SSH e
evitamos expor o Greenbone para a rede. Aceite o certificado do laboratorio e entre com admin.
10. Criar os targets Windows
- No Greenbone, abra Configuration e depois Targets.
- Clique em New Target.
- Nome:
ECSS-M15 SMBv1 Windows Targets. - Hosts:
10.50.X.10, 10.50.X.11. - Alive Test: escolha Consider Alive se ICMP estiver bloqueado.
- Port List: use All TCP and Nmap top 100 UDP.
- Credentials: deixe vazio para um scan nao autenticado neste primeiro exercicio.
11. Criar e executar a tarefa de scan
- Abra Scans e depois Tasks.
- Clique em New Task.
- Nome:
ECSS-M15 SMBv1 WS and W11 Scan. - Scan Targets: selecione
ECSS-M15 SMBv1 Windows Targets. - Scan Config: use Full and fast.
- Clique no botao de start e acompanhe o progresso.
Resultado esperado: o Windows Server deve gerar achado relacionado a SMBv1, assinatura SMB nao exigida ou fraqueza de configuracao SMB. O Windows 11 pode aparecer com menos achados, funcionando como comparacao.
Se o scan ficar em 0% ou falhar logo no inicio, volte ao terminal Ubuntu e rode
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs --tail 80 gvmd ospd-openvas.
12. Validar resultados por terminal
Enquanto o OpenVAS roda, mantenha uma evidencia simples de portas vistas a partir do Ubuntu.
nmap -Pn -sV -p 135,139,445,3389,5985,5986 "$WS_IP" "$W11_IP" -oN "$EVIDENCE/11-windows-services-nmap.txt"
grep -E "Nmap scan report|open|closed|filtered" "$EVIDENCE/11-windows-services-nmap.txt" | tee "$EVIDENCE/12-service-summary.txt"
Essa evidencia nao substitui o OpenVAS, mas ajuda a provar que os alvos estavam acessiveis durante o lab.
13. Exportar e interpretar o relatorio
- Ao terminar o scan, abra o relatorio na propria task.
- Filtre por severidade High, Medium e Low.
- Exporte o relatorio em PDF, HTML ou CSV.
- Anote para cada host: servico afetado, severidade, evidencia e recomendacao.
| Campo | O que registrar |
|---|---|
| Host | 10.50.X.10 ou 10.50.X.11 |
| Servico | Porta e protocolo relacionados ao achado |
| Severidade | CVSS ou classificacao exibida pelo Greenbone |
| Recomendacao | Patch, hardening, firewall, desativar servico ou investigar falso positivo |
Troubleshooting rapido
# Ubuntu: servicos e porta local
export DOWNLOAD_DIR="$HOME/greenbone-community-container"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" ps
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" logs --tail 80 gvmd ospd-openvas nginx
sudo ss -tulpn | grep -E '9392|443'
curl -k -I https://127.0.0.1
# Ubuntu: conectividade com Windows
nmap -Pn -p 3389,445 "$WS_IP" "$W11_IP"
# Windows: tunnel SSH
ssh -V
Test-NetConnection 10.50.X.12 -Port 22
Test-NetConnection 127.0.0.1 -Port 9443
Evidencias para entregar
04-windows-baseline-nmap.txtmostrando os alvos Windows acessiveis.04b-windows-server-smbv1-check.txtmostrando SMBv1 visivel no Windows Server.07-greenbone-compose-ps.txtou print dos containers Greenbone em execucao.09-gvm-scan-configs.xmlmostrando scan configs carregadas.- Print da interface Greenbone em
https://127.0.0.1:9443. - Print da task
ECSS-M15 SMBv1 WS and W11 Scanconcluida. - Relatorio exportado do Greenbone ou CSV dos principais achados.
- Print ou transcript
C:\ECSS-M15-SMBV1\m15-smbv1-enable.txtdo Windows Server. - Resposta curta: quais achados voce priorizaria e por que?
Limpeza opcional
Execute a reversao do Windows Server ao final do lab e remova o scanner do Ubuntu somente se o instrutor pedir.
# Windows Server: reverter SMBv1 e assinatura SMB
Set-SmbServerConfiguration `
-EnableSMB1Protocol $false `
-RequireSecuritySignature $true `
-EnableSecuritySignature $true `
-Force
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart
Remove-SmbShare -Name ECSS-M15-SMBV1 -Force -ErrorAction SilentlyContinue
Remove-Item C:\ECSS-M15-SMBV1 -Recurse -Force -ErrorAction SilentlyContinue
Restart-Computer
# Ubuntu: remover containers do Greenbone, se solicitado
export DOWNLOAD_DIR="$HOME/greenbone-community-container"
sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" down
# Remover tambem os dados persistentes, somente com autorizacao do instrutor:
# sudo docker compose -f "$DOWNLOAD_DIR/compose.yaml" down -v