AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复 - 教程

AccessEnum 学习笔记(9.10):一键盘点“谁能访问什么”——文件/注册表权限体检与修复

适用人群:运维/安服/内控/合规/审计。
目标:用最少时间把文件/共享/注册表里“谁可读、谁可写、谁完全控制”盘点清楚,快速发现过度授权继承异常


你将收获

  • AccessEnum 的定位与优势:快速体检、可视化、零脚本门槛
  • 高风险权限模式清单(Everyone/Users 写权限、继承断裂等)
  • 一套标准操作流:扫描 → 标记 → 复核 → 修复 → 复测
  • AccessChk / icacls / PowerShell 的联动排障与整改模板

1)AccessEnum 是什么(与家族工具对比)

  • AccessEnum:GUI 小工具,批量遍历某个起始目录或注册表节点,列出对象对常见内置组(如 EveryoneUsersAuthenticated UsersGuests 等)的有效访问级别(读/写/完全控制),用列表视图直观标红可疑项,并可导出结果(文本/CSV)。
  • 与 AccessChk 的差异:AccessChk 是命令行,按“特定账户/组”做精确检查,适合脚本与批量;AccessEnum 适合初筛与可视化复核。实战里通常“AccessEnum 列问题,AccessChk 精核对”。

2)典型风险画像(先知道要找谁)

重点不是“能读”而是“能写/能改 ACL/能执行”。下列命中要优先处置:

  1. Everyone/Users 对业务目录拥有写或完全控制
    • 例:D:\Share\ProjectA 出现 Everyone:(M/Write/F)
  2. 继承断裂、显式授予过度
    • 例:父目录最小权限,子目录手动加了 Authenticated Users:(F)
  3. 注册表关键位点可写(持久化/提权高发地)
    • 例:HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  4. 应用安装目录可写(可替换 EXE/DLL 劫持)
    • 例:C:\Program Files\Vendor\App\ 对普通用户有写权
  5. 共享根/公共目录无差别可写
    • 例:\\filesrv\public 未做分组隔离与最小授权

3)快速上手(5 步走)

  1. 以管理员运行 AccessEnum(保证能读 ACL 与注册表)
  2. 选择扫描对象
    • Files:选一个盘符/目录(如 D:\Share
    • Registry:选 HKLMHKCU 下的关键分支
  3. 选择要关注的组(默认就够用;需要时勾选/添加常用组)
  4. Start 扫描 → 支持排序过滤(优先看包含 Write/Full 的行)
  5. 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:\tempC:\temp(强制隔离与定期清理)

6)输出字段怎么读(解读指南)

字段含义重点解读
Path文件/目录/注册表项结合父级对比判断是否“单点放开”
Account/Group被评估的对象(如 Everyone/Users)内置组通常影响面最广
AccessRead / Write / Full Control / SpecialWrite/Full 最高优先级;Special 需用 AccessChk 精核
InheritedYes/NoNo 常代表手工改动,重点复核
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——内网共享体检与最小授权落地(把“谁能扫进来、能读写什么”讲清楚)。

posted on 2026-01-01 22:44  ljbguanli  阅读(0)  评论(0)    收藏  举报