ข้อผิดพลาดการเชื่อมต่อเดสก์ท็อประยะไกลหลังจากอัปเดต Windows 2018/05/08 - อัพเดต CredSSP สำหรับ CVE-2018-0886


90

หลังจาก Windows Update ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเชื่อมต่อกับเซิร์ฟเวอร์โดยใช้การเชื่อมต่อเดสก์ท็อประยะไกล

เมื่ออ่านลิงก์ที่ให้ไว้โดยข้อความแสดงข้อผิดพลาดดูเหมือนว่าเป็นเพราะมีการอัปเดตที่ 2018/05/08:

8 พฤษภาคม 2018

การปรับปรุงเพื่อเปลี่ยนการตั้งค่าเริ่มต้นจากความเสี่ยงเป็น Mitigated

หมายเลขฐานความรู้ของ Microsoft ที่เกี่ยวข้องแสดงอยู่ใน CVE-2018-0886

มีวิธีแก้ปัญหาสำหรับเรื่องนี้หรือไม่?

ข้อผิดพลาด RDC


1
(Meta: อัปเดตไปที่ส่วนท้ายของโพสต์เพื่อให้แน่ใจว่าพวกเขายังคงเข้าใจได้สำหรับผู้อ่านใหม่และคำตอบจะอยู่ในพื้นที่คำตอบไม่รวมอยู่ในคำถามขอบคุณ)
halfer

คำตอบ:


21

(โพสต์คำตอบในนามของผู้เขียนสำหรับคำถาม)

ในบางคำตอบทางออกที่ดีที่สุดสำหรับข้อผิดพลาดนี้คือการอัปเดตทั้งเซิร์ฟเวอร์และไคลเอนต์เป็นรุ่น> = การอัปเดต 2018-05-08 จาก Microsoft

หากคุณไม่สามารถอัปเดตทั้งคู่ได้ (เช่นคุณสามารถอัปเดตไคลเอ็นต์หรือเซิร์ฟเวอร์ได้เท่านั้น) จากนั้นคุณสามารถใช้วิธีแก้ไขปัญหาอย่างใดอย่างหนึ่งจากคำตอบด้านล่างและเปลี่ยนการกำหนดค่ากลับ ASAP เพื่อลดระยะเวลา


นี่เป็นหนึ่งในกรณีที่หายากซึ่งคำตอบที่ได้รับการยอมรับก็เป็นคำตอบที่ดีที่สุดเช่นกัน คำตอบอื่น ๆ ทำให้คุณเสี่ยงต่อการ CVE-2018-0886: "ช่องโหว่โค้ดจากระยะไกลที่มีอยู่ในเวอร์ชั่นที่ยังไม่ได้แก้ไขของ CredSSP ผู้โจมตีที่ประสบความสำเร็จในการใช้ประโยชน์จากช่องโหว่นี้อาจ. ถ่ายทอดข้อมูลประจำตัวของผู้ใช้ในการรันโค้ดบนระบบเป้าหมายแอพลิเคชันใด ๆ ที่ขึ้นอยู่กับ CredSSP. สำหรับการตรวจสอบอาจมีความเสี่ยงต่อการถูกโจมตีประเภทนี้ "
Braiam

เราพบวิธีแก้ไขปัญหาที่สะดวกและไม่รุกราน - เราสามารถ RDP โดยใช้หนึ่งในเซิร์ฟเวอร์ของเราเป็นกล่องกระโดด
OutstandingBill

มีความคิดว่าช่องโหว่ร้ายแรงเพียงใดหากทั้งไคลเอนต์และเซิร์ฟเวอร์อยู่ในเครือข่ายท้องถิ่นเดียวกันและเปิดรับอินเทอร์เน็ตหลังเราเตอร์ที่ไม่มีพอร์ตเปิดเท่านั้น
Kevkong

@Kevkong: นี่เป็นคำตอบของวิกิที่ฉันโพสต์ไว้สำหรับผู้สร้างคำถาม คุณสามารถ ping พวกเขาภายใต้คำถามหากคุณต้องการ
halfer

