《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > 微軟發(fā)布PrintNightmare漏洞補(bǔ)丁,但并未完全起到保護(hù)

微軟發(fā)布PrintNightmare漏洞補(bǔ)丁,但并未完全起到保護(hù)

2021-07-10
來(lái)源:嘶吼專業(yè)版
關(guān)鍵詞: 微軟 漏洞補(bǔ)丁

  微軟7號(hào)發(fā)布了PrintNightmare的安全漏洞補(bǔ)丁,PrintNightmare漏洞的CVE編號(hào)為CVE-2021-1675和CVE-2021-34527。這是Windows打印假脫機(jī)程序中的一個(gè)嚴(yán)重漏洞,微軟將其評(píng)為關(guān)鍵漏洞。在Microsoft為其發(fā)布補(bǔ)丁之前,漏洞利用代碼已在公共領(lǐng)域泄漏。微軟建議系統(tǒng)管理員在補(bǔ)丁可用之前禁用Print Spooler服務(wù)。當(dāng)Windows Print Spooler服務(wù)錯(cuò)誤地執(zhí)行特權(quán)文件操作時(shí),遠(yuǎn)程代碼執(zhí)行漏洞就會(huì)出現(xiàn)。由于 Windows Print Spooler 服務(wù)在Windows上默認(rèn)運(yùn)行,微軟不得不為 Windows Server 2019、Windows Server 2012 R2、Windows Server 2008、Windows 8.1、Windows RT 8.1 以及 Windows 10 的各種支持版本發(fā)布補(bǔ)丁。

  微軟表示:“2021年7月6日及之后發(fā)布的安全更新包含對(duì)Windows Print Spooler服務(wù)中名為PrintNightmare的遠(yuǎn)程代碼執(zhí)行漏洞的保護(hù),記錄在CVE-2021-34527以及CVE-2021-1675中。我們建議用戶立即安裝這些更新。”

  該漏洞是微軟近年來(lái)面臨的一個(gè)較為嚴(yán)重的問(wèn)題,因?yàn)槲④浬踔翞閃indows 7也發(fā)布了補(bǔ)丁,而早在2020年1月14日微軟就已經(jīng)終止了對(duì)Windows 7的技術(shù)支持。雖然漏洞發(fā)布了,但PrintNightmare漏洞所帶來(lái)的影響尚未完全結(jié)束,因?yàn)槟承┌姹镜腤indows補(bǔ)丁尚未發(fā)布。據(jù)了解,Windows 10版本1607、Windows Server 2016和Windows Server 2012的更新尚不可用。這些Windows版本的安全更新或?qū)⒃诮诎l(fā)布。

  CVE-2021-1675和CVE-2021-34527(也稱為PrintNightmare)的技術(shù)分析

  具有普通用戶帳戶的攻擊者可以利用這兩個(gè)漏洞來(lái)控制運(yùn)行Windows Print Spooler服務(wù)的易受攻擊的服務(wù)器或客戶端機(jī)器。該服務(wù)在所有Windows客戶機(jī)和服務(wù)器(包括域控制器)上默認(rèn)啟用。

  HEUR:Exploit.Win32.CVE-2021-1675.*

  HEUR:Exploit.Win32.CVE-2021-34527.*

  HEUR:Exploit.MSIL.CVE-2021-34527.*

  HEUR:Exploit.Script.CVE-2021-34527.*

  HEUR:Trojan-Dropper.Win32.Pegazus.gen

  PDM:Exploit.Win32.Generic

  PDM:Trojan.Win32.Generic

  Exploit.Win32.CVE-2021-1675.*

  Exploit.Win64.CVE-2021-1675.*

  卡巴斯基的安全檢測(cè)工具檢測(cè)邏輯也成功阻止了來(lái)自最新 Mimikatz 框架 v. 2.2.0-20210707 的攻擊技術(shù)。

  目前卡巴斯基正在密切監(jiān)控這些情況,并使用行為檢測(cè)和漏洞利用防護(hù)組件改進(jìn)對(duì)這些漏洞的通用檢測(cè)。作為托管檢測(cè)和響應(yīng)服務(wù)的一部分,卡巴斯基 SOC 專家能夠檢測(cè)對(duì)這些漏洞的利用、調(diào)查此類攻擊并向客戶報(bào)告。

  CVE-2021-34527

  當(dāng)使用 RPC 協(xié)議添加新打印機(jī)(RpcAsyncAddPrinterDriver [MS-PAR] 或 RpcAddPrinterDriverEx [MS-RPRN])時(shí),客戶端必須向 Print Spooler 服務(wù)提供多個(gè)參數(shù):

  pDataFile——此打印機(jī)的數(shù)據(jù)文件的路徑;

  pConfigFile—— 此打印機(jī)的配置文件的路徑;

  pDriverPath——此打印機(jī)在工作時(shí)使用的驅(qū)動(dòng)程序文件的路徑;

  該服務(wù)進(jìn)行了多次檢查以確保 pDataFile 和 pDriverPath 不是 UNC 路徑,但是沒(méi)有對(duì) pConfigFile 進(jìn)行相應(yīng)的檢查,這意味著該服務(wù)會(huì)將配置 DLL 復(fù)制到文件夾 %SYSTEMROOT%\system32\spool\drivers\x64\3\ (在 x64 版本的操作系統(tǒng)上)。

  現(xiàn)在,如果 Windows Print Spooler 服務(wù)嘗試再次添加打印機(jī),但這次將 pDataFile 設(shè)置為復(fù)制的 DLL 路徑(來(lái)自上一步),則打印服務(wù)將加載此 DLL,因?yàn)樗穆窂讲皇?UNC 路徑,并且檢查將成功通過(guò)。這些方法可由低權(quán)限帳戶使用,并且 DLL 由 NT AUTHORITY\SYSTEM 組進(jìn)程加載。

  CVE-2021-1675

  PrintNightmare 的本地版本使用與 CVE-2021-34527 相同的方法進(jìn)行漏洞利用,但入口點(diǎn)函數(shù)(AddPrinterDriverEx)有所不同,這意味著攻擊者可以將惡意 DLL 放在任何本地可訪問(wèn)的目錄中以運(yùn)行漏洞利用。

  緩解措施

  卡巴斯基的專家們預(yù)計(jì),試圖獲取公司內(nèi)部資源的黑客攻擊將會(huì)越來(lái)越多,同時(shí)還存在著感染勒索軟件和竊取數(shù)據(jù)的高風(fēng)險(xiǎn)。

  因此,強(qiáng)烈建議你遵循微軟的指導(dǎo)方針,應(yīng)用最新的Windows安全更新。

