亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

發布時間:2021-12-22 23:16:08 來源:億速云 閱讀:135 作者:柒染 欄目:安全技術

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

前言

2018年6月,國外安全研究人員公開了利用Windows 10下才被引入的新文件類型“.SettingContent-ms”執行任意命令的攻擊技巧,并公開了POC(詳見參考[1])。而該新型攻擊方式被公開后就立刻被黑客和APT組織納入攻擊武器庫用于針對性攻擊,并衍生出各種利用方式:誘導執行、利用Office文檔執行、利用PDF文檔執行。

2018年8月14日,微軟發布了針對該缺陷的系統補丁,對應的漏洞編號為:CVE-2018-8414。360威脅情報中心在該攻擊技術公開的第一時間便密切跟蹤相關的在野攻擊樣本,由于漏洞相關的技術細節和驗證程序已經公開,且漏洞已被微軟修復。因此,360威脅情報中心發布針對該漏洞的分析以及跟蹤到的在野攻擊分析,提醒用戶采取應對措施。

360威脅情報中心云沙箱第一時間支持該特殊文件格式的檢測和惡意行為的識別,由于文件格式為XML,且此類攻擊只針對Windows 10,所以大多數沙箱并不支持對此惡意文件的檢測。以下為360云沙箱對此類惡意樣本的檢測結果:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

CVE-2018-8414漏洞分析

漏洞成因

Windows 10下執行.SettingContent-ms后綴的文件,系統并未判斷該類文件所在的路徑是否在控制面板相關目錄下,便直接執行了文件中用于控制面板設置相關的DeepLink標簽指定的任意程序,導致用戶執行系統任意目錄下的此類文件或者從網絡上下載的經過精心設計的.SettingContent-ms文件也會直接執行其中指定的惡意程序對象,導致任意代碼執行。

SettingContent-ms介紹

SettingContent-ms是Windows 10中引入的新文件類型,主要用于創建Windows設置頁面的快捷方式,相關文件后綴即為.SettingContent-ms。表面上看SettingContent-ms只是一個XML文件,正常的SettingContent-ms文件內容如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

SettingContent-ms文件包含DeepLink標簽,比如我們在Windows 10上雙擊打開一個指向任務管理器的SettingContent-ms文件,則會執行DeepLink標簽中指定的對象:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

可以看到Windows10下有大量默認的SettingContent-ms文件及其包含的DeepLink標簽:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

不幸的是,如果攻擊者將SettingContent-ms文件中DeepLink標記指向其它惡意程序或者可以執行的腳本代碼(比如PowerShell),并誘導用戶在Windows 10下執行該文件,或者通過其它載體(Office、PDF)執行該文件,都可能執行惡意代碼從而導致電腦被控制。

并且通過瀏覽器超鏈接或者直接從Internet下載/執行SettingContent-ms文件,由于該文件不在SmartScreen攔截范圍內,執行過程中也不會出現安全提示,大大增加了這類攻擊的風險。

360威脅情報中心針對該漏洞以及未被SmartScreen攔截的原因進行了分析,并進一步分析了微軟補丁的修復方式,過程如下。

SettingContent-ms執行任意命令漏洞分析

雙擊執行一個SettingContent-ms文件后系統會調用windows.storage.dll模塊的函數CBindAndInvokeStaticVerb::Execute執行:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

在該函數中將調用一系列檢查函數,諸如EDP(Enterprise Data Protection)保護(見參考[3]):

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

隨后將調用SmartScreen過濾器:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

其中,windows_storage!CBindAndInvokeStaticVerb::CheckSmartScreen函數會首先調用windows_storage!CBindAndInvokeStaticVerb::ShouldInvokeSmartScreen函數檢查是否需要調用SmartScreen進行保護,如下圖:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

然后調用windows_storage!CBindAndInvokeStaticVerb::ZoneCheckFile函數進行Zone.Identifier檢查:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

其函數內部其實是調用windows.storage!ZoneCheckUrlExW函數進行Zone.Identifier檢查:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

繼續跟進windows.storage!ZoneCheckUrlExW函數,最后定位到關鍵函數urlmon!GetZoneFromAlternateDataStreamEx,該函數讀取Zone.Identifier文件中的ZoneId:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

隨后調用_GetZoneTrust函數轉換ZoneId得到另一種ID,ZoneId等于3時轉換后的ID為1,然后一路返回:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

由于ZoneId此處為3,即URLZONE_INTERNET,標記該文件是從網絡下載,所以需要使用SmartScreen篩選器過濾:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

隨后將調用SafeOpenPromptForShellExec函數,如果執行的文件是被標記為從網絡下載(URLZONE_INTERNET),且該文件后綴為SmartScreen篩選器黑名單內的文件,那么將會看到以下彈窗,問詢用戶是否執行該文件:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

