Cómo comprobar que MS17-010 está instalado

Aviso

Este artículo de Knowledge Base se proporciona tal cual y no reemplaza los datos de sustitución que se suministran por medio de los canales normales de actualización. La información de sustitución publicada con posterioridad a los datos siguientes se encuentra en la Guía de actualización de seguridad y otras herramientas auxiliares.

Resumen

Consulte los productos a los que afecta este artículo.

La actualización de seguridad MS17-010 aborda varias vulnerabilidades en Windows Server Message Block (SMB) v1. El ransomware WannaCrypt está aprovechando una de las vulnerabilidades que la actualización MS17-010 aborda. Los equipos que no tienen MS17-010 instalado sufren un riesgo mayor debido a que existen varias cepas de este malware. Este artículo proporciona varios métodos rápidos para detectar si el equipo está actualizado.

Método 1: Comprobar por número de Knowledge Base instalado

Utilice la siguiente tabla para buscar cualquiera de las actualizaciones recogidas (excepto aquellas que tienen la indicación "No contiene el parche MS17-010"). Si tiene instalada cualquiera de ellas, quiere decir que MS17-010 está instalado.

Cuadro 1 de 2: Windows 7 SP1 y versiones posteriores. Los siguientes paquetes acumulativos de KB contienen la corrección (excepto en la columna "Seguridad de abril Solo 4B"). Bajo cada número de KB aparece el número de versión actualizado de Srv.sys.

Versiones de Windows Actualización solo de seguridad de marzo (14/03/17) Paquete acumulativo mensual de marzo
(14/03/2017)
Vista previa de marzo del paquete acumulativo mensual
(3/21/17)
Actualización de solo
seguridad de abril
(4/11/17)
Paquete acumulativo mensual de abril
(4/11/17)
Vista previa de abril del paquete acumulativo mensual
(4/18/17)
Actualización de solo seguridad de mayo
(5/09/17)
Paquete acumulativo mensual de mayo
(5/09/17)
Vínculo de descarga
Windows 7 SP1 y Windows Server 2008 R2 SP1 4012212
6.1.7601.23689
4012215
6.1.7601.23689
4012218
6.1.7601.23689
4015546
No contiene el parche MS17-010
4015549
6.1.7601.23689
4015552
6.1.7601.23689
4019263
6.1.7601.23762
4019264
6.1.7601.23762
Historial de actualizaciones de Windows 7 SP1 y Windows Server 2008 R2 SP1
Windows 2012 4012214
6.2.9200.22099
4012217
6.2.9200.22099
4012220
6.2.9200.22099
4015548
No contiene el parche MS17-010
4015551
6.2.9200.22099
4015554
6.2.9200.22099
4019214
6.2.9200.22137
4019216
6.2.9200.22137
Historial de actualizaciones de Windows Server 2012
Windows 8.1 and Windows Server 2012 R2 4012213
6.3.9600.18604
4012216
6.3.9600.18604
4012219
6.3.9600.18604
4015547 No contiene el parche MS17-010 4015550
6.3.9600.18604
4015553
6.3.9600.18619
4019213
6.3.9600.18655
4019215
6.3.9600.18655
Historial de actualizaciones de Windows 8.1 y Windows Server 2012 R2
Windows 10, versión 1507 4012606
10.0.10240.17319
4016637
10.0.10240.17319
- - 4015221
10.0.10240.17319
- - 4019474 10.0.10240.17394 Historial de actualizaciones de Windows 10
Windows 10, versión 1511 4013198
10.0.10586.839
4016636
10.0.10586.839
- - 4015219
10.0.10586.839
- - 4019473
10.0.10586.916
Historial de actualizaciones de Windows 10
Windows 10, versión Windows Server 2016 4013429
10.0.14393.953
4016635
10.0.14393.953
- - 4015217
10.0.14393.953
- - 4019472
10.0.14393.1198
Historial de actualizaciones de Windows 10 y Windows Server 2016

 

Cuadro 2 de 2: Continuación de las actualizaciones de mayo y junio de 2017.