微信圖片_20210710130250.jpg

  雖然漏洞發(fā)布了,但PrintNightmare漏洞所帶來(lái)的影響尚未完全結(jié)束,PrintNightmare是Windows打印假脫機(jī)程序中的一個(gè)漏洞,它是由AddPrinterDriverEx()、RpcAddPrinterDriver()和RpcAsyncAddPrinterDriver()用于安裝本地或遠(yuǎn)程打印機(jī)驅(qū)動(dòng)程序的Windows API函數(shù)中缺少ACL(訪問(wèn)控制列表)檢查引起的。

  這些函數(shù)都可以通過(guò)不同的Windows API 使用,如下所示:

  AddPrinterDriverEx (SDK)

  RpcAddPrinterDriver (MS-RPRN)

  RpcAsyncAddPrinterDriver (MS-PAR)

  使用 PrintNightmare,可以繞過(guò)權(quán)限檢查,將惡意 DLL 安裝到 C:\Windows\System32\spool\drivers 文件夾中,然后利用漏洞將其作為打印驅(qū)動(dòng)程序加載,以實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行或本地權(quán)限提升。

  當(dāng)測(cè)試是否允許將文件安裝到具有SYSTEM權(quán)限的文件夾中時(shí),API將用戶提供的參數(shù)作為權(quán)限檢查的一部分。

  這與文件夾上的ACL無(wú)關(guān),它是軟件SDK內(nèi)部的一個(gè)檢查,可以通過(guò)API調(diào)用為函數(shù)提供額外的參數(shù)來(lái)繞過(guò)它。

  為了利用該漏洞,攻擊者可以通過(guò) RPC 或 LRPC 將請(qǐng)求直接發(fā)送到本地服務(wù)。雖然微軟的 OOB 補(bǔ)丁專注于阻止遠(yuǎn)程利用漏洞,但 Hickey 表示他們沒(méi)有解決底層 ACL 檢查問(wèn)題,允許創(chuàng)建修改后的漏洞利用。微軟最近發(fā)布的補(bǔ)丁專注于解決 RCE 漏洞利用向量,似乎解決了普遍存在的 PoC,但是你也可以通過(guò) LRPC 和本地 API 來(lái)實(shí)現(xiàn)這一點(diǎn),具體取決于主機(jī)和環(huán)境,看來(lái)補(bǔ)丁確實(shí)沒(méi)有正確解決 ACL 檢查中的潛在問(wèn)題,這允許在完全修補(bǔ)的主機(jī)上仍然利用 LPE。

  另外,在更新發(fā)布后,CERT/CC 漏洞分析師 Will Dormann 警告說(shuō),該補(bǔ)丁似乎只解決了 PrintNightmare 的遠(yuǎn)程代碼執(zhí)行(通過(guò) SMB 和 RPC 的 RCE)變體,而不是本地提權(quán)(LPE)變體,因此允許攻擊者濫用后者以獲取易受攻擊系統(tǒng)的 SYSTEM 權(quán)限。

  現(xiàn)在,對(duì)更新補(bǔ)丁的進(jìn)一步測(cè)試表明,針對(duì)該漏洞的利用可以完全繞過(guò)補(bǔ)救措施,從而獲得本地權(quán)限提升和遠(yuǎn)程代碼執(zhí)行。但是,要實(shí)現(xiàn)這一點(diǎn),必須啟用名為“Point and Print限制”的 Windows 策略(計(jì)算機(jī)配置\策略\管理模板\打印機(jī):Point and Print限制),該策略可能用于安裝惡意打印機(jī)驅(qū)動(dòng)程序。請(qǐng)注意,針對(duì) CVE-2021-34527 的 Microsoft 更新并不能有效防止對(duì) Point and Print NoWarningNoElevationOnInstall 設(shè)置為 1 的系統(tǒng)的利用。就微軟而言,它在其公告中解釋說(shuō),Point and Print 與此漏洞沒(méi)有直接關(guān)系,但該技術(shù)削弱了本地安全態(tài)勢(shì),從而使漏洞利用成為可能。

  雖然 Microsoft 已推薦停止和禁用 Print Spooler 服務(wù)的核心選項(xiàng),但另一種解決方法是啟用Point and Print的安全提示,并通過(guò)配置“RestrictDriverInstallationToAdministrators”注冊(cè)表值來(lái)將打印機(jī)驅(qū)動(dòng)程序安裝權(quán)限限制給管理員,以防止普通用戶在打印服務(wù)器上安裝打印機(jī)驅(qū)動(dòng)程序。

  關(guān)于如何安裝這些帶外安全更新的詳細(xì)步驟,請(qǐng)參閱以下鏈接的支持文檔:

  Windows 10,版本21H1 (KB5004945)

  Windows 10,版本20H1 (KB5004945)

  Windows 10,版本2004 (KB5004945)

  Windows 10 1909版本(KB5004946)

  Windows 10,版本1809和Windows Server 2019 (KB5004947)

  Windows 10,版本1803 (KB5004949)

  Windows 10,版本1607和Windows Server 2016 (KB5004948)

  Windows 10,版本1507 (KB5004950)

  Windows Server 2012 (Monthly Rollup KB5004956 / Security only KB5004960)

  Windows 8.1和Windows Server 2012 R2 (Monthly Rollup KB5004954 / Security only KB5004958)

  Windows 7 SP1、Windows Server 2008 R2 SP1 (Monthly Rollup KB5004953 / Security only KB5004951)

  Windows Server 2008 SP2 (Monthly Rollup KB5004955 / Security only KB5004959)

  除了立即在所有受支持的 Windows 客戶端和服務(wù)器操作系統(tǒng)上安裝此更新外,你還可以選擇配置 RestrictDriverInstallationToAdministrators 注冊(cè)表設(shè)置,以防止非管理員在打印服務(wù)器上安裝已簽名的打印機(jī)驅(qū)動(dòng)程序。有關(guān)詳細(xì)信息,請(qǐng)參閱 KB5005010。

  根據(jù) Mimikatz 的創(chuàng)建者 Benjamin Delpy 的說(shuō)法,當(dāng)啟用Point and Print策略時(shí),可以繞過(guò)補(bǔ)丁來(lái)實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。

  要繞過(guò) PrintNightmare 補(bǔ)丁并實(shí)現(xiàn) RCE 和 LPE,必須啟用名為“Point and Print限制”的 Windows 策略,并將“為新連接安裝驅(qū)動(dòng)程序時(shí)”設(shè)置配置為“在提升提示時(shí)不顯示警告”。