而SettingContent-ms文件通過了windows_storage!CBindAndInvokeStaticVerb::CheckSmartScreen函數檢查后則會調用windows_storage!CBindAndInvokeStaticVerb::_TryExecuteCommandHandler函數執行該文件:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

函數內部調用CBindAndInvokeStaticVerb::_DoCommand,該函數通過一些查詢操作,獲取SettingContent-ms處理接口,然后調用該接口執行SettingContent-ms文件,最終執行shell32!CExecuteAppIDAndActivationContext::Execute函數:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

shell32!CExecuteAppIDAndActivationContext::Execute又會調用shell32!CExecuteAppIDAndActivationContext::_ExecuteSettingActivationContext函數,在該函數中會調用GetPCSettingsPathForCurrentUserGetPCSettingsFilePath獲取當前用戶控制面板設置目錄和系統控制面板設置目錄,然后與需要執行的SettingContent-ms文件所在目錄進行比較,而“漏洞”就出現在這里,按理這類控制面板相關的“快捷方式”文件應該只允許在控制面板相關的目錄內執行DeepLink標簽中指定的命令,而此處僅僅做了比較,而沒有對比較后的結果進行相應處理,導致該文件在Windows10任意目錄下都會執行SettingContent-ms文件指定的任意命令,導致“漏洞”產生:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

最后根據PCSetting::HostID的值調用相應函數執行DeepLink標簽中的命令:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

未被SmartScreen攔截

我們通過瀏覽器超鏈接或者直接從Internet下載/執行SettingContent-ms文件,下載的文件雖然被標記為ZoneId=3(URLZONE_INTERNET),但在執行過程中并不會出現安全提示,這大大增加了這類攻擊的風險。360威脅情報中心分析后發現,原來SettingContent-ms后綴的文件并未被包含在SmartScreen篩選器的風險文件后綴列表中,分析過程如下:

前面分析的判斷文件是否為風險文件的函數SafeOpenPromptForShellExec將依次調用shlwapi!AssocIsDangerous->shlwapi!AssocGetUrlAction->shlwapi!_AssocIsDangerous->shlwapi!IsTypeInList

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

wapi!IsTypeInList函數將查詢黑名單,黑名單列表有100個,而其中沒有包含.SettingContent-ms類型文件,所以當執行網絡上下載的.SettingContent-ms文件時不會被SmartScreen攔截:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

缺陷利用

攻擊者可將精心構造的SettingContent-ms文件(如在DeepLink標簽中指定執行帶惡意參數的程序PowerShell等)發送給受害者并誘導其打開,也可以將惡意SettingContent-ms文件插入到Office、PDF等文檔中誘騙受害者打開,最終執行DeepLink標簽中指定的惡意代碼。

補丁分析

微軟發布的補丁程序對執行路徑做了判斷,只有在“%AppData%\Local\Packages\windows.immersivecontrolpanel_cw5n1h3txyewy\LocalState\Indexed\Settings\[GetUserPreferredUILanguages]”或““%WinDir%\immersivecontrolpanel\settings”子目錄內打開SettingContent-ms后綴文件才能進入執行控制面板設置分支執行命令。以下是補丁前后的代碼對比圖:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

PathComparePaths函數的兩個參數分別傳入兩個路徑,用于判別第二個參數是否是第一個參數的子目錄,如果不是子目錄則返回1或2,同8相與結果為0;如果是子目錄返回8或12,同8相與結果為8。以下是函數實現:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

兩次調用PathComparePaths后將結果與8相與,以達到判斷是否是子目錄的目的,如果是子目錄iResult賦值為0,否則賦值為0x80070005(-2147024891<0),最終通過判斷有符號整形iResult來決定是否執行命令。

我們在打上補丁的環境中將PoC拷貝至“%AppData%\Local\Packages\windows.immersivecontrolpanel_cw5n1h3txyewy\LocalState\Indexed\Settings\en-US”目錄則能正常執行PoC。

在野攻擊樣本分析

360威脅情報中心云沙箱第一時間支持對該類攻擊樣本的檢測,并通過360云沙箱檢測到大量用于實際攻擊的SettingContent-ms樣本,這里列舉一些利用該漏洞進行在野攻擊的典型案例進行分析。

疑似摩訶草APT組織使用的攻擊樣本

Md5:cef9671085c0b23293826ebfc608326c

對應的樣本如下,通過PowerShell直接下載樣本再運行:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

對應的CC地址:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Payload為Cobalt Strike生成的樣本

Md5:964af724370dacbdb73958cbab63b822

該.SettingContent-ms文件中調用了PowerShell,解密后如下:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

隨后訪問46.101.141.96并下載一個名為Disgdp的文件執行:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Disgdp文件同樣為一個PowerShell腳本,如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

和第一層樣本不同,該樣本通過gzip進行了壓縮,解壓后如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

樣本的主要功能為通過PowerShell在內存中加載var_code運行,之后再運行var_code返回的結果var_buffer:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

而var_code本身為一段ShellCode,用于和CC通信,并下載最終的惡意樣本:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

