AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复 - 教程
AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复
AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复
适用人群:运维/安服/内控/合规/审计。
目标:用最少时间把文件/共享/注册表里“谁可读、谁可写、谁完全控制”盘点清楚,快速发现过度授权与继承异常。
你将收获
- AccessEnum 的定位与优势:快速体检、可视化、零脚本门槛
- 高风险权限模式清单(Everyone/Users 写权限、继承断裂等)
- 一套标准操作流:扫描 → 标记 → 复核 → 修复 → 复测
- 与 AccessChk / icacls / PowerShell 的联动排障与整改模板
1)AccessEnum 是什么(与家族工具对比)
- AccessEnum:GUI 小工具,批量遍历某个起始目录或注册表节点,列出对象对常见内置组(如 Everyone、Users、Authenticated Users、Guests 等)的有效访问级别(读/写/完全控制),用列表视图直观标红可疑项,并可导出结果(文本/CSV)。
- 与 AccessChk 的差异:AccessChk 是命令行,按“特定账户/组”做精确检查,适合脚本与批量;AccessEnum 适合初筛与可视化复核。实战里通常“AccessEnum 列问题,AccessChk 精核对”。
2)典型风险画像(先知道要找谁)
重点不是“能读”而是“能写/能改 ACL/能执行”。下列命中要优先处置:
- Everyone/Users 对业务目录拥有写或完全控制
- 例:
D:\Share\ProjectA出现Everyone:(M/Write/F)
- 例:
- 继承断裂、显式授予过度
- 例:父目录最小权限,子目录手动加了
Authenticated Users:(F)
- 例:父目录最小权限,子目录手动加了
- 注册表关键位点可写(持久化/提权高发地)
- 例:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- 例:
- 应用安装目录可写(可替换 EXE/DLL 劫持)
- 例:
C:\Program Files\Vendor\App\对普通用户有写权
- 例:
- 共享根/公共目录无差别可写
- 例:
\\filesrv\public未做分组隔离与最小授权
- 例:
3)快速上手(5 步走)
- 以管理员运行 AccessEnum(保证能读 ACL 与注册表)
- 选择扫描对象
- Files:选一个盘符/目录(如
D:\Share) - Registry:选
HKLM或HKCU下的关键分支
- Files:选一个盘符/目录(如
- 选择要关注的组(默认就够用;需要时勾选/添加常用组)
- Start 扫描 → 支持排序过滤(优先看包含 Write/Full 的行)
- Save/Export 导出结果(建议 CSV,便于复核与留痕)
小技巧
- 扫描数据盘先于系统盘(噪声更少)。
- 按 Path 排序可快速定位“越权从哪里开始”(看父/子目录对比)。
4)高分操作流(审计到修复闭环)
4.1 初筛(AccessEnum)
- 目标:拉出**“可写/完全控制”**的可疑清单
- 观点:能写 = 能投毒/持久化/勒索,优先级最高
4.2 复核(AccessChk 精核对)
:: 检查某个路径对 Everyone/Users 的有效访问
accesschk -d -o -wv "Everyone" "D:\Share\ProjectA"
accesschk -d -o -wv "Users" "D:\Share\ProjectA"
:: 递归核对(包含目录/文件)
accesschk -d -o -s -wv "Authenticated Users" "D:\Share\ProjectA"
说明:
-d显示拒绝/允许,-o显示拥有者,-w写权限,-v详细,-s递归。
4.3 修复(icacls / PowerShell)
:: 1) 移除 Everyone/Users 写权限(保留读取)
icacls "D:\Share\ProjectA" /remove:g Everyone Users
:: 2) 恢复继承(让子项回归父策略)
icacls "D:\Share\ProjectA" /inheritance:e
:: 3) 明确只读访问(组级最小授权)
icacls "D:\Share\ProjectA" /grant "Domain Users:(RX)"
:: 4) 限定写入给业务组
icacls "D:\Share\ProjectA" /grant "CORP\ProjA-Editors:(M)"
:: 5) 递归应用到子项
icacls "D:\Share\ProjectA" /grant "CORP\ProjA-Editors:(OI)(CI)(M)"
注册表修复(PowerShell)
# 给业务服务账户精确写入,移除 Users 写权限
$path = "HKLM:\Software\Vendor\App"
$acl = Get-Acl $path
$ruleRemove = New-Object System.Security.AccessControl.RegistryAccessRule("Users","SetValue,CreateSubKey","ContainerInherit","None","Allow")
$acl.RemoveAccessRule($ruleRemove) | Out-Null
$ruleAdd = New-Object System.Security.AccessControl.RegistryAccessRule("CORP\AppSvc","ReadKey,SetValue","ContainerInherit","None","Allow")
$acl.AddAccessRule($ruleAdd)
Set-Acl $path $acl
4.4 复测(AccessEnum 回扫)
- 修复后再次扫描同一根路径;
- 变更留痕(CSV 前后对比 + 变更单号 + 执行人)。
5)建议的扫描清单(按周/月例行)
- 共享根:
D:\Share、\\filesrv\public - 应用目录:
C:\Program Files\*、C:\ProgramData\*(第三方尤其要看) - 自研落地目录:
D:\apps\*、D:\data\* - 注册表启动位点:
HKLM\Software\Microsoft\Windows\CurrentVersion\Run*HKCU\Software\Microsoft\Windows\CurrentVersion\Run*HKLM\System\CurrentControlSet\Services\*(服务项)
- 开发/临时区:
D:\temp、C:\temp(强制隔离与定期清理)
6)输出字段怎么读(解读指南)
| 字段 | 含义 | 重点解读 |
|---|---|---|
| Path | 文件/目录/注册表项 | 结合父级对比判断是否“单点放开” |
| Account/Group | 被评估的对象(如 Everyone/Users) | 内置组通常影响面最广 |
| Access | Read / Write / Full Control / Special | Write/Full 最高优先级;Special 需用 AccessChk 精核 |
| Inherited | Yes/No | No 常代表手工改动,重点复核 |
| Owner | 对象所有者 | 所有者可更改 ACL,注意非常规账户 |
7)常见坑 & 排障
- 扫描卡慢/CPU 飙高:路径过大或包含成千上万小文件 → 分层扫描(根→子),排除备份/日志目录。
- 循环链接/联接点:可能重复遍历 → 在根上剔除 reparse point(将联接点改为单独根扫描)。
- 无权读取 ACL:以管理员运行;远程共享需确认 SMB 权限。
- 结果“噪声”多:优先过滤 Write/Full;系统目录可先不扫(或只扫自研/第三方路径)。
- 修完又反弹:CI/CD 或软件升级在部署时重写 ACL → 把 icacls 修复步骤纳入部署后置任务。
8)把 AccessEnum 融入团队流程
- 周扫描:共享与应用目录例行体检,导出 CSV 进制表盘。
- 变更前扫描:上生产前做一次权限审计,避免 Everyone/Users 写入。
- 联合审计:安服/运维/应用负责人三方核对“应当访问的组名单”。
- 整改闭环:每个异常项都要有“谁修、怎么修、何时复测”。
9)速用清单(拿去就跑)
✅ 优先看写/完全控制;读权一般不急
✅ 继承断裂(Inherited=No)要问“为什么”
✅ 应用目录禁止普通用户写
✅ Run*/Services 等注册表位点严控写入
✅ 修复后必须回扫与留痕
10)与其它工具的黄金组合
- AccessEnum:广域可视化初筛
- AccessChk:针对账户/组的准星核对(命令行可脚本化)
- icacls / PowerShell:标准化修复
- ProcMon:当你怀疑“谁在改 ACL/写关键路径”,用事件级追踪定位元凶
下一篇(9.11):ShareEnum——内网共享体检与最小授权落地(把“谁能扫进来、能读写什么”讲清楚)。
浙公网安备 33010602011771号