微信圖片_20210710130257.jpg

  Point and Print限制政策

  此策略位于計(jì)算機(jī)配置 > 管理模板 > 打印機(jī) > Point and Print限制下。

  啟用后,“NoWarningNoElevationOnInstall”值將在 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint 項(xiàng)下設(shè)置為 1。

  Benjamin Delpy 仍建議管理員和用戶先暫時(shí)禁用 Print Spooler 服務(wù)以保護(hù)他們的 Windows 服務(wù)器和工作站,直到新的補(bǔ)丁發(fā)布。0patch 還為 PrintNightmare 發(fā)布了一個(gè)免費(fèi)的微補(bǔ)丁https://www.bleepingcomputer.com/news/security/actively-exploited-printnightmare-zero-day-gets-unofficial-patch/,迄今為止已經(jīng)能夠阻止利用該漏洞的所有嘗試。

  但是,Benjamin Delpy警告不要安裝微軟 7 月 6 日的補(bǔ)丁,因?yàn)樗粌H不能防止漏洞,而且會(huì)修改“l(fā)ocalspl.dll”文件,因此 0Patch 的補(bǔ)丁不再有效。

  建議 Windows 用戶和管理員執(zhí)行以下操作之一:

  1.在微軟發(fā)布工作補(bǔ)丁之前,不要安裝 7 月 6 日的補(bǔ)丁,而是安裝 0Patch 的微補(bǔ)丁。

  2.使用此處的說(shuō)明禁用打印后臺(tái)處理程序。

  微軟表示,如果調(diào)查表明他們發(fā)布的補(bǔ)丁存在問(wèn)題,他們將采取適當(dāng)措施保護(hù)客戶。




電子技術(shù)圖片.png

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。