สวัสดี @Peter: ขอบคุณสำหรับการแก้ไขของคุณ ส่วนใหญ่เห็นด้วยกับพวกเขา แต่การแนะนำ meta เป็นสิ่งที่จำเป็น IMO ที่จะอยู่ในกฎใบอนุญาตแสดงที่มา ฉันมีหลายร้อยรายการเหล่านี้ใน Stack Overflow และมุมมองจาก Meta ไม่เพียง แต่จะต้องอยู่ต่อไป แต่ผู้ใช้บางคนคิดว่ามันไม่เพียงพอและ OP ควรได้รับการตั้งชื่อ มุมมองระดับสูงนั้นไม่ได้มีแรงฉุดมากนัก แต่แสดงให้เห็นถึงความคิดเห็นที่กว้างที่สุดเกี่ยวกับวิธีการระบุแหล่งที่มาที่ทำได้ดีที่สุด แต่โดยพื้นฐานแล้วเราไม่สามารถลบการประพันธ์ ขอคืนได้ไหม?
halfer

90

วิธีอื่นในการ gpedit โดยใช้ cmd:

reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /f /v AllowEncryptionOracle /t REG_DWORD /d 2

4
ผู้ช่วยชีวิต สำหรับผู้ที่ใช้ Windows 10 Home สิ่งนี้น่าจะสมบูรณ์แบบ เพียงจำไว้ว่าให้เรียกใช้ cmd ในฐานะผู้ดูแลระบบ

1
คำสั่งนี้ทำงานบน windows 8 ขอบคุณ
Jairath

1
ปัญหาที่เกิดขึ้นจริงคือการปรับปรุงยังคงถูกติดตั้งบนเซิร์ฟเวอร์จึงไม่สามารถเชื่อมต่อได้ รอเพียงและมันทำงาน serverfault.com/questions/387593/…
tobiak777

1
@pghcpa เพิกเฉยว่าคำสั่งจะสร้างโหนดรีจิสตรีที่ขาดหายไปและแทรกพารามิเตอร์ให้คุณ นี่เป็นการช่วยชีวิตจริงๆถ้าคุณไม่สามารถอัปเดตเซิร์ฟเวอร์ด้วยแพตช์ความปลอดภัยที่ทำให้เกิดปัญหานี้
Gergely Lukacsy

1
ฉันไม่รู้ว่าทำไม แต่มันใช้งานได้ขอบคุณ
dian

39

ฉันพบทางออกหนึ่ง ตามที่อธิบายไว้ในลิงก์ความช่วยเหลือฉันลองย้อนกลับจากอัปเดต 2018/05/08 โดยเปลี่ยนค่าของนโยบายกลุ่มนี้:

  • เรียกใช้gpedit.msc

  • การกำหนดค่าคอมพิวเตอร์ -> เทมเพลตการดูแลระบบ -> ระบบ -> การมอบสิทธิ์ -> การเข้ารหัส Oracle Remediation

เปลี่ยนเป็นเปิดใช้งานและในระดับการป้องกัน, เปลี่ยนกลับไปเป็นช่องโหว่

ฉันไม่แน่ใจว่ามันจะย้อนกลับความเสี่ยงใด ๆ ของผู้โจมตีใช้ประโยชน์จากการเชื่อมต่อของฉัน ฉันหวังว่าไมโครซอฟท์จะแก้ไขปัญหานี้ในเร็ว ๆ นี้ดังนั้นฉันสามารถเรียกคืนการตั้งค่าไปยังแนะนำให้ตั้งค่าลดลง

ป้อนคำอธิบายภาพที่นี่


ระบบของฉันไม่มีตัวเลือกสำหรับ "การเข้ารหัส Oracle Remediation" ในนั้นเป็นเซิร์ฟเวอร์ windows 2012 ดูเหมือนว่าจะใช้การปรับปรุงความปลอดภัย 5/8

4
สิ่งที่ฉันพบคือลูกค้าของเราคือ "ปัญหา" เซิร์ฟเวอร์ไม่มีอัปเดตล่าสุด ลูกค้ามีอัปเดตล่าสุดดังนั้นจึงไม่ทำงาน เมื่อเซิร์ฟเวอร์อัพเดททุกอย่างทำงานได้

สำหรับผู้ที่ไม่แน่ใจว่าจะเริ่มต้นให้เรียกใช้ "gpedit.msc" จากนั้นทำตามคำแนะนำด้านบน
เกลน Little