Versiones de Windows Versión preliminar del paquete acumulativo mensual de mayo
(5/16/17)
Actualización de solo seguridad de junio
(6/13/17)
Paquete acumulativo mensual de junio
(6/13/17)
Vínculo de descarga
Windows 7 y Server 2008 R2 4019265
6.1.7601.23762
4022722 4022168
6.1.7601.23762
Historial de actualizaciones de Windows 7 SP1 y Windows Server 2008 R2 SP1
Windows Server 2012 4019218
6.2.9200.22137
4022718 4022724
6.2.9200.22137
Historial de actualizaciones de Windows Server 2012
Windows 8.1 and Windows Server 2012 R2 4019217
6.3.9600.18655
4022717 4022720
6.3.9600.18688
Historial de actualizaciones de Windows 8.1 y Windows Server 2012 R2
Windows 10, versión 1507 - - 4032695 Historial de actualizaciones de Windows 10
Windows 10, versión 1511 - - 4032693 Historial de actualizaciones de Windows 10
Windows 10, versión 1607 y Windows Server 2016 - - 4022723
10.0.14393.1198
Historial de actualizaciones de Windows 10 y Windows Server 2016

 

Tabla 2: Otras versiones de Windows. Utilice KB 4012598 como actualización de seguridad.

Versiones de Windows Número de KB y
versión actualizada de Srv.sys
Vínculo de descarga
Windows Server 2003 SP2 4012598
5.2.3790.6021
Windows Server 2003 SP2 x64

Windows Server 2003 SP2 x86
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 R2 SP2 4012598
GDR:6.0.6002.19743
LDR:6.0.6002.24067
Windows Server 2008 Service Pack 2 para sistemas de 32 bits

Windows Server 2008 Service Pack 2 para sistemas basados en x64

Windows Server 2008 para sistemas basados en Itanium Service Pack 2
Windows 8 4012598
6.2.9200.22099
Windows 8 x86, Windows 8 x64

 

Tabla 3: Actualizaciones adicionales que contienen la corrección.

Windows 8.1 and Windows Server 2012 R2

Fecha de lanzamiento Número de KB Página de soporte
martes, 21 de marzo de 2017 4012219 21 de marzo de 2017: KB4012218 (versión preliminar del paquete acumulativo mensual)
18 de abril de 2017 4015553 18 de abril de 2017: KB4015553 (versión preliminar del paquete acumulativo mensual)
16 de mayo de 2017 4019217 16 de mayo de 2017: KB4019217 (versión preliminar del paquete acumulativo mensual)
27 de junio de 2017 4022720 27 de junio de 2017: KB4022720 (versión preliminar del paquete acumulativo mensual)

Windows server 2012

Fecha de lanzamiento Número de KB Página de soporte
martes, 21 de marzo de 2017 4012220 21 de marzo de 2017: KB4012220 (versión preliminar del paquete acumulativo mensual)
18 de abril de 2017 4015554 18 de abril de 2017: KB4015554 (versión preliminar del paquete acumulativo mensual)
16 de mayo de 2017 4019218 16 de mayo de 2017: KB4019218 (versión preliminar del paquete acumulativo mensual)
27 de junio de 2017 4022721 27 de junio de 2017: KB4022721 (versión preliminar del paquete acumulativo mensual)

Windows 7 SP1 y Windows Server 2008 R2 SP1

Fecha de lanzamiento Número de KB Página de soporte
martes, 21 de marzo de 2017 4012218 21 de marzo de 2017: KB4012218 (versión preliminar del paquete acumulativo mensual)
18 de abril de 2017 4015552 18 de abril de 2017: KB4015552 (versión preliminar del paquete acumulativo mensual)
16 de mayo de 2017 4019265 16 de mayo de 2017: KB4019265 (versión preliminar del paquete acumulativo mensual)
27 de junio de 2017 4022168 27 de junio de 2017: KB4022168 (versión preliminar del paquete acumulativo mensual)

Método 2: Comprobar por la versión del archivo %systemroot%\system32\drivers\srv.sys

Utilice la siguiente tabla para comprobar la versión del archivo %systemroot%\system32\drivers\srv.sys. Si la versión del archivo es igual o mayor a la versión indicada, MS17-010 está instalado.

