
为什么登录脚本是域内渗透的高危暗面ScriptSentry检测的8类威胁全景解读【免费下载链接】ScriptSentryScriptSentry finds misconfigured and dangerous logon scripts.项目地址: https://gitcode.com/gh_mirrors/sc/ScriptSentry登录脚本是域内渗透的高危暗面也是多数防守团队最容易忽视的自动执行入口。开源工具 ScriptSentry 专门用于检测配置不当和危险的 Windows 登录脚本一条 PowerShell 命令即可自动识别登录脚本中的明文口令、SYSVOL 危险权限、失效共享映射和绑定管理员账号等 8 类典型威胁把藏在每日登录流程里的攻击面一次性摊开成可审计的报告。 为什么登录脚本成了域渗透的暗面在 Windows 域环境里登录脚本Logon Script在用户每次登录时自动执行通常由 GPO 指定、存放于 SYSVOL/NETLOGON 共享。它具备三个让攻击者眼红的特性执行时机固定每个用户、每天登录即触发无需任何交互执行身份真实以登录者本人身份运行若用户是管理员等于管理员亲手运行你的代码存放位置集中且常失控SYSVOL、NETLOGON 及脚本映射的共享权限配置一旦过宽任何域用户都可能替换脚本内容。结果就是一次权限疏忽即可换来域级持久化、UAC 绕过、凭据收割与权限维持的完整链条。而这类配置问题常年躺在 AD 里无人审计——这正是暗面的含义。 ScriptSentry 的 8 类威胁检测结果总览ScriptSentry 的核心是一个约 1656 行的 PowerShell 脚本文件项目根目录下的 Invoke-ScriptSentry.ps1运行后输出 8 类检测结果类型映射见 Invoke-ScriptSentry.ps1 中的Show-Results#结果类型Type 字段风险级别一句话解读1ExploitableLogonScript 严重管理员登录脚本映射到不存在的共享可被 NTLM 中继劫持2AdminLogonScript 高管理员账号绑定了登录脚本中招即提权到管理员3Credentials 高登录脚本内含明文口令/凭据4UnsafeNetlogonSysvol 高NETLOGON/SYSVOL 共享存在危险写权限可替换全员脚本5UnsafeGPOLogonScriptPermission 中GPO 指定的登录脚本文件写权限过宽6UnsafeLogonScriptPermission 中SYSVOL 内登录脚本文件写权限过宽7UnsafeUNCFilePermission 中脚本映射的 UNC 文件权限危险8UnsafeUNCFolderPermission / NonexistentShare 中/低脚本映射的 UNC 文件夹权限危险 / 引用已失效共享 检测逻辑主线先收集域内登录脚本 → 再逐一审计其文件权限 → 接着扫描脚本内容找凭据 → 最后核对脚本引用的共享是否还存在、管理员是否被绑定。相关实现散布在 Invoke-ScriptSentry.ps1 的Find-AdminLogonScripts、Find-LogonScriptCredentials、Find-NonexistentShares、Find-UnsafeUNCPermissions等函数中。 最快上手一行命令完成登录脚本安全体检在任意已加入域的 Windows 机器上打开 PowerShell执行Invoke-ScriptSentry结果直接输出到控制台想存档或分发用管道导出文本Invoke-ScriptSentry | Out-File c:\temp\ScriptSentry.txt加上-SaveOutput $true参数后工具会在当前目录按结果类型分别导出 7 份 CSV如Credentials.csv、AdminLogonScripts.csv、UnsafeLogonScriptPermissions.csv等方便用 Excel 做风险台账与整改跟踪导出逻辑见 Invoke-ScriptSentry.ps1。 8 类威胁逐一拆解1. Credentials登录脚本里的明文口令最直接的提权入口登录脚本里出现net use x: \\server\share /user:admin Password123!或ConvertTo-SecureString -AsPlainText这类写法并不罕见。脚本存放在 SYSVOL域用户往往可读——口令跟着脚本一起公开陈列攻击者无需任何利用技巧就能拿到第二个有效凭据。检测逻辑很简单逐行扫描脚本内容匹配/user:与-AsPlainText等凭据特征Invoke-ScriptSentry.ps1命中即连同具体行内容一起报告。修复脚本里坚决不写口令确需认证时改用存储凭据、服务账号或 Kerberos 委派并立即轮换已暴露的口令。2. AdminLogonScript管理员账号为何不该绑定登录脚本如果CNAdministrator或任何组策略管理员账号上挂着scriptPath就意味着这份脚本、以及它所在的共享等于管理员的开机启动项。哪怕脚本本身完全无害一旦被第 6 类风险脚本写权限过宽或第 3 类风险脚本内容藏口令波及管理员下次登录就会自动执行攻击者的代码——这是域内横向移动的终极跳板。检测方式枚举各管理组成员的scriptPath属性Invoke-ScriptSentry.ps1。修复遵循管理员账号不配置登录脚本的基线确需保留的把脚本纳入变更审计内容只放只读、无凭据的最小命令。3. NonexistentShare失效共享是 NTLM 重定向的温床脚本里写死了\\NAS\QUICKBOOKS之类的路径但服务器或共享早已下线——这是企业里极其常见的烂尾配置。攻击者可注册同名主机名或建立同名共享把登录时发起的 SMB 认证重定向到自己控制的主机进而完成 NTLM 中继与本地提权。ScriptSentry 对每个脚本引用的共享做可达性核验Invoke-ScriptSentry.ps1并按受影响用户是否为管理员分为两档普通用户的失效共享标为NonexistentShare管理员受影响的则升级为下一类的严重告警。修复清理脚本中所有失效的net use/Use X:映射清理前先确认这些主机名不会被内部其他系统复用。4. ExploitableLogonScript管理员 失效共享 红色警报这是 8 类结果中风险最高的组合管理员账号的登录脚本映射到了不存在的共享。报告中的Exploitable列会标为Yes并列出受影响管理员的 LDAP 路径——攻击者只要接住一次登录时的 SMB 认证就可通过 NTLM 中继让管理员自愿执行net use实现从普通域用户到域管的直接跳板。看到Exploitable: Yes的条目应当当天处置而不是排进下个迭代。5. UnsafeNetlogonSysvolSYSVOL/NETLOGON 的 Modify 权限就是域级持久化的门票NETLOGON 与 SYSVOL 共享存放着全域的 GPO 和登录脚本。任何账号在这两个共享上拥有FullControl、Modify或Write权限Invoke-ScriptSentry.ps1都能直接替换登录脚本让脚本在下次登录时被全体域用户执行——一次操作换取长期驻留。修复将这两个共享的权限收敛为仅 DC 系统账号与必要运维账号可写Everyone/Authenticated Users保持只读。6. UnsafeLogonScriptPermission / UnsafeGPOLogonScriptPermission脚本文件本身的写权限即使共享整体权限正常单个脚本文件的 ACL 仍可能遗留历史包袱某次交付后Everyone或Domain Users一直保留着Modify权限。GPO 里指定的脚本文件UnsafeGPOLogonScriptPermission与 SYSVOL 目录树中的脚本文件UnsafeLogonScriptPermission都会被逐一核验。修复把脚本文件权限收回给系统 授权运维写权限能删就删同时把脚本目录权限台账列入 GPO 变更流程。7. UnsafeUNCFilePermission / UnsafeUNCFolderPermission脚本映射的 UNC 共享同样要审计登录脚本经常用net use挂载文件服务器。ScriptSentry 会解析脚本中所有 UNC 引用并检查其权限文件级UnsafeUNCFilePermission某个.bat/.vbs对Everyone开放完全控制即可被替换成恶意代码文件夹级UnsafeUNCFolderPermission共享目录写权限过宽可投递文件、植入持久化典型利用面还包括UAC 绕过向系统目录写入脚本诱导高权限用户触发执行。修复按最小权限收敛共享目录 ACL脚本映射路径改为只读挂载。 检测之后怎么改风险分级与修复优先级把 8 类结果按处置时限分级整改效率最高优先级结果类型建议动作 立即24h 内ExploitableLogonScript、UnsafeNetlogonSysvol消除管理员失效共享映射收回 SYSVOL 写权限 本周Credentials、AdminLogonScript、UnsafeGPOLogonScriptPermission清除/轮换脚本凭据解绑管理员脚本或纳入审计 排期整改UnsafeLogonScriptPermission、UnsafeUNC*Permission收敛文件与共享 ACL建立脚本目录台账 常规清理NonexistentShare清理失效映射确认主机名不复用修复思路可概括为**三减一加**减少 SYSVOL 里的脚本数量、减少Everyone/Authenticated Users的写权限、减少管理员账号绑定的脚本再加一张登录脚本权限台账定期复核。✅ 把 ScriptSentry 纳入日常巡检5 步快速检查清单跑一次基线Invoke-ScriptSentry -SaveOutput $true归档 7 份 CSV 作为风险台账底稿先排雷按上文分级优先处置ExploitableLogonScript与 SYSVOL 写权限清内容扫描并移除脚本中的明文凭据同步轮换暴露口令收权限脚本文件、脚本目录、NETLOGON/SYSVOL、脚本引用的 UNC 共享逐层收敛 ACL定节奏每季度固定复跑一次与上次 CSV 对比增量把新出现的危险权限当新增告警处理。整个检测过程只读不写、结果可追溯非常适合写进红蓝对抗复盘与季度合规审计材料。❓ 常见问题 FAQQ1ScriptSentry 能检测哪些登录脚本风险8 类登录脚本明文口令、SYSVOL/NETLOGON 危险权限、GPO 登录脚本危险权限、登录脚本文件/UNC 文件/UNC 文件夹危险权限、失效共享映射以及绑定管理员账号的登录脚本含可被利用的组合告警。Q2如何开始使用登录脚本检测工具在已加入域的 Windows 机器上打开 PowerShell运行Invoke-ScriptSentry即可输出控制台报告加-SaveOutput $true可导出 CSV 便于审计。工具为单文件 PowerShell 脚本无额外依赖。Q3为什么说登录脚本是域内渗透的高危点因为它集中存放 全员自动执行 权限常失控脚本被替换即可域级持久化脚本里的口令可被直接收割失效共享可被 NTLM 中继劫持而管理员账号一旦绑定脚本普通用户就能借其登录实现提权。 写在最后登录脚本的风险从来不在于某个脚本写了什么而在于位置 权限 执行时机的组合它集中存放在 SYSVOL/NETLOGON被每个域用户每天自动执行权限却经常无人看管。ScriptSentry 的价值正是把这条暗面攻击链上的 8 类隐患一次性显性化——先看见才谈得上防住。把 Invoke-ScriptSentry.ps1 加入你的域安全巡检清单让下一次域内渗透评估少一个盲区。【免费下载链接】ScriptSentryScriptSentry finds misconfigured and dangerous logon scripts.项目地址: https://gitcode.com/gh_mirrors/sc/ScriptSentry创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考