Sherlock是纯PowerShell编写的轻量级提权漏洞检测工具,可快速识别MS10-015至MS16-135等12+种Windows本地权限提升漏洞,支持一键扫描、文件版本检测和模块化扩展。
powershell 本身不是漏洞扫描器,但它能调用系统原生工具、读取安全配置、检查服务状态、导出策略信息,并运行像 sherlock 这类专为 windows 设计的 powershell 漏洞检测脚本。关键在于组合命令与可信脚本,而不是依赖单一命令。
运行 Sherlock 检测本地提权漏洞
Sherlock 是轻量、免安装、纯 PowerShell 的开源脚本,专注识别已知 Windows 提权路径(如 AlwaysInstallElevated、不安全的服务权限、令牌窃取条件等)。
- 从 GitHub 下载
Sherlock.ps1(确保来源可信,例如官方仓库PowerShellMafia/PowerSploit衍生项目) - 以管理员身份启动 PowerShell,执行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
(允许本地脚本运行) - 进入脚本所在目录,运行:
.\Sherlock.ps1 -ShowAll
或仅检查高风险项:.\Sherlock.ps1 -CheckAll -OutFile sherlock_report.txt
检查基础安全配置状态
很多漏洞源于配置疏漏,PowerShell 可快速验证关键项是否启用或合规。
Windows 命令行编码与兼容规范。涵盖 GBK/UTF-8 编码、PowerShell/pwsh 互操作、Python/Node.js、Git 配置及代码生成规则。适用于 Windows 10/11 + MSYS2/Git Bash 环境下的所有命令行操作。
- 查看 RDP 是否开启且未限制访问:
Get-ItemProperty 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections | Select-Object fDenyTSConnections
返回0表示已启用,需确认是否设置了网络级别身份验证(NLA) - 检查防火墙是否启用并有默认规则:
Get-NetFirewallProfile | Select-Object Name,Enabled - 列出所有自动启动但非微软签名的服务:
Get-Service | Where-Object {$_.StartType -eq 'Automatic' -and $_.Status -eq 'Running'} | ForEach-Object { $svc = $_; try { Get-AuthenticodeSignature $svc.PathName } catch {} } | Where-Object {$_.Status -ne 'Valid'}
导出并分析本地安全策略
本地组策略(尤其是安全选项)直接影响系统抗攻击能力,如密码复杂度、账户锁定阈值、审核策略等。
- 导出当前本地安全策略到文本文件:
secedit /export /cfg C:\temp\secpol.cfg /quiet - 用 PowerShell 读取并筛选高风险项,例如空密码允许登录:
Select-String -Path C:\temp\secpol.cfg -Pattern "EnableGuestAccount|PasswordComplexity|MaximumPasswordAge" - 检查审核策略是否启用关键事件(如特权使用、账户登录):
auditpol /get /category:* | findstr "Success.*Failure"
结合 Defender 扫描与日志分析
恶意软件常是漏洞利用的入口或结果,配合防病毒扫描和日志可形成闭环验证。
- 触发一次完整 Defender 扫描:
Start-MpScan -ScanType FullScan - 查询最近 50 条安全日志中的失败登录或特权提升事件:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625,4670,4688} -MaxEvents 50 | Where-Object {$_.LevelDisplayName -eq 'Information' -or $_.LevelDisplayName -eq 'Warning'} - 查看 Defender 实时保护是否启用:
Get-MpComputerStatus | Select-Object RealtimeProtectionEnabled, AMServiceEnabled, AntivirusEnabled

