สิ่งนี้ใช้ไม่ได้กับระบบ Windows 10 ของฉัน การอัพเดตคีย์รีจิสทรี CredSSP ด้วยตนเองช่วยให้ฉันสามารถเชื่อมต่อได้ - ซึ่งฉันตั้งใจจะทำนานพอที่จะปรับปรุงเครื่องให้ตรงกับมาตรฐานปัจจุบัน
Tom W

12

อีกวิธีหนึ่งคือติดตั้งไคลเอนต์ Microsoft Remote Desktop จาก MS Store - https://www.microsoft.com/en-us/store/p/microsoft-remote-desktop/9wzdncrfj3ps


2
ขอบคุณหวังว่ามันจะมีการคัดลอก / วางไฟล์แทนการแชร์โฟลเดอร์หนึ่งวัน มีเพียงคลิปบอร์ดที่ใช้ร่วมกันเพื่อคัดลอก / วางข้อความ
Pham X. Bach

ไคลเอนต์ RDP ของ Windows App Store ขาดคุณสมบัติการปรับแต่งและการรวมระบบในตัวจำนวนมากดังนั้นจึงmstsc.exeเป็นเรื่องยากที่จะดำเนินการอย่างจริงจัง จากมุมมองด้านความปลอดภัยจะไม่ทำให้คุณสามารถดูใบรับรองที่ใช้สำหรับการเชื่อมต่อที่ปลอดภัย (ครั้งล่าสุดที่ฉันตรวจสอบ) แต่ก็ยังขาดการสนับสนุนสมาร์ทการ์ดการขยายจอภาพหลายจอการเปลี่ยนเส้นทางไดรฟ์และอื่น ๆ ตารางเปรียบเทียบไมโครซอฟท์เองแสดงให้เห็นว่ามันเป็นโรคโลหิตจาง: docs.microsoft.com/en-us/windows-server/remote/...
Dai

6

ปัญหานี้เกิดขึ้นใน Hyper-V VM ของฉันเท่านั้นและการใช้งานกับเครื่องที่มีอยู่จริงนั้นใช้ได้

ไปที่พีซีนี้ →การตั้งค่าระบบ→การตั้งค่าระบบขั้นสูงบนเซิร์ฟเวอร์จากนั้นฉันแก้ไขด้วยการยกเลิกการเลือกเป้าหมาย VM "อนุญาตการเชื่อมต่อจากคอมพิวเตอร์ที่ใช้เดสก์ท็อประยะไกลด้วยการรับรองความถูกต้องระดับเครือข่าย (แนะนำ)"

ยกเลิกการเลือก


พระเจ้าประณามมัน ฉันเปิดใช้งานตัวเลือกนั้นลืมไปและอีก 2 ชั่วโมงต่อมาฉันก็รู้ว่ามันเป็นปัญหา 😩
Shafiq al-Shaar

3

ทำตามคำตอบของ ac19501 ฉันได้สร้างไฟล์รีจิสตรีสองไฟล์เพื่อให้ง่ายขึ้น:

rdp_insecure_on.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]
@=""
"AllowEncryptionOracle"=dword:00000002

rdp_insecure_off.reg

Windows Registry Editor Version 5.00

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters]

2

อัพเดทตัวอย่าง GPO บนหน้าจอการพิมพ์

ตามคำตอบ "reg เพิ่ม" HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System \ CredSSP \ Parameters "/ f / v AllowEncryptionOracle / t REG_DWORD / d 2"

บันทึกหน้าจอ, พิมพ์หน้าจอ

เส้นทางที่สำคัญ: Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ System \ CredSSP \ Parameter
ชื่อค่า: AllowEncryptionOracle
ข้อมูลค่า: 2


2

ฉันเจอปัญหาเดียวกัน ทางออกที่ดีกว่าคือการอัพเดตเครื่องที่คุณกำลังเชื่อมต่อแทนที่จะใช้คำตอบของ Pham X Bach เพื่อลดระดับความปลอดภัย

อย่างไรก็ตามหากคุณไม่สามารถอัปเดตเครื่องด้วยเหตุผลบางประการการแก้ปัญหาของเขาทำงาน


ขออภัยที่เข้าใจผิดคำตอบของคุณ ใช่ทางออกที่ดีที่สุดควรอัปเดตเซิร์ฟเวอร์และไคลเอนต์ทั้งหมดเป็นรุ่น> = อัปเดต 2018/05/08 จาก MS
Pham X. Bach

1

