ประกาศ
บทความฐานความรู้นี้จัดเตรียมขึ้นตามที่เป็นและไม่ได้แทนที่ข้อมูลแทนที่ที่มีให้ผ่านช่องทางการอัปเดตตามปกติ ข้อมูลแทนที่ที่ลงวันที่ข้อมูลต่อไปนี้ช้ากว่าวันจริงสามารถดูได้ที่ คำแนะนำการปรับปรุงความปลอดภัย และเครื่องมือเอกสารประกอบอื่นๆ
สรุป
ดู ผลิตภัณฑ์ ที่เกี่ยวข้องกับบทความนี้
โปรแกรมปรับปรุงความปลอดภัย MS17-010 จัดการกับปัญหาต่างๆ ใน Windows Server Message Block (SMB) v1 แรนซัมแวร์ของ WannaCrypt ได้ใช้ประโยชน์จากหนึ่่งในปัญหาที่เป็นส่วนหนึ่งของการอัปเดต MS17-010 คอมพิวเตอร์ที่ไม่ได้ติดตั้ง MS17-010 จะมีความเสี่ยงสูงเนื่องจากมัลแวร์หลายชนิด บทความนี้มีวิธีการที่รวดเร็วหลายวิธีเพื่อตรวจสอบว่าคอมพิวเตอร์ได้รับการอัปเดตแล้วหรือยัง
วิธีที่ 1: ตรวจสอบโดยการติดตั้งหมายเลขฐานความรู้
ใช้ตารางต่อไปนี้เพื่อตรวจสอบรายการการอัปเดตใดๆ (ยกเว้นรายการที่ทำเครื่องหมายว่า "ไม่มีแพช MS17-010") หากมีการติดตั้งสิ่งเหล่านี้ แสดงว่า MS17-010 ได้ถูกติดตั้งแล้ว
ตารางที่ 1 จาก 2: Windows 7 SP1 และใหม่กว่า ค่าสะสม KBs ต่อไปนี้มีการแก้ไข (ยกเว้นในคอลัมน์ "เฉพาะความปลอดภัยเดือนเมษายนเท่านั้น 4B") ภายใต้แต่ละหมายเลข KB คือหมายเลขรุ่นของ Srv.sys ที่อัปเดตแล้ว
เวอร์ชันของ Windows |
อัปเดตความปลอดภัยเฉพาะเดือนมีนาคม (3/14/17) |
ค่าสะสมประจำเดือนมีนาคม (14/3/17) |
ตัวอย่างค่าสะสมประจำเดือนมีนาคม (21/3/17) |
ความปลอดภัยเดือนเมษายน การอัปเดตเท่านั้น (11/4/17) |
ค่าสะสมประจำเดือนเมษายน (11/4/17) |
ตัวอย่างค่าสะสมประจำเดือนเมษายน (18/4/17) |
การอัปเดตความปลอดภัยเดือนพฤษภาคมเท่านั้น (09/5/17) |
ค่าสะสมประจำเดือนพฤษภาคม (09/5/17) |
การเชื่อมโยงสำหรับการดาวน์โหลด |
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 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 8.1 และ 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 10 เวอร์ชัน 1507 |
4012606 10.0.10240.17319 |
4016637 10.0.10240.17319 |
- |
- |
4015221 10.0.10240.17319 |
- |
- |
4019474 10.0.10240.17394 |
|
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 Version Windows Server 2016 |
4013429 10.0.14393.953 |
4016635 10.0.14393.953 |
- |
- |
4015217 10.0.14393.953 |
- |
- |
4019472 10.0.14393.1198 |
ตารางที่ 2 จาก 2: ดำเนินการต่อสำหรับการอัปเดตเดือนพฤษภาคมและมิถุนายน 2017
เวอร์ชันของ Windows |
ตัวอย่างค่าสะสมประจำเดือนพฤษภาคม (16/5/17) |
การอัปเดตความปลอดภัยเดือนมิถุนายนเท่านั้น (13/6/17) |
ค่าสะสมประจำเดือนมิถุนายน (13/6/17) |
การเชื่อมโยงสำหรับการดาวน์โหลด |
Windows 7 และ 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 และ Windows Server 2012 R2 |
4019217 6.3.9600.18655 |
4022717 |
4022720 6.3.9600.18688 |
|
Windows 10 เวอร์ชัน 1507 |
- |
- |
4032695 |
|
Windows 10 เวอร์ชัน 1511 |
- |
- |
4032693 |
|
Windows 10 Version 1607 และ Windows Server 2016 |
- |
- |
4022723 10.0.14393.1198 |
ตารางที่ 2: Windows เวอร์ชันอื่น ใช้ KB 4012598 สำหรับการอัปเดตด้านการรักษาความปลอดภัย
เวอร์ชันของ Windows |
หมายเลข KB และ เวอร์ชัน Srv.sys ที่อัปเดตแล้ว |
การเชื่อมโยงสำหรับการดาวน์โหลด |
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 สำหรับ Systems Service Pack 2 เวอร์ชัน 32-บิต Windows Server 2008 สำหรับ Systems Service Pack 2 เวอร์ชัน 64-บิต Windows Server 2008 สำหรับ Systems Service Pack 2 แบบ Itanium |
Windows 8 |
4012598 6.2.9200.22099 |
ตารางที่ 3: การอัปเดตเพิ่มเติมที่มีการแก้ไข
Windows 8.1 และ Windows Server 2012 R2
วันที่เผยแพร่ |
หมายเลข KB |
หน้าสนับสนุน |
21 มีนาคม 2017 |
4012219 |
|
18 เมษายน 2017 |
4015553 |
|
16 พฤษภาคม 2017 |
4019217 |
|
27 มิถุนายน 2017 |
4022720 |
Windows server 2012
วันที่เผยแพร่ |
หมายเลข KB |
หน้าสนับสนุน |
21 มีนาคม 2017 |
4012220 |
|
18 เมษายน 2017 |
4015554 |
|
16 พฤษภาคม 2017 |
4019218 |
|
27 มิถุนายน 2017 |
4022721 |
Windows 7 SP1 และ Windows Server 2008 R2 SP1
วันที่เผยแพร่ |
หมายเลข KB |
หน้าสนับสนุน |
21 มีนาคม 2017 |
4012218 |
|
18 เมษายน 2017 |
4015552 |
|
16 พฤษภาคม 2017 |
4019265 |
|
27 มิถุนายน 2017 |
4022168 |
วิธีที่ 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" สามารถเปลี่ยนแปลงได้เพื่อชี้ไปยังรากของพาร์ทิชันไดเรกทอรีโดเมนของ Active Directory "dc=contoso,dc=com" เพื่อค้นหาคอมพิวเตอร์ในโดเมนทั้งหมด ในคำสั่งนี้ ให้แทนที่ <KB1234567> ด้วยหมายเลข KB จริง
วิธีการแก้ไขข้อผิดพลาดการติดตั้ง "ไม่สามารถใช้งานได้"
ถ้าไม่ได้ติดตั้งการแก้ไขข้อกำหนดเบื้องต้นบนคอมพิวเตอร์ คุณอาจได้รับข้อความข้อผิดพลาดต่อไปนี้เมื่อคุณติดตั้ง MS17-010 บน Windows 8.1 หรือ Windows Server 2012 R2:
ไม่สามารถใช้การอัปเดตกับคอมพิวเตอร์ของคุณ
เมื่อต้องการแก้ข้อผิดพลาดนี้ ให้ทำตามขั้นตอนต่อไปนี้:
-
ตรวจสอบให้แน่ใจว่าคุณกำลังพยายามติดตั้งการอัปเดตที่ถูกต้อง เมื่อต้องการทำเช่นนี ให้ตรวจสอบหมายเลข KB ในตาราง 1 ในวิธีที่ 1 เปรียบเทียบกับเวอร์ชันระบบ ระดับแพคบริการระบบ และระดับบิตของระบบ (x64, IA64 หรือ x86) ของคุณ
-
ตรวจสอบความเชื่อมโยงที่หมายไป สำหรับ Windows 8.1 และ Windows Server 2012 R2 ให้ติดตั้งการแก้ไขที่เชื่อมโยงที่จำเป็นตามบทความต่อไปนี้:
-
ถ้าคุณไม่สามารถติดตั้งการอัปเดตสะสมได้ ให้ลองเวอร์ชันค่าสะสมอื่น ดูตาราง 1 สำหรับการอัปเดตที่พร้อมใช้งาน
สคริปต์ PowerShell
สคริปต์ Windows PowerShell ต่อไปนี้เปรียบเทียบ Srv.sys เวอร์ชันบนคอมพิวเตอร์กับเวอร์ชันที่ระบุไว้ในแผนภูมิในวิธีที่ 2
บันทึกสคริปต์นี้ไปยังไฟล์ .ps1 และเรียกใช้สคริปต์จาก PowerShell สคริปต์นี้ใช้ได้กับ Windows XP และ Windows Server 2003 และเวอร์ชั่นล่าสุด ต้องมี Windows PowerShell 2.0 หรือ PowerShell เวอร์ชันล่าสุด
[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
ตัวจัดการการกำหนดค่าคิวรี SQL Server สำหรับการรายงานการปฏิบัติตามกฎที่เกี่ยวข้องกับ MS17-010
บทความนี้ใช้กับ:
-
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