Biện pháp khắc phục lỗ hổng Print Spooler "thứ N" trên Windows khi chưa có bản vá

vpn

Well-Known Member
10/09/2019
20
52 bài viết
Biện pháp khắc phục lỗ hổng Print Spooler "thứ N" trên Windows khi chưa có bản vá
Gần đây nhất, Microsoft đã công bố một lỗ hổng mới trên Windows đối với dịch vụ Print Spooler được gán mã "CVE-2021-36958" và hiện tại chưa có bản vá. Thực sự, mình không biết đây là lỗ hổng thứ bao nhiêu đối với dịch vụ này nữa. Vậy nên người dùng có thể khắc phục tạm thời lỗ hổng này với các cách bên dưới đây.

84445087.png

1. Chặn lưu lượng mạng qua các cổng SMB (Server Message Block)
Việc khai thác lỗ hổng này thông qua các cổng SMB để kết nối với một máy in được chia sẻ (shared printer) độc hại. Nếu các kết nối đi đến tài nguyên SMB bị chặn, thì lỗ hổng này có thể được hạn chế đối với các máy in SMB độc hại được lưu trữ ở mạng bên ngoài. Kẻ tấn công mạng cục bộ có thể chia sẻ máy in qua cổng SMB, điều này sẽ không bị ảnh hưởng bởi bất kỳ quy tắc (rule) về lưu lượng SMB nào.

2. Cấu hình PackagePointAndPrintServer và PackagePointAndPrintOnly
Trên Windows có 1 Group Policy (GPO) được gọi là "Package Point and Print - Approved servers" với các giá trị trong registry là HKLM\Software\Policies\Microsoft\Windows NT\Printers\PackagePointAndPrint\PackagePointAndPrintServerListHKLM\Software\Policies\Microsoft\Windows NT\Printers\PackagePointAndPrint\ListofServers. Chính sách này có thể hạn chế người dùng không phải quản trị viên có thể sử dụng máy chủ nào để cài đặt máy in qua Point and Print. Cấu hình chính sách này để ngăn việc cài đặt máy in từ các máy chủ tùy ý.

Để đảm bảo rằng Windows chỉ cố gắng cài đặt máy in Package Point và Print, và do đó hạn chế kết nối máy in với danh sách máy chủ được phê duyệt, bạn cũng phải đặt value HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PackagePointAndPrint thành 1. Cài đặt GPO tương ứng với giá trị này là "Use only Package Point and print". Người dùng hãy mở Group Policy Editor bằng cách chạy dịch vụ gpedit.msc trên hộp thoại Run. Sau đó vào User Configuration > Administrative Templates > Control Panel > Printers > Use only Package Point and print > Edit > Chọn Enabled > Apply. Tương tự cũng Enabled với Package Point and Print - Approved servers

print1.png

3. Chặn khả năng modify thư mục print spooler driver
Có thể hạn chế lỗ hổng này bằng cách ngăn tài khoản SYSTEM có thể sửa đổi các thành phần trong thư mục C:\Windows\System32\spool\drivers.
Để kích hoạt tính năng này, sử dụng đoạn mã PowerShell sau:
Mã:
$Path = "C:\Windows\System32\spool\drivers"
$Acl = (Get-Item $Path).GetAccessControl('Access')
$Ar = New-Object  System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")
$Acl.AddAccessRule($Ar)
Set-Acl $Path $Acl

Để revert lại tính năng trên:
Mã:
$Path = "C:\Windows\System32\spool\drivers"
$Acl = (Get-Item $Path).GetAccessControl('Access')
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("System", "Modify", "ContainerInherit, ObjectInherit", "None", "Deny")
$Acl.RemoveAccessRule($Ar)

Set-Acl $Path $Acl

4. Stop và Disable dịch vụ Print Spooler
Biện pháp này có vẻ "cục súc" nhưng chắc chắn hiệu quả, chỉ đơn giản là vô hiệu hoá dịch vụ Print Spooler với 2 câu lệnh PowerShell ngắn gọn sau:
Mã:
Stop-Service -Name Spooler -Force
Set-Service -Name Spooler -StartupType Disabled

Disable-Print-Spooler-server.jpg


Ref:
1. https://www.kb.cert.org/vuls/id/131152
2. https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-36958
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
hệ thống mình đang dính lỗi mặt dù bảng vá tới tháng 3/2022 mà vẫn dính , lỗi spooler stop . anh e nào có bản vá mới cho mình xin với ?
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
  • Thích
Reactions: tgnd
tgnd
tgnd
Anh bị lỗi stop service Spooler ạ, nếu vậy anh có thể thử chạy powershell quyền admin với command "Set-Service -Name Spooler -StartupType Automatic" và "Start-Service -Name Spooler"
 
vo duc trung
vẫn không hết anh bạn
 
tgnd
tgnd
Anh chạy lệnh "Start-Service -Name Spooler" nó báo gì ạ?
 
Bên trên