欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    至頂網軟件頻道消息: 微軟在本周的"補丁星期二"發布的補丁的更新方式中的一個問題導致一些用戶的電腦和服務器出現藍屏、宕機和/或無法重啟。

    微軟針對Windows 10 1703(Windows 10 Creators Update)、Windows 10 1607(Windows 10周年紀念更新)和Windows Server 2016的更新對一些將其作為10月10日的"補丁星期二"更新的一部分進行部署的商業用戶造成了嚴重的破壞。安裝后導致問題的更新是KB4041676和KB4041691。

    造成這個問題的顯然不是補丁本身,而是因為微軟不小心在Windows Server Update Services(WSUS)和System Center Configuration Manager(系統中心配置管理器)中同時發布了Cumulative更新(累計更新)和Delta更新(增量更新),因此兩者可能同時被安裝到機器上,從而引發這個問題。由于微軟不會將Delta更新(增量更新)發布到Microsoft Update(微軟更新),因此如果用戶不使用WSUS和Configuration Manager(配置管理器)的話,這個問題就不會影響到他們。

    正如微軟在其docs.com網站上的一篇文章中解釋的那樣,"如果您同意并部署相同版本的Delta(增量)和Cumulative(累積)更新,則不僅會生成額外的網絡流量--因為它們都將下載到PC,而且你在重啟計算機后可能無法重新啟動Windows。"

    受到影響的用戶可以采取一些步驟讓系統再次運行,微軟在docs.com網站上的這篇文章中詳細介紹了這些步驟。

    另一個網站:DeploymentBunny.com為那些同時使用了Cumulative(累積)和Delta(增量)更新之后無法重新啟動的用戶提供了一些其他選擇。WorkingHardinIT.Work逐步使用DISM(部署映像服務和管理命令行工具)來刪除更新。

    用戶應該只使用Cumulative Updates(累積更新),而不要使用Delta更新(增量更新)??蛻魬撉宄齏SUS上的緩存,這樣Delta更新就不會出現了。

    我已經向微軟詢問有哪些人受到了影響以及該公司建議用戶還要采取哪些其他的步驟等信息。作為回應,該公司的一名發言人發了以下聲明:

    "有些客戶可能會在Windows Server Update Services(WSUS)部署了KB 4041676和KB 4041691后遇到的問題,這個問題已經解決了。絕大多數客戶接收到的Windows和Microsoft Update更新并沒有受到影響。"


    銀雁冰·獵影實驗室

    0x01 背景

    隨著Windows平臺的幾大主流瀏覽器(Chrome, Edge, IE)和文字處理軟件(Office, Adobe Reader)相繼引入沙箱機制,Windows內核提權漏洞的需求也隨之上升。在這個背景下,近幾年披露的Windows內核提權0day攻擊事件也居于高位。下表展示了2017年-2021年(至今)全球范圍內披露的Windows內核提權在野0day編號及對應的披露廠商,從表中可以直觀地感受到上述現象。

    統計

    披露年份

    CVE編號

    漏洞模塊

    披露廠商

    2

    2017

    CVE-2017-0005

    win32k

    Lockheed Martin

    2017

    CVE-2017-0263

    win32k

    FireEye, ESET

    4

    2018

    CVE-2018-8120

    win32k

    ESET

    2018

    CVE-2018-8453

    win32k

    Kaspersky

    2018

    CVE-2018-8589

    win32k

    Kaspersky

    2018

    CVE-2018-8611

    nt/tm

    Kaspersky

    6

    2019

    CVE-2019-0797

    win32k

    Kaspersky

    2019

    CVE-2019-0803

    win32k

    Alibaba

    2019

    CVE-2019-0808

    win32k

    Google

    2019

    CVE-2019-0859

    win32k

    Kaspersky

    2019

    CVE-2019-1132

    win32k

    ESET

    2019

    CVE-2019-1458

    win32k

    Kaspersky

    3

    2020

    CVE-2020-0938

    atmfd

    Google

    2020

    CVE-2020-1027

    sxssrv

    Google

    2020

    CVE-2020-17087

    cng

    Google

    1(截止3月)

    2021

    CVE-2021-1732

    win32k

    DBAPPSecurity(安恒信息)

    這些Windows內核提權零日漏洞成本高昂,因此其背后一般都是水平高超或實力雄厚的APT組織。對威脅情報部門來說,如何有效狩獵這些在野的Windows內核提權漏洞樣本已經變為一個需要深入思考的問題。

    關于這個問題,Kaspersky作為Windows內核提權0day狩獵方面的先行者,已經公開分享過一些他們在這方面的經驗;CheckPoint在最近半年也分享了3篇關于內核提權樣本狩獵的研究文章,非常值得學習(對這些資料的引用將會列舉在本文的最后,供讀者參考)。

    本文將分享安恒威脅情報中心獵影實驗室在這方面的一些思考,討論側重點為內存破壞類內核提權漏洞,這一塊我們尚處在摸索階段,不足之處敬請斧正。

    0x02 內存破壞類內核提權漏洞

    內存破壞類內核提權漏洞一般由C/C++語言的不安全操作引發,最為常見的是win32k組件中由于Callback機制導致的UAF漏洞。

    為什么win32k組件容易出問題?

    為什么win32k組件中的UAF漏洞這么多?這要從Windows NT的設計歷史說起。在Windows操作系統設計初期,win32k子系統是在用戶態的(實線的上半部分),如下:

    但從Windows NT4開始,這部分代碼被移到了內核態(實線的下半部分),內核態新增了一個win32k.sys模塊:

    上述重新設計引入了如下3個不安全因素:

    1. 新的系統調用 (1100+ syscalls)
    2. 用戶模式回調 (User-mode Callback)
    3. 用戶態和內核態之間的共享數據 (Shared data)

    重新設計后,上述3點都可能引發新的安全漏洞,Windows內核團隊也意識到了這幾點,所以針對性地進行了加固,但安全研究人員還是不斷從中找出安全漏洞。

    在2011年Blackhat USA大會上,Tarjei Mandt公開了他對Win32k User-Mode Callback機制的研究成果,從此大量研究人員開始關注win32k模塊中的User-Mode Callback攻擊面,并發現了許多新的win32k模塊UAF漏洞。

    0x03 如何狩獵內核提權利用樣本

    有過漏洞研究基礎的同學都知道,一個典型的漏洞利用過程大概有這幾個環節:

    • 觸發漏洞
    • 堆噴射(非必需)
    • 信息泄露
    • 構造讀寫原語
    • 代碼執行

    我們可以從上述每一個階段入手,分別思考一下每一階段潛在的一些狩獵點。

    觸發漏洞階段

    靜態層面,首先,我們可以檢查PE文件的導入表中是否導入了user32.dll中的下面幾個函數,因為大部分win32k漏洞利用都需要創建窗口或菜單:

    • CreateWindowExA / CreateWindowExW
    • RegisterClassExA / RegisterClassExW
    • DestroyWindow
    • CreateMenu
    • CreatePopupMenu

    其次,Win32k User-Mode Callback漏洞一定存在Hook回調表的操作,這是一個可疑行為(64位樣本會存在和下面很像的一個代碼片段):

    mov rax, gs:[60h]

    lea rax, [rax+58h]

    mov rax, [rax]

    ret

    動態層面,對于UAF漏洞和部分越界讀寫漏洞,可以通過開啟Driver Virifier進行檢測,UAF漏洞樣本在開啟Driver Virifier的環境中會觸發藍屏異常,判定0day最簡單的標準就是:

    • 全補丁環境藍屏 = 0day

    當然,有一些內存破壞類內核提權漏洞無法通過Driver Virifier檢測到,一個典型例子就是我們捕獲的CVE-2021-1732。

    堆噴射階段(非必須)

    堆噴射階段變化比較多,可以創建多個Windows或多個Bitmaps,例如CVE-2018-8453的在野利用;也可以創建多個加速表(CreateAcceleratorTable),例如CVE-2017-8465的開源利用代碼;也可以創建多個tagCLS結構,比如《LPE vulnerabilities exploitation on Windows 10 Anniversary Update》這個PPT第36頁提出的方法。

    信息泄露階段

    關于Windows內核信息泄露技巧,Github上有一個項目(項目地址列舉在文末)總結得較為完整。項目中有一張表格,該表格詳細列出了Windows內核信息泄露的各種技巧,并且通過不同的圖標展示了這些技巧在各版本Windows操作系統中的可用性。

    這張表格只將操作系統寫到Windows 1703(Redstone 2),但僅根據表格內信息我們也可發現:只有HMValidateHandle這一技巧一直穩定存在(從1803開始也進行了緩解)。

    靜態層面,我們可以通過查找HMValidateHandle的代碼特征來發現內核信息泄露的線索。以下是一段查找HMValidateHandle的典型代碼,如果在靜態分析時遇到類似代碼片段,就應值得留意:

    PVOID find_HMValidateHandle(PVOID pIsMenu)

    {

    ULONG HMValidateHandleAddr = 0;

    while (TRUE)

    {

    if (*(BYTE*)pIsMenu == 0xE8)

    {

    HMValidateHandleAddr = *(DWORD*)((ULONG)pIsMenu + 1);

    HMValidateHandleAddr += (ULONG)pIsMenu + 0x05 - 0x100000000;

    return (PVOID)HMValidateHandleAddr;

    }

    pIsMenu = (BYTE*)pIsMenu + 1;

    }

    return 0;

    }

    動態分析層面,由于HMValidateHandle是一個未導出函數,系統在正常調用這個函數時,對其調用的地址來自user32.dll內部;但當這個函數被用于信息泄露時,對其調用的地址位于漏洞利用模塊,這個地址并不位于user32.dll模塊。我們可以借助這一原理進行運行時檢測:將來自user32.dll外的對HMValidateHandle的調用標記為可疑行為并記錄。這方面已經有國外的研究員做了樣例,一并列舉在文末。

    構造讀寫原語階段

    在Windows內核利用的歷史中,相繼有操作tagWND,Bitmap,Palette,Menu等相關結構體的API登場,發展到現在,已經公開且還沒有被完全緩解的任意地址讀寫原語輔助函數已經只剩SetWindowLong*系列函數和Menu相關函數,所以查看導入表中是否有user32.dll中的下面幾個函數是一種思路:

    • SetWindowLongA / SetWindowLongW
    • SetWindowLongPtrA / SetWindowLongPtrW
    • GetMenuItemRect / SetMenuItemInfo
    • GetMenuBarInfo (CVE-2021-1732在野利用中首次發現)

    除了上述API,早期版本的一些利用代碼還可以包括下面這些導入函數:

    • GetBitmapBits / SetBitmapBits / CreateCompatibleBitmap / CreateBitmapIndirect / CreateDiscardableBitmap / CreateDIBitmap
    • GetPaletteEntries / SetPaletteEntries
    • SetWindowTextA / SetWindowTextW / InternalGetWindowText
    • NtUserDefSetText

    代碼執行階段

    對于Windows內核提權漏洞而言,其主要目的是為了提升權限,而提升權限的主要手法就是進行Token替換,因此可以通過以下幾個特征點進行檢查:

    • 在實現任意地址讀寫原語后,是否有借助泄露的內核地址進行結構查找的操作,例如遍歷EPROCESS鏈
    • 在合適的時間點(如當前進程退出前)檢查當前的進程的Token是否已被替換為其他高權限進程(例如System進程)的Token,或者查看當前進程創建的子進程的Token是否為System權限

    0x04 Windows內核漏洞利用攻防史

    Windows內核團隊和漏洞緩解團隊一直致力于減少Windows內核的漏洞&利用攻擊面,簡單了解Windows系統中的內核安全攻防時間線有助于我們對Windows內核利用歷史的了解和對Windows內核利用趨勢的預測,這些對狩獵都有幫助。

    Windows 7

    • KASLR
      • 需要額外的內核信息泄露來繞過KASLR
      • 繞過方式:https[:]//github.com/sam-b/windows_kernel_address_leaks

    Windows 8.1

    • SMEP (Supervisor Mode Execution Prevention)
      • 需要處理器支持(2011年引入), CR4寄存器的第20位作為開關
      • 當CPU處于Ring0模式時,如果執行了Ring3的代碼,就會觸發頁錯誤
      • 繞過方式:CVE-2015-2360 Duqu 2.0在野利用樣本
    • 禁止使用0地址頁
      • 之前的內核空指針引用漏洞利用方式:申請0地址,借助0地址進行任意地址讀寫
      • 之后的內核空指針引用漏洞利用:0地址頁無法申請,無法完成利用,例如CVE-2018-8120不能在Windows 8及以上版本進行利用

    Windows 10 1607 (Redstone 1)

    • 提升Bypass KASLR的難度
      • 將GDI_CELL結構的pKernelAddress成員置為空,通過GdiSharedHandleTable進行內核信息泄露的方式被緩解
    • 緩解通過SetWindowText操縱tagWND.strName進行任意內核地址讀寫的利用方式
      • 限制tagWND.strName指針只能指向桌面堆 (緩解CVE-2015-2360和CVE-2016-7255這兩個漏洞的在野利用方式)
    • 將字體解析模塊拆為獨立組件,并將其權限限制為AppContainer
      • 緩解win32k字體解析類提權漏洞,限制這類漏洞利用過程中的文件讀寫(緩解CVE-2016-7256和CVE-2020-0938這些字體漏洞的在Windows 10上的利用)

    Windows 10 1703 (Redstone 2)

    • 提升Bypass KASLR的難度
      • 緩解通過gSharedInfo進行pvScan0內核指針信息泄露的方式
      • 緩解通過桌面堆進行內核信息泄露的方式:Win32ClientInfo結構體內的ulClientDelta指針被移除,無法再通過ulClientDelta進行內核信息泄露
    • 緩解借助tagWND構造任意地址讀寫原語的方式
      • SetWindowLongPtr操作的ExtraBytes內存指針被移到用戶態,無法再借助它對tagWND.strName進行修改
    • 緩解借助Bitmap進行利用的方式
      • Bitmap對象頭部大小增加了8字節

    Windows 10 1709 (Redstone 3)

    • Win32k Type Isolation for Bitmap:將Bitmap header與Bitmap data分開
      • 進一步緩解借助Bitmap對象構造任意地址讀寫原語的方式
    • 繞過方式:借助Palette對象構造任意地址讀寫原語,參考《Demystifying Windows Kernel Exploitation by Abusing GDI Objects》

    Windows 10 1803 (Redstone 4)

    • Win32k Type Isolation for Palette
      • 緩解借助Palette對象構造任意地址讀寫原語的方式
    • 繞過Type Isolation緩解措施的提權樣本:CVE-2018-8453在野利用樣本,具體細節參考《Overview of the latest Windows OS kernel exploits found in the wild》
    • 緩解通過HMValidateHandle進行內核信息泄露的方式
      • 通過HMValidateHandle泄露的內核tagWND副本中,相關指針值不復存在

    Windows 10 1809 (Redstone 5)

    • 繼續提升Bypass KASLR的難度
    • 創建多個桌面堆,對相關API進行大幅修改
    • 繞過方式:用一種新的方式泄漏并計算包含內核模式指針的對象的絕對地址,可參考《DEVELOPMENT OF A NEW WINDOWS 10 KASLR BYPASS (IN ONE WINDBG COMMAND)》這篇文章

    Windows 10 1903

    • 進一步緩解內核漏洞利用的攻擊面
      • 繞過方式:CVE-2021-1732在野利用樣本,借助spmenu進行內核信息泄露,借助GetMenuBarInfo/SetWindowLong函數實現任意地址讀寫,可在最新版Windows 20H2系統上完成利用

    0x05 主流瀏覽器與win32k漏洞的攻防史

    Chrome/Edge(Chromium-based)

    • Win32k Lockdown
      • Chrome于2016年首先引入,在Chrome+Windows 8.1及以上環境中禁止調用win32k模塊的API
      • 繞過方式:采用win32k模塊以外的內核漏洞,例如CVE-2018-8611和CVE-2020-17087這類在野利用樣本

    Edge(Chakra)

    • Win32k System Call Filter
      • Windows 8.1開始支持
      • 限制對部分win32k API進行調用:在RS3中Edge可以調用349個win32k API;而在RS4中,Edge能調用的win32k API數量減少為78個,所有GDI對象都無法在Edge中創建
      • 繞過方式:使用那些沒有被過濾的win32k API的漏洞,例如DirectX漏洞,可以參考《Subverting Direct X Kernel For Gaining Remote System》

    0x06 Windows內核提權漏洞趨勢預測

    1. Windows 10上的內核漏洞挖掘難度也許變化不大,但利用難度已經變得非常大
    2. 主流瀏覽器/文檔處理軟件相繼引入Sandbox機制,APT組織對沙箱逃逸/提權漏洞的需求會越來越大
    3. 傳統的win32k組件內核提權漏洞逐漸被主流瀏覽器拒之門外
    4. 非win32k模塊內核提權漏洞的需求在APT市場上會繼續增加,但成本會越來越高,類似CVE-2018-8611這種高度復雜漏洞利用接下來還會出現
    5. 邏輯類提權漏洞的數量會稍有增加(作為內存破壞類漏洞的替代品)
    6. 瀏覽器自身組件的沙箱逃逸漏洞數量也會增加,這類漏洞是瀏覽器自己的漏洞,但也可以實現沙箱逃,可以從Low提權到Medium,比如Chrome Mojo組件的沙箱逃逸漏洞和Windows打印機提權漏洞

    更多內容請前往微信公眾號:安恒威脅情報中心

    安恒威脅情報中心介紹

    安恒威脅情報中心匯聚了海量威脅情報,支持多點渠道數據輸入,支持自動情報數據產出,能實現網絡安全的高效賦能。平臺使用者可通過自定義策略進行威脅監控、威脅狩獵,并對輸入數據進行自動化的生產加工,同時支持人工分析團隊對情報進行復核整理。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有