คุณต้องติดตั้ง Windows Update สำหรับเซิร์ฟเวอร์และไคลเอนต์ทั้งหมด หากต้องการค้นหาการอัปเดตให้ไปที่https://portal.msrc.microsoft.com/en-us/security-guidanceจากนั้นค้นหา CVE 2018-0886 และเลือกอัพเดตความปลอดภัยสำหรับเวอร์ชันของ Windows ที่ติดตั้ง


1

คุณต้องอัปเดต Windows Server โดยใช้ Windows Update แพตช์ที่จำเป็นทั้งหมดจะถูกติดตั้ง จากนั้นคุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่านเดสก์ท็อประยะไกลได้อีกครั้ง

คุณต้องติดตั้ง kb4103725

อ่านเพิ่มเติมได้ที่: https://support.microsoft.com/en-us/help/4103725/windows-81-update-kb4103725


สำหรับคนที่สูญเสียการเข้าถึงเซิร์ฟเวอร์ระยะไกลของพวกเขาฉันยังคงสามารถเข้าถึงเซิร์ฟเวอร์ของฉันด้วย Remote Desktop สำหรับ Android จากนั้นคุณสามารถติดตั้งแพตช์และแก้ปัญหาด้วยการเชื่อมต่อเดสก์ท็อประยะไกลจากไคลเอนต์ Windows

1

สำหรับเซิร์ฟเวอร์เราสามารถเปลี่ยนการตั้งค่าผ่านทาง PowerShell ระยะไกล (สมมติว่าเปิดใช้งาน WinRM และอื่น ๆ ... )

$Server = remoteHostName
Invoke-Command -ComputerName $Server -ScriptBlock {(Get-WmiObject -class Win32_TSGeneralSetting -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").SetUserAuthenticationRequired(0)} -Credential (Get-Credential)

ตอนนี้หากการตั้งค่านี้ได้รับการจัดการโดย GPO ของโดเมนเป็นไปได้ว่าจะเปลี่ยนกลับดังนั้นคุณต้องตรวจสอบ GPO แต่สำหรับการแก้ไขอย่างรวดเร็วงานนี้

การอ้างอิง: https://www.petri.com/disable-remote-desktop-network-level-authentication-using-powershell


1

ตัวเลือกอื่นหากคุณสามารถเข้าถึงบรรทัดคำสั่ง (เรามีเซิร์ฟเวอร์ SSH ที่ทำงานอยู่ในกล่อง) คือการเรียกใช้ "sconfig.cmd" จากบรรทัดคำสั่ง คุณได้รับเมนูดังนี้:

ป้อนคำอธิบายภาพที่นี่

เลือกตัวเลือก 7 และเปิดใช้สำหรับลูกค้าทุกคนไม่ใช่แค่ปลอดภัย

เมื่อเสร็จแล้วคุณสามารถเดสก์ท็อประยะไกลได้ดูเหมือนว่าปัญหาของเราคือระบบไคลเอนต์ของเราได้รับการปรับปรุงเพื่อความปลอดภัยใหม่ แต่กล่องเซิร์ฟเวอร์ของเราล้าสมัย ฉันขอแนะนำให้รับการอัปเดตแล้วเปิดการตั้งค่าความปลอดภัยนี้อีกครั้ง


1

ถอนการติดตั้ง:

  • สำหรับ Windows 7 และ 8.1: KB4103718 และ / หรือ KB4093114 
  • สำหรับ Windows 10: เซิร์ฟเวอร์ KB4103721 และ / หรือ KB4103727 โดยไม่มีการอัพเดต 

อัพเดตนี้มีโปรแกรมแก้ไขสำหรับช่องโหว่ CVE-2018-0886 บนเซิร์ฟเวอร์ที่ไม่ได้รับการติดตั้งมันจะเปิดใช้งานหากไม่มี


2
ยินดีต้อนรับสู่ Super User! คุณช่วยอธิบายได้ไหมว่าเพราะเหตุใดการถอนการติดตั้ง KB เหล่านี้จึงช่วยได้
bertieb

coz อัปเดตนี้มีโปรแกรมแก้ไขสำหรับช่องโหว่ CVE-2018-0886, บนเซิร์ฟเวอร์ที่ไม่ใช่โปรแกรมปะแก้ให้คุณเข้าใช้งานได้โดยไม่มีค่าใช้จ่าย
EXPY
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.