Aviso
Este artigo da Base de Dados de Conhecimento é fornecido tal como está e não substitui dados de substituição que sejam fornecidos através dos canais de atualização normais. Poderá encontrar informações de substituição posteriores aos dados seguintes no Guia de Atualizações de Segurança e noutras ferramentas colaterais.
Resumo
Veja os produtos aos quais este artigo se aplica.
A atualização de segurança MS17-010 resolve várias vulnerabilidades existentes no protocolo SMB (Server Message Block) v1 do Windows. O ransomware WannaCrypt está a explorar uma das vulnerabilidades resolvidas pela atualização MS17-010. Os computadores que não têm a atualização MS17-010 instalada estão em risco acrescido, devido às várias estirpes de malware existentes. Este artigo fornece vários métodos rápidos para detetar se o computador está atualizado.
Método 1: Verificar através do número da Base de Dados de Conhecimento
Utilize a tabela seguinte para procurar qualquer uma das atualizações listadas (exceto as assinaladas como "Não contém a correção MS17-010"). Se qualquer um destes estiver instalado, a atualização MS17-010 está instalada.
Tabela 1 de 2: Windows 7 SP1 e posterior. Os BDCs de rollup seguintes contêm a correção (exceto os indicados na coluna "4B Atualização Apenas de Segurança de abril"). Por baixo de cada número KB encontra-se o número da versão do ficheiro Srv.sys atualizado.
Versões do Windows |
Atualização Apenas de Segurança de Março (14/03/17) |
Rollup Mensal de março (14/03/17) |
Pré-visualização de março do Rollup Mensal (21/03/17) |
Atualização Apenas de Segurança de abril (11/04/17) |
Rollup Mensal de abril (11/04/17) |
Pré-visualização de abril do Rollup Mensal (18/04/17) |
Atualização Apenas de Segurança de maio (09/05/17) |
Rollup Mensal de maio (09/05/17) |
Ligação de transferência |
Windows 7 SP1 e Windows Server 2008 R2 SP1 |
4012212 6.1.7601.23689 |
4012215 6.1.7601.23689 |
4012218 6.1.7601.23689 |
4015546 Não contém a correção MS17-010 |
4015549 6.1.7601.23689 |
4015552 6.1.7601.23689 |
4019263 6.1.7601.23762 |
4019264 6.1.7601.23762 |
|
Windows 2012 |
4012214 6.2.9200.22099 |
4012217 6.2.9200.22099 |
4012220 6.2.9200.22099 |
4015548 Não contém a correção MS17-010 |
4015551 6.2.9200.22099 |
4015554 6.2.9200.22099 |
4019214 6.2.9200.22137 |
4019216 6.2.9200.22137 |
|
Windows 8.1 e Windows Server 2012 R2 |
4012213 6.3.9600.18604 |
4012216 6.3.9600.18604 |
4012219 6.3.9600.18604 |
4015547 Não contém a correção MS17-010 |
4015550 6.3.9600.18604 |
4015553 6.3.9600.18619 |
4019213 6.3.9600.18655 |
4019215 6.3.9600.18655 |
|
Windows 10 Versão 1507 |
4012606 10.0.10240.17319 |
4016637 10.0.10240.17319 |
- |
- |
4015221 10.0.10240.17319 |
- |
- |
4019474 10.0.10240.17394 |
|
Windows 10 Versão 1511 |
4013198 10.0.10586.839 |
4016636 10.0.10586.839 |
- |
- |
4015219 10.0.10586.839 |
- |
- |
4019473 10.0.10586.916 |
|
Windows 10 e Windows Server 2016 |
4013429 10.0.14393.953 |
4016635 10.0.14393.953 |
- |
- |
4015217 10.0.14393.953 |
- |
- |
4019472 10.0.14393.1198 |
Tabela 2 de 2: Continuação para as atualizações de maio e junho de 2017.
Versões do Windows |
Pré-visualização de maio do Rollup Mensal (16/05/17) |
Atualização Apenas de Segurança de junho (13/06/17) |
Rollup Mensal de junho (13/06/17) |
Ligação de transferência |
Windows 7 e Server 2008 R2 |
4019265 6.1.7601.23762
|
4022722 |
4022168 6.1.7601.23762 |
|
Windows Server 2012 |
4019218 6.2.9200.22137 |
4022718 |
4022724 6.2.9200.22137 |
|
Windows 8.1 e Windows Server 2012 R2 |
4019217 6.3.9600.18655 |
4022717 |
4022720 6.3.9600.18688 |
|
Windows 10 Versão 1507 |
- |
- |
4032695 |
|
Windows 10 Versão 1511 |
- |
- |
4032693 |
|
Windows 10 Versão 1607 e Windows Server 2016 |
- |
- |
4022723 10.0.14393.1198 |
Tabela 2: Outras versões do Windows. Utilize o BDC 4012598 para obter a atualização de segurança.
Versões do Windows |
Número BDC e versão atualizada do ficheiro Srv.sys |
Ligação de transferência |
Windows Server 2003 SP2 |
4012598 5.2.3790.6021 |
|
Windows XP |
4012598 5.1.2600.7208 |
Windows XP SP2 x64 Windows XP SP3 x86 Windows XP Embedded SP3 x86 |
Windows Vista SP2 |
4012598 GDR: 6.0.6002.19743 LDR: 6.0.6002.24067 |
Windows Vista Service Pack 2 Windows Vista x64 Edition Service Pack 2 |
Windows Server 2008 SP2 |
4012598 GDR: 6.0.6002.19743 LDR: 6.0.6002.24067 |
Windows Server 2008 para sistemas de 32 bits Service Pack 2 Windows Server 2008 para Sistemas baseados em x64 Service Pack 2 Windows Server 2008 para sistemas baseados em Itanium Service Pack 2 |
Windows 8 |
4012598 6.2.9200.22099 |
Tabela 3: Atualizações adicionais que contêm a correção.
Windows 8.1 e Windows Server 2012 R2
Data de lançamento |
Número BDC |
Página de suporte |
21 de março de 2017 |
4012219 |
21 de Março de 2017 - KB4012218 (Pré-visualização do Rollup Mensal) |
18 de abril de 2017 |
4015553 |
18 de Abril de 2017 - KB4015553 (Pré-visualização do Rollup Mensal) |
16 de maio de 2017 |
4019217 |
16 de Maio de 2017 - KB4019217 (Pré-visualização do Rollup Mensal) |
27 de junho de 2017 |
4022720 |
27 de Junho de 2017 - KB4022720 (Pré-visualização do Rollup Mensal) |
Windows Server 2012
Data de lançamento |
Número BDC |
Página de suporte |
21 de março de 2017 |
4012220 |
21 de Março de 2017 - KB4012220 (Pré-visualização do Rollup Mensal) |
18 de abril de 2017 |
4015554 |
18 de Abril de 2017 - KB4015554 (Pré-visualização do Rollup Mensal) |
16 de maio de 2017 |
4019218 |
16 de Maio de 2017 - KB4019218 (Pré-visualização do Rollup Mensal) |
27 de junho de 2017 |
4022721 |
27 de Junho de 2017 - KB4022721 (Pré-visualização do Rollup Mensal) |
Windows 7 SP1 e Windows Server 2008 R2 SP1
Data de lançamento |
Número BDC |
Página de suporte |
21 de março de 2017 |
4012218 |
21 de Março de 2017 - KB4012218 (Pré-visualização do Rollup Mensal) |
18 de abril de 2017 |
4015552 |
18 de Abril de 2017 - KB4015552 (Pré-visualização do Rollup Mensal) |
16 de maio de 2017 |
4019265 |
16 de Maio de 2017 - KB4019265 (Pré-visualização do Rollup Mensal) |
27 de junho de 2017 |
4022168 |
27 de Junho de 2017 - KB4022168 (Pré-visualização do Rollup Mensal) |
Método 2: Verificar a versão do ficheiro %systemroot%\system32\drivers\srv.sys
Utilize a tabela seguinte para verificar a versão do ficheiro %systemroot%\system32\drivers\srv.sys. Se a versão do ficheiro for maior ou igual à listada, a atualização MS17-010 está instalada.
Versões do Windows |
Versão atualizada mínima do ficheiro Srv.sys |
Windows XP |
5.1.2600.7208 |
Windows Server 2003 SP2 |
5.2.3790.6021 |
Windows Vista Windows Server 2008 SP2 |
GDR:6.0.6002.19743, LDR:6.0.6002.24067 |
Windows 7 Windows Server 2008 R2 |
6.1.7601.23689 |
Windows 8 Windows Server 2012 |
6.2.9200.22099 |
Windows 8.1 Windows Server 2012 R2 |
6.3.9600.18604 |
Windows 10 TH1 v1507 |
10.0.10240.17319 |
Windows 10 TH2 v1511 |
10.0.10586.839 |
Windows 10 RS1 v1607 Windows Server 2016 |
10.0.14393.953 |
Método 3: Verificar através da WMI e do Windows PowerShell
Utilize a WMI e o Windows PowerShell para determinar se a correção MS17-010 foi instalada.
Comando da WMI Para encontrar um número BDC especificado, abra uma janela de Linha de Comandos elevada e, em seguida, execute o comando seguinte:
wmic qfe get hotfixid | find "KB1234567"
Notas
-
Neste comando, substitua <KB1234567> pelo número BDC real.
-
Utilize um caráter de "e" comercial (&) para procurar várias atualizações. Por exemplo, utilize o comando seguinte:
wmic qfe get hotfixid | find "KB4012212" & wmic qfe get hotfixid | find "KB4012215" & wmic qfe get hotfixid | find "KB4015549"
Comandos do PowerShell
Para verificar o sistema local, execute o cmdlet administrativo do PowerShell seguinte:
get-hotfix -id KB1234567
Notas
-
Neste comando, substitua <KB1234567> pelo número BDC real.
-
Utilize uma vírgula (,) para procurar várias atualizações. Por exemplo, utilize o comando seguinte:
get-hotfix -id KB4012212,KB4012215,KB4015549
Para verificar todos os computadores num domínio do Active Directory ou do OU, execute o cmdlet Administrativo do PowerShell seguinte num controlador de domínio:
foreach ( $n in (get-adcomputer -searchbase ‘OU=workstations,dc=contoso,dc=com’ -filter * -property * | select name )) {get-hotfix -computername $n.name -id KB1234567}
Nota A parte "OU=workstations,dc=contoso,dc=com" pode ser alterada para apontar para a raiz da partição de diretórios de um domínio do Active Directory, como "dc=contoso,dc=com", para verificar os computadores existentes em todo o domínio. Neste comando, substitua <KB1234567> pelo número BDC real.
Como resolver o erro "não aplicável" da instalação
Se as correções pré-requeridas não estiverem instaladas nos computadores, poderá receber a seguinte mensagem de erro quando instalar a atualização MS17-010 no Windows 8.1 ou no Windows Server 2012 R2:
A atualização não é aplicável ao seu computador
Para resolver este erro, siga estes passos:
-
Certifique-se de que está a tentar instalar a atualização correta. Para tal, verifique o número BDC na Tabela 1 do Método 1. Compare-o com a versão, o nível de service pack e o nível de bits do seu sistema (x64, IA64 ou x86).
-
Verifique se existem dependências em falta. Para o Windows 8.1 e o Windows Server 2012 R2, instale as correções dependentes conforme indicado nos artigos seguintes:
-
KB 2919355: Atualização do Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2: abril de 2014
-
KB 2919442: Atualização da Pilha de Manutenção para Windows 8.1 e Windows Server 2012 R2 - março de 2014
-
KB 3173424: Atualização da pilha de manutenção para Windows 8.1 e Windows Server 2012 R2: 12 de julho de 2016
-
-
Se não conseguir instalar um rollup update, tente outra versão do rollup. Consulte a Tabela 1 para obter informações sobre as atualizações disponíveis.
Script do PowerShell
O script seguinte do Windows PowerShell compara a versão do ficheiro Srv.sys existente no computador local com as versões listadas na tabela existente no Método 2.
Guarde este script num ficheiro .ps1 e, em seguida, execute-o a partir do PowerShell. Este script aplica-se ao Windows XP e ao Windows Server 2003 e versões posteriores. O script necessita do Windows PowerShell 2.0 ou de uma versão posterior.
[reflection.assembly]::LoadWithPartialName("System.Version")
$os = Get-WmiObject -class Win32_OperatingSystem
$osName = $os.Caption
$s = "%systemroot%\system32\drivers\srv.sys"
$v = [System.Environment]::ExpandEnvironmentVariables($s)
If (Test-Path "$v")
{
Try
{
$versionInfo = (Get-Item $v).VersionInfo
$versionString = "$($versionInfo.FileMajorPart).$($versionInfo.FileMinorPart).$($versionInfo.FileBuildPart).$($versionInfo.FilePrivatePart)"
$fileVersion = New-Object System.Version($versionString)
}
Catch
{
Write-Host "Unable to retrieve file version info, please verify vulnerability state manually." -ForegroundColor Yellow
Return
}
}
Else
{
Write-Host "Srv.sys does not exist, please verify vulnerability state manually." -ForegroundColor Yellow
Return
}
if ($osName.Contains("Vista") -or ($osName.Contains("2008") -and -not $osName.Contains("R2")))
{
if ($versionString.Split('.')[3][0] -eq "1")
{
$currentOS = "$osName GDR"
$expectedVersion = New-Object System.Version("6.0.6002.19743")
}
elseif ($versionString.Split('.')[3][0] -eq "2")
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.0.6002.24067")
}
else
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("9.9.9999.99999")
}
}
elseif ($osName.Contains("Windows 7") -or ($osName.Contains("2008 R2")))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.1.7601.23689")
}
elseif ($osName.Contains("Windows 8.1") -or $osName.Contains("2012 R2"))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.3.9600.18604")
}
elseif ($osName.Contains("Windows 8") -or $osName.Contains("2012"))
{
$currentOS = "$osName LDR"
$expectedVersion = New-Object System.Version("6.2.9200.22099")
}
elseif ($osName.Contains("Windows 10"))
{
if ($os.BuildNumber -eq "10240")
{
$currentOS = "$osName TH1"
$expectedVersion = New-Object System.Version("10.0.10240.17319")
}
elseif ($os.BuildNumber -eq "10586")
{
$currentOS = "$osName TH2"
$expectedVersion = New-Object System.Version("10.0.10586.839")
}
elseif ($os.BuildNumber -eq "14393")
{
$currentOS = "$($osName) RS1"
$expectedVersion = New-Object System.Version("10.0.14393.953")
}
elseif ($os.BuildNumber -eq "15063")
{
$currentOS = "$osName RS2"
"No need to Patch. RS2 is released as patched. "
return
}
}
elseif ($osName.Contains("2016"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("10.0.14393.953")
}
elseif ($osName.Contains("Windows XP"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("5.1.2600.7208")
}
elseif ($osName.Contains("Server 2003"))
{
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("5.2.3790.6021")
}
else
{
Write-Host "Unable to determine OS applicability, please verify vulnerability state manually." -ForegroundColor Yellow
$currentOS = "$osName"
$expectedVersion = New-Object System.Version("9.9.9999.99999")
}
Write-Host "`n`nCurrent OS: $currentOS (Build Number $($os.BuildNumber))" -ForegroundColor Cyan
Write-Host "`nExpected Version of srv.sys: $($expectedVersion.ToString())" -ForegroundColor Cyan
Write-Host "`nActual Version of srv.sys: $($fileVersion.ToString())" -ForegroundColor Cyan
If ($($fileVersion.CompareTo($expectedVersion)) -lt 0)
{
Write-Host "`n`n"
Write-Host "System is NOT Patched" -ForegroundColor Red
}
Else
{
Write-Host "`n`n"
Write-Host "System is Patched" -ForegroundColor Green
}
#
Referências
Orientação para clientes relativa aos ataques WannaCrypt
Centro de Proteção Contra Software Maligno
Blogue do Centro Microsoft de Proteção Contra Software Maligno
Este artigo aplica-se ao:
-
Windows Server 2016
-
Windows 10 Versão 1607
-
Windows 10 Versão 1511
-
Windows 10 Versão 1507
-
Windows Server 2012 R2
-
Windows 8.1
-
Windows Server 2012
-
Windows 8
-
Windows Server 2008 R2
-
Windows 7
-
Windows Server 2008 Service Pack 2
-
Windows Vista
-
Windows Server 2003 Service Pack 2
-
Windows XP