首页/安全/应急响应速查/Windows 启动文件夹排查

Windows 启动文件夹排查

启动文件夹分用户级与全局级两处,登录时自动执行;快捷方式的真实 Target、脚本内容与文件签名是快速定性入手点。

应急响应速查安全更新于 2026-10-13

两个启动文件夹

Windows 启动文件夹分用户级与全局级两处,登录时自动执行其中的快捷方式与脚本。快捷方式的真实目标、脚本内容与文件签名,是快速定性的三个入手点。

名称会骗人

恶意快捷方式常命名为 OneDrive、输入法或公司软件:必须展开 TargetPath 与 Arguments 才看得到真实目标,只看文件名必然误判。

基本信息

用户级%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
全局级C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
常见形态.lnk 快捷方式、.bat/.vbs/.ps1 脚本
辅助入口任务管理器启动项、注册表 Run 键
检查要点展开快捷方式目标路径与脚本内容
权限要求查看全局目录与系统备份需管理员

典型使用场景

  • 排查登录后自动执行的异常程序
  • 定位伪装成常用软件的自启项
  • 与 Run 键、计划任务清单交叉核对
  • 清理后验证不再自动执行
  • 复盘时说明启动链覆盖范围

列出启动项并展开目标

列出启动项并展开目标
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup" -Force
Get-ChildItem 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp' -Force
$sh = New-Object -ComObject WScript.Shell
Get-ChildItem "$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup\*.lnk" | ForEach-Object { $sh.CreateShortcut($_.FullName).TargetPath }
Get-ChildItem 'C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\*.lnk' | ForEach-Object { $sh.CreateShortcut($_.FullName) | Select-Object FullName,TargetPath,Arguments }

输出逐列读法

字段含义正常/异常
文件名启动项名称名称合法不代表目标合法
TargetPath快捷方式指向的程序指向临时目录或脚本宿主即为可疑
Arguments启动参数出现下载地址或编码参数需立即跟进
修改时间文件最后改动时间与入侵时间窗对比判断相关性
快捷方式必须展开 TargetPath:恶意样本常伪装成 OneDrive、输入法之类熟悉的名字;同时注意 .bat、.vbs、.ps1 需要直接读内容。
全局目录(ProgramData 下)的启动项对全部用户生效,权限更高,也常被巡检忽略。

启动项之间的相互关联

  • 启动文件夹中的快捷方式可能被计划任务重新创建
  • Run 键与启动文件夹常互为备份,清理要同时进行
  • 同一条目可能在多个用户目录下重复出现
  • 删除前确认目标文件是否被其他自启项引用

清理与验证

  • 把条目与目标文件备份到证据目录
  • 删除条目或移动到隔离目录
  • 重新登录验证不再自动执行
  • 检查其他自启位置是否指向同一程序

易错点

  • 只看文件名:名称合法不代表目标合法
  • 忽略全局目录:ProgramData 下的启动项对所有用户生效
  • 不展开快捷方式:看不到真实目标与参数
  • 清理不备份:后续无法核对与溯源
  • 忽略脚本型启动项:.bat、.vbs、.ps1 的内容需要单独检查

数据来源与参考

  • Microsoft Learn:Startup folder 说明
  • MITRE ATT&CK T1547.001 Registry Run Keys / Startup Folder

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