MS17-010이 설치되어 있는지 확인하는 방법

알림

이 기술 자료 문서는 있는 그대로 제공되며 정규 업데이트 채널을 통해 제공되는 대체 데이터를 대신하지 않습니다. 날짜가 다음 데이터보다 이후인 대체 정보는 보안 업데이트 가이드 및 기타 참고 자료 도구에서 확인할 수 있습니다.

요약​​

이 문서가 적용되는 제품을 확인하세요.

보안 업데이트 MS17-010은 Windows SMB(서버 메시지 블록) v1의 여러 가지 취약성을 해결합니다. WannaCrypt 랜섬웨어는 MS17-010 업데이트에 포함된 취약성 중 하나를 악용합니다. MS17-010이 설치되어 있지 않은 컴퓨터는 여러 가지 변형된 맬웨어로 인해 더욱 높은 위험에 노출되어 있습니다. 이 문서에서는 컴퓨터가 업데이트되어 있는지 여부를 신속하게 확인할 수 있는 여러 가지 방법을 소개합니다.

방법 1: 설치된 기술 자료 번호로 확인

다음 표를 활용하여 나열된 업데이트가 있는지확인합니다(“MS17-010 패치 포함 안 함”으로 표시되어 있는 업데이트는제외). 이 중 하나라도 설치되어 있으면 MS17-010이 설치되어 있는 것입니다.

표 1/2: Windows 7 SP1 이상. 다음 롤업 KB에는 픽스가 포함되어 있습니다("4월 보안 전용 4B" 열은 제외). 각 KB 번호 아래에는 업데이트된 Srv.sys 버전 번호가 있습니다.

Windows 버전 3월 보안 전용 업데이트 (17/3/14) 3월 월별 롤업
(17/3/14)
3월 월별 롤업 미리 보기
(17/3/21)
4월 보안
전용 업데이트
(17/4/11)
4월 월별 롤업
(17/4/11)
4월 월별 롤업 미리 보기
(17/4/18)
5월 보안 전용 업데이트
(17/5/09)
5월 월별 롤업
(17/5/09)
다운로드 링크
Windows 7 SP1 및 Windows Server 2008 R2 SP1 4012212
6.1.7601.23689
4012215
6.1.7601.23689
4012218
6.1.7601.23689
4015546
MS17-010 패치 포함 안 함
4015549
6.1.7601.23689
4015552
6.1.7601.23689
4019263
6.1.7601.23762
4019264
6.1.7601.23762
Windows 7 SP1 및 Windows Server 2008 R2 SP1 업데이트 기록
Windows 2012 4012214
6.2.9200.22099
4012217
6.2.9200.22099
4012220
6.2.9200.22099
4015548
MS17-010 패치 포함 안 함
4015551
6.2.9200.22099
4015554
6.2.9200.22099
4019214
6.2.9200.22137
4019216
6.2.9200.22137
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 MS17-010 패치 포함 안 함 4015550
6.3.9600.18604
4015553
6.3.9600.18619
4019213
6.3.9600.18655
4019215
6.3.9600.18655
Windows 8.1 및 Windows Server 2012 R2 업데이트 기록
Windows 10 버전 1507 4012606
10.0.10240.17319
4016637
10.0.10240.17319
- - 4015221
10.0.10240.17319
- - 4019474 10.0.10240.17394 Windows 10 업데이트 기록
Windows 10 버전 1511 4013198
10.0.10586.839
4016636
10.0.10586.839
- - 4015219
10.0.10586.839
- - 4019473
10.0.10586.916
Windows 10 업데이트 기록
Windows 10 버전 Windows Server 2016 4013429
10.0.14393.953
4016635
10.0.14393.953
- - 4015217
10.0.14393.953
- - 4019472
10.0.14393.1198
Windows 10 및 Windows Server 2016 업데이트 기록

 

표 2/2: 2017년 5월 및 6월 업데이트가 계속되었습니다.

