探索 Sysnative 路径:一种通过 .NET 启动 cmd.exe 的新方法及其应用场景

Sysnative 路径是Windows操作系统中一个非常有用的特性,它解决了32位应用程序在64位系统中访问系统目录时的路径重定向问题。通过利用这一特性,红队渗透时可以实现一些新的功能和绕过防御,如启动64位CMD等。

01. 相关背景介绍

最近正在看日志目录下的 System.evtx 文件,该文件的绝对地址如下所示,使用Everything发现确实存在。

C:\Windows\System32\winevt\Logs\System.evtx

但是,当用 .NET 默认的 File.Exists 方法去判断时,却得到的结果是false,这个结果显然不符合预期,如下图所示。

接着,将该问题发到dot.Net安全矩阵专属成员群里和朋友们互动,大家大概从权限、被占用、路径等问题去讨论交流,如下图所示。

图片

经过研究后,发现是由于 Windows 系统下的 Sysnative路径造成的。

02. Sysnative路径

Sysnative是一个特殊的虚拟路径,仅在64位Windows操作系统中存在,并且仅对32位应用程序可见。

当32位应用程序尝试访问C:\Windows\Sysnative时,系统会自动将其重定向到实际的64位系统目录C:\Windows\System32。

这一特性使得32位应用程序能够无缝访问64位系统目录中的资源,解决了路径重定向带来的问题。另外,Sysnative 路径在Windows Vista 版本后已默认提供,详情如下图所示。

图片

03. 实战对抗用法

利用Sysnative路径,我们可以实现一种启动CMD的新方法。传统上,32位应用程序启动CMD通常是通过访问 C:\Windows\System32\cmd.exe

实际上会被重定向到C:\Windows\SysWOW64\cmd.exe,即32位CMD,然而,通过指定C:\Windows\Sysnative\cmd.exe,32位应用程序可以成功启动64位CMD。

以下是一个简单的 .NET 代码示例,展示了如何使用 Sysnative 路径启动CMD进程。

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Process.Start("C:\\Windows\\Sysnative\\cmd.exe");
    }
}

这段代码将在64位Windows操作系统上成功启动一个64位的CMD。这对于需要执行64位命令或脚本的32位应用程序来说,是一个非常有用的技巧。

图片

04. 更改IIS运行配置

当32位应用程序尝试访问C:\\Windows\\System32时,实际上会被重定向到C:\\Windows\\SysWOW64,这是因为System32目录包含了64位系统文件,而SysWOW64包含了32位系统文件。

IIS 10可以配置为以32位或64位模式运行应用程序,因此,如果应用程序池配置为 [ 启用32位应用程序 ],则在该池下运行的所有应用程序都将作为32位进程运行,具体的配置如下所示。

图片

如果IIS 10中通过 aspx 调用 C:\\Windows\\Sysnative\\cmd.exe不成功的话,通常与应用程序池的位数配置有关,否则会正常启动,如下图所示。

图片

05. 应用场景讨论

Sysnative路径的这一特性引起了群友们广泛的讨论和关注。开发者们开始探索其在各种场景下的应用,包括但不限于计划任务、LOLBIN、兼容性。

1. 在计划任务中使用Sysnative路径可以确保即使任务是由32位程序触发的,也能执行64位的命令或脚本。

2. 在渗透测试中,攻击者可以利用Sysnative路径绕过某些安全限制,执行系统自带的64位工具。

3. 对于需要在32位和64位系统上同时运行的程序,Sysnative路径提供了一种统一的方式来访问系统目录中的文件。

然而,需要注意的是,Sysnative路径是一个非公开的特性,其未来可用性可能会受到Windows更新的影响。因此,在依赖这一特性时,开发者应谨慎考虑其潜在的风险和不确定性。

 06.星球学习资源

 我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

.NET 免杀WebShell
.NET 反序列化漏洞
.NET 安全防御绕过
.NET 内网信息收集
.NET 本地权限提升
.NET 内网横向移动
.NET 目标权限维持
.NET 数据外发传输

 这些阶段所涉及的工具集不仅代表了当前.NET安全领域的最前沿技术,更是每一位网络安全爱好者不可或缺的实战利器。

文章涉及的工具已打包,请加/入/后下/载:https://wx.zsxq.com/group/51121224455454

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dot.Net安全矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值