ShareEnum 学习笔记(9.5):内网共享体检——开放共享、匿名访问与权限风险

ShareEnum 学习笔记(9.5):内网共享体检------开放共享、匿名访问与权限风险

ShareEnum 学习笔记(9.5):内网共享体检------开放共享、匿名访问与权限风险

适用读者 :域管/运维/安全/合规;需要快速盘点 局域网/域内的文件共享权限暴露 ,发现"人人可写 ""匿名可读 "等高危点并闭环整改。
一句话ShareEnum 用 GUI 扫描内网主机的 SMB 共享与访问权限 ,帮你一眼识别 Everyone/Anonymous读写风险,生成清单便于审计与修复。


1)工具定位与亮点

  • 零代理、解压即用:适合临时体检与应急盘点。
  • 一键扫描域/工作组/子网:自动发现计算机 → 读取其共享与 ACL。
  • 风险着色 :将 可写/匿名访问 的共享高亮,直达问题点。
  • 导出报表:CSV/文本留证,方便与整改单匹配核销。

与 9.4 的 AccessEnum 不同:ShareEnum 关注"主机层面的共享暴露面 ",是外向 视角;AccessEnum 是对本地路径/注册表/服务内向细查。两者联用="发现入口 → 下钻验证"。


2)工作原理(通俗版)

  • 通过 SMB/RPC 枚举主机的共享(net share 等同级接口):
    • 常见内置共享:ADMIN$C$IPC$(默认受控,不是重点)
    • 业务/自建共享:\\HOST\ShareName(重点)
  • 读取共享的 DACL / 访问权限 ,归纳主体与权限级别:
    • 主体:Everyone / Authenticated Users / Users / Anonymous / Guests / 具体组/用户
    • 权限:Read / Change(Write) / Full
  • 输出主机---共享---路径---权限矩阵并标注风险。

3)3 分钟上手:一次标准扫描

  1. 启动 ShareEnum(建议"以管理员身份"运行)。
  2. 选择范围 :域/工作组,或直接输入 IP 段/主机列表
  3. 凭据
    • 已登录账户具备查询权限即可;跨域/工作组可先 runas /netonly 或映射凭据。
  4. 开始扫描:等待结果加载。
  5. 导出:保存 CSV,交由安全/合规跟进整改。

小贴士 :大网段请分批 ,优先扫服务器 OU文件服务器终端金库等高价值资产,缩短首轮出清时间。


4)结果判读:五类"红线"与优先级

从高到低建议排查顺序:

  1. 可写共享(Change/Full)授予 Everyone/Authenticated Users/Users
    • 影响:任意域内用户可落点木马/篡改脚本/掉包 EXE → 快速横向。
  2. Anonymous(匿名)可读/可写
    • 影响:未认证访问即可读数据或写入植入物,常见于历史兼容或误配。
  3. Guests 可访问(读/写)
  4. 共享指向可写目录 (即使共享 ACL 严格,底层 NTFS ACL 若放开仍有风险)
  5. 继承/特例混乱:同一台主机共享策略不一致、临时共享遗留。

矩阵速查(示例):

Host Share Path Principal Permission 风险判断
FS01 公共资料 D:\Share\Public Everyone Change (人人可写)
FS02 Reports E:\Data\Rpt Anonymous Read (匿名可读)
APP01 Deploy C:\Deploy Users Read
FILE03 HR D:\HR HR-Group Change 低(业务最小)

5)和 NTFS 权限的"交叉验证"

  • 共享权限NTFS ACL 共同决定最终权限
    • 访问权限 = 共享权限 ∩ NTFS 权限
  • ShareEnum 看到的是共享层面的"门槛",最终生效还需看目标路径的 NTFS。
  • 实操建议:对标记为"有写入风险"的共享,用 AccessChk/AccessEnum 下钻核实 NTFS ACL。

快速核查命令(本地/远程)

bat 复制代码
:: 查看共享列表(本机)
net share

:: 查看共享对应路径的 NTFS ACL(本机示例)
icacls "D:\Share\Public"

:: 远程(具备权限时,可用 PowerShell 会话)
Invoke-Command -ComputerName FS01 -ScriptBlock { net share; icacls "D:\Share\Public" }

6)PowerShell:多主机共享枚举脚本(可直接用)

powershell 复制代码
$hosts = @("FS01","FS02","APP01")
$creds = Get-Credential   # 跨域/工作组时建议显式凭据

$results = foreach ($h in $hosts) {
  try {
    $shares = Invoke-Command -ComputerName $h -Credential $creds -ScriptBlock {
      Get-SmbShare | Where-Object {$_.Name -notin 'ADMIN$','C$','IPC$'} |
        ForEach-Object {
          $acc = (Get-SmbShareAccess -Name $_.Name | Select-Object AccountName, AccessRight)
          [PSCustomObject]@{
            Host = $env:COMPUTERNAME
            Share = $_.Name
            Path  = $_.Path
            Access = ($acc | ForEach-Object { "$($_.AccountName):$($_.AccessRight)" }) -join "; "
          }
        }
    }
    $shares
  } catch {
    [PSCustomObject]@{ Host=$h; Share='(error)'; Path=''; Access=$_.Exception.Message }
  }
}

