ประกาศ
บทความฐานความรู้นี้มีให้ตามที่เป็น และไม่ได้แทนที่ข้อมูลการแทนที่ที่มีให้ผ่านช่องทางการอัปเดตปกติ คุณสามารถดูข้อมูลการแทนที่ข้อมูลหลังวันที่ต่อไปนี้ได้ใน คู่มือการอัปเดตความปลอดภัย และเครื่องมือหลักประกันอื่นๆ
สรุป
ดู ผลิตภัณฑ์ ที่บทความนี้นําไปใช้ได้
โปรแกรมปรับปรุงความปลอดภัย MS17-010 แก้ไขช่องโหว่ต่างๆ ใน Windows Server Message Block (SMB) v1 Ransomware WannaCrypt ใช้ประโยชน์จากช่องโหว่ที่เป็นส่วนหนึ่งของการอัปเดต MS17-010 คอมพิวเตอร์ที่ไม่ได้ติดตั้ง MS17-010 จะมีความเสี่ยงสูงเนื่องจากมีมัลแวร์หลายสายพันธุ์ บทความนี้มีวิธีการด่วนหลายวิธีในการตรวจสอบว่าคอมพิวเตอร์ได้รับการปรับปรุงหรือไม่
วิธีที่ 1: ตรวจสอบโดยการติดตั้งหมายเลขฐานความรู้
ใช้ตารางต่อไปนี้เพื่อตรวจสอบการอัปเดตใดๆ ที่แสดงอยู่ในรายการ (ยกเว้นโปรแกรมปรับปรุงที่มีเครื่องหมาย "ไม่มีโปรแกรมแก้ไข MS17-010") หากมีการติดตั้งไว้แล้ว MS17-010 จะติดตั้งไว้
ตารางที่ 1 จาก 2: Windows 7 SP1 และเวอร์ชันที่ใหม่กว่า ชุดรวมอัปเดตต่อไปนี้มีการแก้ไข (ยกเว้นในคอลัมน์ "เมษายนความปลอดภัยเท่านั้น 4B") ใต้หมายเลข KB แต่ละรายการคือหมายเลขเวอร์ชัน Srv.sys ที่อัปเดต
| เวอร์ชันของ Windows | การอัปเดตเฉพาะด้านความปลอดภัยเดือนมีนาคม (14/3/60) | ชุดรวมอัปเดตรายเดือนมีนาคม (3/14/17) |
ตัวอย่างชุดรวมอัปเดตรายเดือนเดือนมีนาคม (3/21/17) |
ความปลอดภัยเดือนเมษายน อัปเดตเท่านั้น (4/11/17) |
ชุดรวมอัปเดตรายเดือนเมษายน (4/11/17) |
ตัวอย่างชุดรวมอัปเดตรายเดือนเดือนเมษายน (4/18/17) |
การอัปเดตเฉพาะด้านความปลอดภัยพฤษภาคม (5/09/17) |
ชุดรวมอัปเดตรายเดือนของเดือนพฤษภาคม (5/09/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 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 และ 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
| เวอร์ชันของ Windows | ตัวอย่างชุดรวมอัปเดตรายเดือนของเดือนพฤษภาคม (5/16/17) |
การอัปเดตเฉพาะด้านความปลอดภัยประจําเดือนมิถุนายน (6/13/17) |
ชุดรวมอัปเดตรายเดือนเดือนมิถุนายน (6/13/17) |
ลิงก์ดาวน์โหลด |
|---|---|---|---|---|
| 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 และ 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 เวอร์ชันอื่นๆ ใช้ 4012598 KB สําหรับการอัปเดตความปลอดภัย
| เวอร์ชันของ 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 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 สําหรับ Service Pack 2 ระบบ 32 บิต Windows Server 2008 สําหรับระบบ x64 Service Pack 2 Windows Server 2008 สําหรับ Itanium Systems Service Pack 2 |
| Windows 8 | 4012598 6.2.9200.22099 |
Windows 8 x86, Windows 8 x64 |
ตารางที่ 3: การอัปเดตเพิ่มเติมที่มีการแก้ไข
Windows 8.1 และ Windows Server 2012 R2
| วันที่เผยแพร่ | หมายเลข KB | หน้าการสนับสนุน |
|---|---|---|
| 21 มีนาคม 2017 | 4012219 | 21 มีนาคม 2560—KB4012218 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 18 เมษายน 2017 | 4015553 | 18 เมษายน 2017—KB4015553 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 16 พฤษภาคม 2017 | 4019217 | 16 พฤษภาคม 2017—KB4019217 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| วันที่ 27 มิถุนายน 2017 | 4022720 | 27 มิถุนายน 2017—KB4022720 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
Windows Server 2012
| วันที่เผยแพร่ | หมายเลข KB | หน้าการสนับสนุน |
|---|---|---|
| 21 มีนาคม 2017 | 4012220 | 21 มีนาคม 2560—KB4012220 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 18 เมษายน 2017 | 4015554 | 18 เมษายน 2017—KB4015554 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 16 พฤษภาคม 2017 | 4019218 | 16 พฤษภาคม 2017—KB4019218 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| วันที่ 27 มิถุนายน 2017 | 4022721 | 27 มิถุนายน 2017—KB4022721 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
Windows 7 SP1 และ Windows Server 2008 R2 SP1
| วันที่เผยแพร่ | หมายเลข KB | หน้าการสนับสนุน |
|---|---|---|
| 21 มีนาคม 2017 | 4012218 | 21 มีนาคม 2560—KB4012218 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 18 เมษายน 2017 | 4015552 | 18 เมษายน 2017—KB4015552 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| 16 พฤษภาคม 2017 | 4019265 | 16 พฤษภาคม 2017—KB4019265 (ตัวอย่างชุดรวมอัปเดตรายเดือน) |
| วันที่ 27 มิถุนายน 2017 | 4022168 | 27 มิถุนายน 2017—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" สามารถเปลี่ยนให้ชี้ไปที่รากของพาร์ติชันไดเรกทอรีโดเมน Active Directory เช่น "dc=contoso,dc=com" เพื่อค้นหาคอมพิวเตอร์ในโดเมนทั้งหมด ในคําสั่งนี้ แทนที่ <KB1234567> ด้วยหมายเลข KB จริง
วิธีแก้ไขข้อผิดพลาดการติดตั้ง "ไม่สามารถใช้งานได้"
หากไม่มีการติดตั้งการแก้ไขเบื้องต้นในคอมพิวเตอร์ คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้เมื่อคุณติดตั้ง MS17-010 บน Windows 8.1 หรือ Windows Server 2012 R2:
หมายเหตุ
การอัปเดตนี้ไม่สามารถใช้ได้กับคอมพิวเตอร์ของคุณ
เมื่อต้องการแก้ไขข้อผิดพลาดนี้ ให้ทําตามขั้นตอนเหล่านี้:
ตรวจสอบให้แน่ใจว่าคุณพยายามติดตั้งการอัปเดตที่ถูกต้อง โดยตรวจสอบหมายเลข KB ในตาราง 1 ในวิธีที่ 1 เปรียบเทียบกับเวอร์ชันของระบบ ระดับ Service Pack ของระบบ และระดับบิตของระบบ (x64, IA64 หรือ x86)
ตรวจสอบการอ้างอิงที่ขาดหายไป สําหรับ Windows 8.1 และ Windows Server 2012 R2 ให้ติดตั้งการแก้ไขที่ขึ้นต่อกันตามที่จําเป็นตามบทความต่อไปนี้:
- การอัปเดต KB 2919355: Windows RT 8.1, Windows 8.1 และ Windows Server 2012 R2: เมษายน 2014
- KB 2919442: การอัปเดตสแตกบริการประจําเดือนมีนาคม 2557 สําหรับ Windows 8.1 และ Windows Server 2012 R2
- KB 3173424: การอัปเดตสแตกการให้บริการสําหรับ Windows 8.1 และ Windows Server 2012 R2: 12 กรกฎาคม 2016
หากคุณไม่สามารถติดตั้งชุดรวมอัปเดตให้ลองรุ่นชุดรวมอัปเดตอื่น ดูตาราง 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
บทความนี้ใช้กับ:
- 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 Service Pack 2
- Windows XP