在红队行动中,持久化是必不可少的环节。攻击者往往需要在目标系统中寻找一种隐蔽且稳定的方式来确保后续访问权限。常见的持久化手法有注册表启动项、计划任务、服务劫持、Office 模板注入等。但有一个往往被忽视的渠道,那就是 Windows 快捷方式.lnk 文件。
此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。
本文内容部分节选自小报童《.NET 通过LNK 文件实现目标权限持久化》,完整的文章内容请加入小报童后订阅查看。现在限时只需69元,永久买断!目前已有300+位朋友抢先预定。
免责声明:此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。任何未经授权的网络渗透、入侵或对他人网络破坏的活动而造成的直接或间接后果和损失,均由使用者为自身的行为负责并承担全部的法律和连带责任,与本号及作者无关,请务必遵循相关法律法规。本文所提供的工具仅用于学习和本地安全研究和测试,禁止用于其他方面。
Windows Shell是Windows操作系统的图形用户界面,包括桌面、任务栏、文件资源管理器以及其他让用户与文件、文件夹和应用程序进行交互的组件。
2.1 ShellLink
ShellLink类是我们与快捷方式文件交互的入口点。我们来解析一下它的定义, [ComImport] 是最重要的属性。ComImport 属性告诉.NET运行时,这个类不是用C,而是一个外部的COM对象。
[ComImport][Guid("00021401-0000-0000-C000-000000000046")]internalclassShellLink{}
2.2 目标路径
void SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile): 这个方法用于设置目标路径。[MarshalAs(UnmanagedType.LPWStr)]属性指示运行时将托管string转换为非托管函数调用所需的空终止LPWStr,参考代码如下所示。
IShellLink link = (IShellLink)new ShellLink();link.SetPath(@"%SystemRoot%System32cmd.exe");
2.3 IPersistFile
现在,我们已经了解如何通过 IShellLink 接口来设置快捷方式的各种属性,比如目标路径、参数或图标位置。但是,我们如何将这些设置保存到磁盘上的 .lnk 文件中呢?这就是 IPersistFile 接口的用武之地。
IPersistFile file = (IPersistFile)link;string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);file.Save(Path.Combine(desktopPath, "evil.lnk"), false);
第一行是整个操作的关键。link 变量的类型是 IShellLink,它是一个已经创建并配置好的快捷方式对象。我们在这里使用类型转换将 IShellLink 对象转换为 IPersistFile 接口。第二行用于获取当前用户的桌面路径。这是将快捷方式保存到用户桌面的位置。
第三行是将桌面路径和 文件名组合起来,生成一个完整的、有效的快捷方式文件路径。
2.4 实战解析
基于上述原理,红队往往不会手写冗长的 COM 调用代码,而是封装成一个小工具,方便在目标机器上快速生成恶意 LNK。Sharp4Lnk.exe 就是其中的代表。
Sharp4Lnk.exe "cmd.lnk""c:\windows\system32\cmd.exe"
程序首先通过 ShellLink 创建一个快捷方式对象,然后调用 SetPath 方法将其目标设定为 cmd.exe,接着借助 IPersistFile 接口把配置内容保存为 cmd.lnk 文件。
经过这一系列操作,最终在系统中生成的 cmd.lnk,就是一个指向 Windows 命令行程序的快捷方式,如下图所示。
综上,快捷方式(.lnk 文件)看似简单,却是 Windows 生态中一个隐蔽且强大的持久化武器。通过 ShellLink 接口掌控结构,SetPath 方法决定执行流,IPersistFile 负责最终落地,攻击者便能轻而易举地构造出恶意快捷方式。想要了解完整或者更多的内网安全防御绕过方向的文章,可以移步订阅小报童《.NET 内网实战攻防》电子报刊。
以上相关的知识点已收录于新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。
上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。
本次电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。
1) .NET 安全防御绕过2) .NET 本地权限提升3) .NET 内网信息收集4) .NET 内网代理通道5) .NET 内网横向移动6) .NET 目标权限维持7) .NET 数据传输外发8) .NET 目标痕迹清理
原价899,现在限时只需69元,永久买断!目前已有300+位朋友抢先预定,我们会长期更新,初步计划保持每周更新1-2篇新内容,对.NET内网安全的朋友们请尽快订阅该报刊!
每增加五十人涨价10元,抓紧订阅,超值!订阅后请关注公众号:dotNet安全矩阵,发送订单截图和您的微信号,邀请您加入专属交流群。感兴趣的朋友,可以点击链接:https://xiaobot.net/p/dotNetAttack,或者扫描下方海报微信二维码加入即可,订阅后小报童定时会将最新内容通过微信推送给您。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...