Windows 버전 5월 월별 롤업 미리 보기
(17/5/16)
6월 보안 전용 업데이트
(17/6/13)
6월 월별 롤업
(17/6/13)
다운로드 링크
Windows 7 및 Server 2008 R2 4019265
6.1.7601.23762
4022722 4022168
6.1.7601.23762
Windows 7 SP1 및 Windows Server 2008 R2 SP1 업데이트 기록
Windows Server 2012 4019218
6.2.9200.22137
4022718 4022724
6.2.9200.22137
Windows Server 2012 업데이트 기록
Windows 8.1 and Windows Server 2012 R2 4019217
6.3.9600.18655
4022717 4022720
6.3.9600.18688
Windows 8.1 및 Windows Server 2012 R2 업데이트 기록
Windows 10 버전 1507 - - 4032695 Windows 10 업데이트 기록
Windows 10 버전 1511 - - 4032693 Windows 10 업데이트 기록
Windows 10 버전 1607 및 Windows Server 2016 - - 4022723
10.0.14393.1198
Windows 10 및 Windows Server 2016 업데이트 기록

 

표 2: 기타 Windows 버전. KB 4012598을 보안 업데이트로 사용합니다.

Windows 버전 KB 번호 및
업데이트된 Srv.sys 버전
다운로드 링크
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 서비스팩 2

Windows Vista x64 Edition 서비스 팩 2
Windows Server 2008 SP2 4012598
GDR:6.0.6002.19743
LDR:6.0.6002.24067
Windows Server 2008(32비트 시스템용) 서비스 팩 2

Windows Server 2008(x64 기반 시스템용) 서비스 팩 2

Itanium 기반 시스템 서비스 팩 2용 Windows Server 2008
Windows 8 4012598
6.2.9200.22099
Windows 8 x86, Windows 8 x64

 

표 3: 수정 사항이 포함된 추가 업데이트입니다.

Windows 8.1 and Windows Server 2012 R2

릴리스 날짜 KB 번호 지원 페이지
2017년 3월 21일 4012219 2017년 3월 21일 화요일—KB4012218(월별 롤업 미리 보기)
2017년 4월 18일 4015553 2017년 4월 18일 화요일—KB4015553(월별 롤업 미리 보기)
2017년 5월 16일 4019217 2017년 5월 16일 화요일—KB4019217(월별 롤업 미리 보기)
2017년 6월 27일 4022720 2017년 6월 27일 화요일 - KB4022720(매월 롤업 미리 보기)

Windows Server 2012

릴리스 날짜 KB 번호 지원 페이지
2017년 3월 21일 4012220 2017년 3월 21일 화요일—KB4012220(월별 롤업 미리 보기)
2017년 4월 18일 4015554 2017년 4월 18일 화요일—KB4015554(월별 롤업 미리 보기)
2017년 5월 16일 4019218 2017년 5월 16일 화요일—KB4019218(월별 롤업 미리 보기)
2017년 6월 27일 4022721 2017년 6월 27일 화요일 - KB4022721(매월 롤업 미리 보기)

Windows 7 SP1 및 Windows Server 2008 R2 SP1

릴리스 날짜 KB 번호 지원 페이지
2017년 3월 21일 4012218 2017년 3월 21일 화요일—KB4012218(월별 롤업 미리 보기)
2017년 4월 18일 4015552 2017년 4월 18일 화요일—KB4015552(월별 롤업 미리 보기)
2017년 5월 16일 4019265 2017년 5월 16일 화요일—KB4019265(월별 롤업 미리 보기)
2017년 6월 27일 4022168 2017년 6월 27일 화요일 - KB4022168(매월 롤업 미리 보기)

방법 2: %systemroot%\system32\drivers\srv.sys 파일 버전별 확인

다음 차트를 활용하여 %systemroot%\system32\drivers\srv.sys의 파일 버전을 확인합니다. 파일 버전이 나열된 버전보다 높거나 같으면 MS17-010이 설치되어 있는 것입니다.

Windows 버전 업데이트된 최소 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

방법 3: WMI 및 Windows PowerShell 확인

WMI 및 Windows PowerShell을 활용하여 MS17-010 픽스가 설치되어 있는지 여부를 확인합니다.

WMI 명령

