Tutorial: Proteção contra WannaCry no Windows (Script PowerShell)
Proteção Contra WannaCry:
Guia Completo com Script PowerShell

Guia Completo – Proteção e Remoção do Ransomware WannaCry no Windows
O
WannaCry é um ransomware que explora vulnerabilidades do
SMBv1 no Windows para criptografar arquivos e exigir resgate em Bitcoin.
Este guia traz scripts e configurações para
prevenir e
remover a ameaça.
1. Prevenção Automática com Script PowerShell
Objetivo:
Desativar SMBv1, bloquear a porta 445 e garantir que o sistema esteja atualizado.
Passos para criar o script:
- Abra o Bloco de Notas como Administrador.
- Cole o código abaixo.
- Salve como
ProtecaoWannaCry.ps1
.
<#
.SYNOPSIS
Proteção contra WannaCry – Verifica SMBv1, porta 445 e atualizações.
.DESCRIPTION
Desativa SMBv1 se ativo.
Bloqueia porta 445 no firewall.
Verifica atualizações críticas.
#>
Write-Host "=== PROTEÇÃO CONTRA WANNACRY ==="
#Verificar e desativar SMBv1
$smbv1 = Get-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"
if ($smbv1.State -eq "Enabled") {
Write-Host "[ALERTA] SMBv1 está ativo (vulnerável)."
$resposta = Read-Host "Deseja desativar SMBv1? (S/N)"
if ($resposta -eq "S") {
Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol" -NoRestart
Write-Host "SMBv1 desativado. Reinicie o computador."
}
} else {
Write-Host "[OK] SMBv1 já está desativado."
}
#Bloquear porta 445
$porta445 = Get-NetTCPConnection -LocalPort 445 -ErrorAction SilentlyContinue
if ($porta445) {
Write-Host "[ALERTA] Porta 445 aberta."
$resposta = Read-Host "Deseja bloquear no firewall? (S/N)"
if ($resposta -eq "S") {
New-NetFirewallRule -DisplayName "Bloquear_SMB_Porta_445" -Direction Inbound -LocalPort 445 -Protocol TCP -Action Block
Write-Host "Porta 445 bloqueada no firewall."
}
} else {
Write-Host "[OK] Porta 445 não está em uso."
}
#Verificar atualizações pendentes (requer módulo PSWindowsUpdate)
if (Get-Module -ListAvailable -Name PSWindowsUpdate) {
$updates = Get-WindowsUpdate -MicrosoftUpdate -NotCategory "Drivers"
if ($updates.Count -gt 0) {
Write-Host "[ALERTA] Há $($updates.Count) atualizações pendentes."
$resposta = Read-Host "Deseja instalar agora? (S/N)"
if ($resposta -eq "S") {
Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot
}
} else {
Write-Host "[OK] Sistema atualizado."
}
} else {
Write-Host "O módulo PSWindowsUpdate não está instalado. Instale para verificar atualizações."
}
Write-Host "=== FIM DA VERIFICAÇÃO ==="
Como executar:
Set-ExecutionPolicy RemoteSigned -Force
.\ProtecaoWannaCry.ps1
(Executar o PowerShell como Administrador)
2. Medidas Manuais de Segurança
Desativar SMBv1:
Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol" -NoRestart
Bloquear porta 445 no firewall:
New-NetFirewallRule -DisplayName "Bloquear_SMB_445" -Direction Inbound -LocalPort 445 -Protocol TCP -Action Block
Verificar e instalar patch MS17-010:
-
Get-HotFix -Id "KB4012212","KB4012215","KB4012606"
- Ativar proteção anti-ransomware (Windows Defender):
-
Set-MpPreference -EnableControlledFolderAccess Enabled
- Automatizar backups:
-
robocopy "C:\Dados" "E:\Backup" /MIR /Z /R:3 /W:5 /LOG:"C:\backup_log.txt"
3. Script de Remoção do WannaCry
Objetivo:
Encerrar processos maliciosos, excluir arquivos e tarefas do ransomware e aplicar proteções.
Criação:
- Abra o Bloco de Notas.
- Cole o código abaixo.
- Salve como
RemoveWannaCry.ps1
.
<#
.SYNOPSIS
Remoção e proteção contra WannaCry.
.DESCRIPTION
1. Finaliza processos maliciosos.
2. Remove arquivos e tarefas agendadas do ransomware.
3. Desativa SMBv1.
4. Verifica atualizações críticas.
#>
# Exigir execução como Administrador
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Host "Erro: Execute este script como Administrador."
exit
}
Write-Host "Iniciando remoção do WannaCry..."
# 1. Finalizar processos maliciosos
$maliciousProcesses = @("mssecsvc.exe", "tasksche.exe", "taskdl.exe", "@WanaDecryptor")
foreach ($process in $maliciousProcesses) {
if (Get-Process -Name $process -ErrorAction SilentlyContinue) {
Stop-Process -Name $process -Force
Write-Host "Processo $process finalizado."
}
}
# 2. Remover arquivos maliciosos
$maliciousFiles = @(
"$env:Windir\mssecsvc.exe",
"$env:Windir\tasksche.exe",
"$env:Windir\taskdl.exe",
"$env:Windir\@WanaDecryptor@",
"$env:Windir\00000000.eky",
"$env:Windir\00000000.pky",
"$env:Windir\00000000.res"
)
foreach ($file in $maliciousFiles) {
if (Test-Path $file) {
Remove-Item $file -Force
Write-Host "Arquivo $file removido."
}
}
# 3. Remover tarefas agendadas maliciosas
$maliciousTasks = @("mssecsvc", "WanaDecryptor")
foreach ($task in $maliciousTasks) {
if (Get-ScheduledTask -TaskName $task -ErrorAction SilentlyContinue) {
Unregister-ScheduledTask -TaskName $task -Confirm:$false
Write-Host "Tarefa $task removida."
}
}
# 4. Desabilitar SMBv1
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol -NoRestart
# 5. Verificar atualizações de segurança
$importantKB = @("KB4012212", "KB4012215", "KB4012606", "KB4013198", "KB4013429")
$installedUpdates = Get-HotFix | Select-Object -ExpandProperty HotFixID
foreach ($kb in $importantKB) {
if ($installedUpdates -notcontains $kb) {
Write-Host "Atualização $kb não instalada. Instale as atualizações de segurança."
}
}
Write-Host "Remoção concluída. Reinicie o sistema."
Execução:
Set-ExecutionPolicy RemoteSigned -Force
.\RemoveWannaCry.ps1
(Executar como Administrador)
4. Sinais de Infecção
- Arquivos renomeados com extensões
.wncry
,.wcry
,.locked
. - Mensagem de resgate exigindo pagamento em Bitcoin.
- Queda brusca no desempenho do sistema.
- Aplicativo “WanaDecryptor” exibido na tela.