下載的Payload(ShellCode)如下:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

該ShellCode實際上是由CobaltStrike生成的樣本,偏移0的位置為對應的解密算法:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

對應的數據格式如下:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

解密后的Loader如下,通過ReflectivLoader的方式在內存中加載DllEntryPoint:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

進入DllEntryPoint后通過XOR 0x69解碼加密的config:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

解密前的config:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

解密后如下所示,CC同樣還是46.101.141.96這個IP:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

利用PDF文檔執行的惡意樣本

Md5(1):3ee36ec66cd8bfc540b80d2eb9a2face

Md5(2):57a50b3c473d20f9791c17ad5d2512aa

攻擊者將惡意.SettingContent-ms文件嵌入到PDF文檔中:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

打開惡意PDF文檔后提示是否執行內嵌的SettingContent-ms文件,一旦用戶允許執行,則會無任何提示執行SettingContent-ms文件中內置的惡意代碼:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

投遞帶有正常數字簽名木馬的樣本

Md5:2f7cec0f91a5fd23d706dc53a82b2db7

該樣本同樣將SettingContent-ms包含到PDF文件中進行投遞:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Stage1

下載執行的樣本通過正常的簽名進行簽發,簽名為DIGI MICROSERVICE LIMITED:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

編譯時間如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

樣本運行之后檢測殺軟進程是否開啟:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

檢測是否有調試:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

之后從資源中獲取第二階段的樣本,并通過XOR進行解密:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

判斷PE頭,并加載:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Stage2

第二階段的樣本沒有進行數字簽名:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Fun_GetfunAddress通過傳入的參數和HASH動態返回API地址:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

檢測系統環境是否有ammyy木馬的相關痕跡,并刪除:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

鏈接http://169.239.129.117/Yjdfel765Hs,下載第三階段樣本,并通過RC4解密,秘鑰為aaf0c0db4863f,之后寫入到wsus中運行:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Stage3

第三階段的樣本如下所示,同樣通過證書簽名:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

可以看到對應的ammyy字符串,表明這是一個開源的惡意代碼:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

CC為:185.99.132.119:443

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

對應的開源軟件鏈接如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Darkhydrus 團伙用于投遞DNS隧道通信的攻擊樣本

Md5:9dd647d509a3306cb11dbdb3cd8968cc

該樣本會到http://micrrosoft.net/winupdate.ps1下載一個ps1文件執行:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

下載的PS如下所示,內置的代碼通過Base64,gzip壓縮:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

解碼后如下所示,內置了8個DNS:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

對沙箱虛擬機環境進行檢測:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

之后釋放名為OneDrive.ps1、OneDrive.bat、OneDrive.lnk的三個文件,OneDrive.lnk釋放在啟動目錄下,加載BAT文件,BAT文件啟動ps1:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

對應的Lnk文件如下所示:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Bat腳本如下:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

之后獲取環境相關信息:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

樣本的一大亮點在于和CC的通信使用了DNS隧道,如下所示通過nslookup發起的DNS請求:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

Quary被封裝到split函數中:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

如下所示樣本包含的其他相關的功能,如文件管理、SHELL、PowerShell模塊插件安裝、截屏等:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

有意思的是樣本投遞的域名http://micrrosoft.net/winupdate.ps1在幾天之后paloaltonetworks披露的darkhydrus團伙中被用于iqy的投遞攻擊:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

通過wmic加載遠程list文件的攻擊樣本

Md5:624ed71872fe7dc5fa952c5cfd49e46b

該樣本如下所示,DeepLink字段中通過wmic osget /format的形式加載一個遠程的list文件:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

list是githubgist上的一個測試腳本,通過js運行一個CMD:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

分享的人為caseysmithrc,目前看來這只是一個測試樣本:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

經過測試確實通過該方式能啟動運行CMD:

SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的

雖然只是測試樣本,但是不排除之后會被大范圍使用。

總結及安全建議

企業用戶可以通過禁止郵件附件攜帶.SettingContent-ms類型的附件接收,盡量不要點擊打開來源不明的以及不常見的文件。用戶側需要盡快升級對應的補丁程序:

https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-8414。

關于SettingContent-ms文件任意代碼執行漏洞及攻擊分析是怎樣的問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ms
AI

灵石县| 彭泽县| 遵义县| 绵阳市| 靖宇县| 宁远县| 合阳县| 奉贤区| 霞浦县| 朝阳市| 铁岭县| 镇远县| 利辛县| 康马县| 阳高县| 比如县| 扬中市| 广水市| 博白县| 吐鲁番市| 稷山县| 十堰市| 江津市| 柏乡县| 泰来县| 信阳市| 鄂州市| 怀远县| 阳信县| 怀宁县| 莱阳市| 扎赉特旗| 武清区| 会泽县| 汤原县| 安新县| 桑日县| 鹤山市| 乡宁县| 得荣县| 辽阳市|