지정된 KB 번호를 확인하려면 관리자 권한 명령 프롬프트 창을 연 후 다음 명령을 실행합니다.


wmic qfe get hotfixid | find "KB1234567"

참고

  • 이 명령에서 KB1234567> 실제 KB 번호로 바꿉 있습니다<.

  • 여러 개의 업데이트를 검색하려면 앰퍼샌드 문자(&)를 사용합니다. 예를 들어, 다음 명령을 실행합니다.

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

PowerShell 명령

로컬 시스템에서 확인하려면 다음 관리 PowerShell cmdlet을 실행합니다.


 get-hotfix -id KB1234567

참고

  • 이 명령에서 KB1234567> 실제 KB 번호로 바꿉 있습니다<.

  • 여러 개의 업데이트를 검색하려면 쉼표(,)를 사용합니다. 예를 들어, 다음 명령을 실행합니다.

    get-hotfix -id KB4012212,KB4012215,KB4015549

Active Directory 도메인 또는 OU의 모든 컴퓨터를 확인하려면 도메인 컨트롤러에서 다음 관리 PowerShell cmdlet을 실행합니다.


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

참고 "OU=workstations,dc=contoso,dc=com"부분을 "dc=contoso,dc=com”처럼 Active Directory 도메인 디렉터리 파티션의 루트를 가리키도록 변경하면 도메인 전체의 컴퓨터를 검색할 수 있습니다. 이 명령에서 KB1234567> 실제 KB 번호로 바꿉 있습니다<.

“해당 없음” 설치 오류를 해결하는 방법

필수 구성 요소 픽스가 컴퓨터에 설치되어 있지 않으면 Windows 8.1 또는 Windows Server 2012 R2에서 MS17-010을 설치할 때 다음과 같은 오류 메시지가 나타날 수 있습니다.

참고

업데이트를 컴퓨터에 적용할 수 없습니다.

이 오류를 해결하려면 다음 단계를 수행하세요.

  1. 올바른 업데이트를 설치하고 있는지 확인합니다. 이렇게 하려면 방법 1의 표 1에서 KB 번호를 확인합니다. 이를 사용 중인 시스템 버전, 시스템 서비스 팩 수준, 시스템 비트 수준(x64, IA64 또는 x86)과 비교합니다.
     

  2. 누락된 종속성을 확인합니다. Windows 8.1 및 Windows Server 2012 R2의 경우 다음 문서에 따라 종속 픽스를 필수 항목으로 설치합니다.

    • KB 2919355: Windows RT 8.1, Windows 8.1 및 Windows Server 2012 R2 업데이트: 2014년 4월
    • KB 2919442: 2014년 3월 Windows 8.1 및 Windows Server 2012 R2용 서비스 스택 업데이트
    • KB 3173424: Windows 8.1 및 Windows Server 2012 R2용 서비스 스택 업데이트: 2016년 7월 12일
  3. 롤업 업데이트를 설치할 수 없으면 다른 롤업 버전을 시도해 봅니다. 사용 가능한 업데이트는 표 1을 참조하세요.
     

PowerShell 스크립트

다음 Windows PowerShell 스크립트에서는 로컬 컴퓨터에 설치된 Srv.sys 버전을 방법 2의 차트에 나와 있는 버전과 비교합니다.

이 스크립트를 .ps1 파일로 저장한 후 PowerShell에서 스크립트를 실행합니다. 이 스크립트는 Windows XP 및 Windows Server 2003 이상 버전에 적용되며, 스크립트를 실행하려면 Windows PowerShell 2.0 이상 버전이 필요합니다.
 


[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
    }
#

참조 자료

WannaCrypt 공격 대비를 위한 고객 지침

맬웨어 보호 센터

Microsoft 맬웨어 보호 센터 블로그

보안 업데이트 MS17-010

MS17-010과 관련된 규정 준수 보고를 위한 Configuration Manager SQL Server 쿼리

이 문서의 적용 대상은 다음과 같습니다.

 

  • Windows Server 2016
  • Windows 10 버전 1607
  • Windows 10 버전 1511
  • Windows 10 버전 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 서비스 팩 2
  • Windows XP