$results | Format-Table -AutoSize
$results | Export-Csv .\shareenum_report.csv -NoTypeInformation -Encoding UTF8

Get-SmbShare/Get-SmbShareAccess 适用于 Win8+/Server 2012+ ;更老系统可回退 wmic share/net share + WMI/CIM。


7)整改策略与命令模板(先备份、分批回滚)

原则

  • 共享权限:默认 Read ;严禁将 Change/Full 授予 Everyone/Authenticated Users/Users
  • 写入需求:创建专用业务组授予最小权限;不使用宽泛大组。
  • 禁止匿名访问/访客。禁止 SMBv1,强制 SMB 签名(按合规策略执行)。

备份共享定义(脚本/文档化)

bat 复制代码
net share > \\fileserver\audit\share_backup_%COMPUTERNAME%.txt

快速调降共享权限(示例)

建议使用 GUI/组策略/配置管理统一执行;命令行示意如下:

powershell 复制代码
# 将共享权限收紧为只读(示例:移除 Everyone 写入)
Revoke-SmbShareAccess -Name "公共资料" -AccountName "Everyone" -Force -Confirm:$false
Grant-SmbShareAccess  -Name "公共资料" -AccountName "Domain Users" -AccessRight Read -Force

关闭匿名相关策略(本地策略/GPO 更佳)

  • 计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项:
    • 网络访问:不允许匿名枚举 SAM 帐户
    • 网络访问:不允许匿名枚举 SAM 帐户和共享
    • 网络访问:让 Everyone 权限应用于匿名用户(禁用)
  • 同步禁用 SMBv1 、启用/要求 SMB 签名(按域策略与兼容性评估执行)。

8)与其他 Sysinternals 的"组合拳"

  • ShareEnum → AccessEnum/AccessChk :发现可疑共享 → 下钻NTFS ACL
  • ShareEnum → Sysmon/Log :对重要共享开启访问日志(文件服务器/EDR),可关联可疑源主机与时间线。
  • ShareEnum → PsExec/PsService:批量下发脚本、重启相关服务、刷新策略。

9)性能与稳定性建议

  • 分批次/分 OU 扫描,优先服务器与重要部门。
  • 对网络质量一般的分支,采用就近跳板扫描,减少超时。
  • 结果分级归档:高危(当日闭环)/中危(周内)/低危(月内)+ 复查计划。
  • 建立基线 :将"健康共享清单"固化,后续只看差异新增

10)标准操作流程(SOP)

  1. 启动 ShareEnum ,按域/子网范围快速枚举
  2. 导出 CSV,按"主体=Everyone/Anonymous/Guests权限包含 Change/Full"过滤;
  3. 抽样下钻 AccessChk/AccessEnum 核实 NTFS;
  4. 编制整改单:收回广泛写入 、创建业务组禁匿名/禁 SMBv1/启签名
  5. 变更前备份共享定义与 ACL,分批执行,留痕;
  6. 复扫验证 ,更新基线,纳入月度/季度巡检。

结语

ShareEnum 是"找问题"的显微镜,能在极短时间里把内网共享的暴露面 拉到你眼前。把它与 AccessEnum/AccessChk 、PowerShell 脚本、以及 GPO/CMDB/EDR 联动起来,你就具备了:发现 → 论证 → 变更 → 复核 → 基线化 的完整闭环。

下一篇,我们继续进入 ShellRunAs(9.6)最小权限特权分离场景下,如何"临时提权而不是永久提权"。

相关推荐
wang_yb2 小时前
告别盲人摸象,数据分析的抽样方法总结
大数据·databook
泽虞2 小时前
《STM32单片机开发》p7
笔记·stm32·单片机·嵌入式硬件
brave and determined2 小时前
接口通讯学习(day05):智能手机的内部高速公路:揭秘MIPI CSI与DSI技术
学习·智能手机·软件工程·制造·csi·mipi·dsi
dalalajjl2 小时前
每个Python开发者都应该试试知道创宇AiPy!工作效率提升500%的秘密武器
大数据·人工智能
FakeOccupational2 小时前
电路笔记(信号):网线能传多少米?网线信号传输距离
开发语言·笔记·php
Tonya436 小时前
测开学习DAY37
学习
2501_9416233211 小时前
人工智能赋能智慧农业互联网应用:智能种植、农业数据分析与产量优化实践探索》
大数据·人工智能
YangYang9YangYan12 小时前
网络安全专业职业能力认证发展路径指南
大数据·人工智能·安全·web安全