Versiones de Windows Versión actualizada mínima de Srv.sys
Windows XP 5.1.2600.7208
Windows Server 2003 SP2 5.2.3790.6021
Windows Vista
Windows Server 2008 R2 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: Comprobar por WMI y Windows PowerShell

Utilice WMI y Windows PowerShell para averiguar si las correcciones de MS17-010 están instaladas.

Comando WMI

Para buscar un número de KB concreto, abra una ventana elevada del símbolo del sistema y luego ejecute el siguiente comando:


wmic qfe get hotfixid | find "KB1234567"

Notas

  • En este comando, reemplace <KB1234567> por el número KB real.

  • Utilice el carácter et (&) para buscar varias actualizaciones. Por ejemplo, ejecute el comando siguiente:

    wmic qfe get hotfixid | find "KB4012212" & wmic qfe get hotfixid | find "KB4012215" & wmic qfe get hotfixid | find "KB4015549"

Comandos de PowerShell

Para buscar en el sistema local, ejecute el siguiente cmdlet administrativo de PowerShell:


 get-hotfix -id KB1234567

Notas

  • En este comando, reemplace <KB1234567> por el número KB real.

  • Utilice una coma (,) para buscar varias actualizaciones. Por ejemplo, ejecute el comando siguiente:

    get-hotfix -id KB4012212,KB4012215,KB4015549

Para comprobar todos los equipos en un dominio de Active Directory u OU, ejecute el siguiente cmdlet administrativo de PowerShell en un controlador de dominio:


foreach ( $n in (get-adcomputer -searchbase ‘OU=workstations,dc=contoso,dc=com’ -filter * -property * | select name )) {get-hotfix -computername $n.name -id KB1234567}

NotaLa parte "OU=workstations,dc=contoso,dc=com" se puede cambiar para que apunte a la raíz de una partición de directorio de un dominio de Active Directory, por ejemplo, "dc=contoso,dc=com", para buscar en todos los equipos del dominio. En este comando, reemplace <KB1234567> por el número KB real.

Cómo resolver el error de instalación “no aplicable”

Si en los equipos no está instalada alguna solución previa necesaria, es posible que obtenga el siguiente mensaje de error al instalar MS17-010 en Windows 8.1 o Windows Server 2012 R2:

Nota

La actualización no es aplicable a su sistema.

Para resolver este error, siga estos pasos:

  1. Asegúrese de que está intentando instalar la actualización correcta. Para ello, compruebe el número de KB en la Tabla 1 con el Método 1. Compárelo con la versión, el nivel del Service Pack y el nivel de bits de su sistema (x64, IA64 o x86).
     

  2. Compruebe si falta alguna dependencia. Para Windows 8.1 y Windows Server 2012 R2, instale las soluciones dependientes según sea necesario, de acuerdo con los siguientes artículos:

    • KB 2919355: actualización de Windows RT 8.1, Windows 8.1 y Windows Server 2012 R2: abril de 2014
    • KB 2919442: actualización de pila de mantenimiento de marzo de 2014 para Windows 8.1 y Windows Server 2012 R2
    • KB 3173424: Actualización de la pila de mantenimiento de Windows 8.1 y Windows Server 2012 R2: 12 de julio de 2016
  3. Si no es capaz de instalar un paquete acumulativo de actualización, pruebe una versión distinta del paquete acumulativo. Consulte en la Tabla 1 las actualizaciones disponibles.
     

Script de PowerShell

El siguiente script de Windows PowerShell compara la versión de Srv.sys del equipo local con las versiones que figuran en el gráfico del método 2.

Guarde este script en un archivo .ps1 y luego ejecútelo desde PowerShell. Este script se aplica a Windows XP y a Windows Server 2003 y versiones posteriores. Requiere Windows PowerShell 2.0 o una versión 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
    }
#

Referencias

Guía para clientes acerca de los ataques de WannaCrypt

Centro de protección contra malware

Blog del Centro de protección contra malware de Microsoft

Actualización de seguridad MS17-010

Consultas de SQL Server para Configuration Manager para la realización de informes de cumplimiento relacionados con MS17-010

Este artículo se aplica a los siguientes productos:

 

  • Windows Server 2016
  • Windows 10, versión 1607
  • Windows 10, versión 1511
  • Windows 10, versión 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