01阅读须知
此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。
02基本介绍
本文内容部分节选自小报童《.NET 通过伪造文件时间戳实现痕迹清理》,完整的文章内容请加入小报童后订阅查看。现在限时只需59元,永久买断!目前已有300+位朋友抢先预定,我们会长期更新,对.NET内网安全的朋友们请尽快订阅该报刊!
03原理分析
Sysnative 路径是Windows操作系统中一个非常有用的特性,解决了32位应用程序在64位系统中访问系统目录时的路径重定向问题。通过利用这一特性,红队渗透时可以实现一些新的功能和绕过防御,如启动64位CMD等。
3.1 基本介绍
CreateFile 函数通常用于在 Windows 系统中创建或打开文件、设备或管道。该函数从 kernel32.dll 库中导入.NET,具体函数的声明如下所示。
[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr CreateFile(
string lpFileName, // 文件路径
int dwDesiredAccess, // 访问权限
int dwShareMode, // 共享模式
IntPtr securityAttrs, // 安全属性
int dwCreationDisposition, // 创建方式
int dwFlagsAndAttributes, // 文件属性
IntPtr hTemplateFile // 模板文件句柄
);
在 Windows API 中,CreateFile 函数不仅用于创建文件,也可以用于打开现有文件并返回文件句柄,以便后续进行读写操作。具体的例子如下,通过使用 CreateFile 函数打开一个已存在的文件,并获取文件句柄。
class Program
{
[DllImport("kernel32.dll", SetLastError = true)]
public static extern IntPtr CreateFile(
string lpFileName,
int dwDesiredAccess,
int dwShareMode,
IntPtr securityAttrs,
int dwCreationDisposition,
int dwFlagsAndAttributes,
IntPtr hTemplateFile);