Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PowerHuntShares — 审计 Active Directory SMB 共享,以盘点、分析和报告过度权限。发现可访问系统,枚举共享 ACL,识别高风险配置,并生成 HTML/CSV 报告以进行修复优先级排序。 | Kitploit
工具/GitHubGitHub/netspi/powerhuntshares
漏洞分析配置审计信息收集网络安全渗透测试
GitHubnetspi/powerhuntshares

PowerHuntShares

审计 Active Directory SMB 共享,以盘点、分析和报告过度权限。发现可访问系统,枚举共享 ACL,识别高风险配置,并生成 HTML/CSV 报告以进行修复优先级排序。

查看仓库
1.0k115210个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PowerHuntShares v2

PowerHuntShares 是一个 PowerShell 工具,旨在帮助网络安全团队和渗透测试人员更好地识别、理解、攻击和修复其保护的 Active Directory 环境中的 SMB 共享。每个黑客都有滥用 SMB 共享的故事,但网络安全团队仍然难以防御这一攻击面。该项目旨在提供一个开源的概念验证工具,用于创建全面的共享清单,利用统计、图表、图形和语言模型来情境化共享、总结关系、评估风险并优先修复。

它支持以下功能:

  • 认证:使用当前用户上下文、凭据或明文用户/密码。
  • 发现:自动发现与 Active Directory 域关联的可访问系统。它还会根据开放的端口过滤 Active Directory 计算机。
  • 定位:针对单台计算机、计算机列表或发现的 Active Directory 计算机(默认)。
  • 收集:使用 PowerShell 从目标计算机收集 SMB 共享 ACL 信息。
  • 分析:分析收集到的共享 ACL 数据。
  • 报告:以 HTML 和 CSV 文件格式生成摘要报告和过度权限详情。

额外功能:

  • 独立 LLM 函数:https://github.com/NetSPI/PowerHuntShares/blob/main/Scripts/Invoke-FingerPrintShare.ps1
  • 独立密码解析器:https://github.com/NetSPI/PowerHuntShares/tree/main/Scripts/ConfigParsers

PowerHuntShares v2 资源:

  • v2 博客:https://www.netspi.com/blog/technical-blog/network-pentesting/powerhuntshares-2-0-release/

PowerHuntShares v1 资源:

  • v1 博客:https://www.netspi.com/blog/technical/network-penetration-testing/network-share-permissions-powerhuntshares/
  • v1 演示视频:https://www.youtube.com/watch?v=TtwyQchCz6E
  • v1 演示幻灯片:https://github.com/NetSPI/PowerHuntShares/blob/main/Presentations/SO-CON_2025_Sutherland_Hunting_SMB_Shares_Final.pdf

词汇表

PowerHuntShares 会盘点配置了“过度权限”的 SMB 共享 ACL,并突出显示“高风险”ACL。以下是它们在此上下文中的定义。

过度权限
过度读取和写入共享权限定义为任何包含针对“Everyone”、“Authenticated Users”、“BUILTIN\Users”、“Domain Users”或“Domain Computers”组的显式 ACE(访问控制条目)的网络共享 ACL。由于权限继承问题,所有这些都允许域用户访问受影响的共享。请注意,有一个参数允许操作员添加自己的目标组。
以下是一些额外背景:

  • Everyone 是一个直接引用,适用于未经身份验证和经过身份验证的用户。通常只需要空会话即可访问这些资源。
  • BUILTIN\Users 包含 Authenticated Users
  • Authenticated Users 包含域加入系统上的 Domain Users。这就是为什么当共享权限分配给“BUILTIN\Users”时,Domain Users 可以访问共享。
  • Domain Users 是一个直接引用
  • Domain Users 默认可以创建最多 10 个计算机账户,这些账户会被放入 Domain Computers 组
  • 对域加入计算机具有本地管理访问权限的 Domain Users 也可以模拟计算机账户。

请注意:共享权限可能被 NTFS 权限覆盖。另外,请注意测试排除了包含以下关键字的共享名称:

root@kitploit:~
print$, prnproc$, printer, netlogon, and sysvol

高风险共享
在本报告的上下文中,高风险共享定义为允许未经授权远程访问系统或应用程序的共享。 默认情况下,这包括共享

root@kitploit:~
 wwwroot, inetpub, c$, 和 admin$   
然而,可能存在未特别指出的其他暴露。

设置命令

以下是可以用于将 PowerHuntShares 加载到当前 PowerShell 会话中的命令列表。请注意,每次运行 PowerShell 时都必须运行其中一个。它不是持久性的。

root@kitploit:~
# 绕过执行策略限制
Set-ExecutionPolicy -Scope Process Bypass

# 导入当前目录中的模块
Import-Module .\PowerHuntShares.psm1

或

# 降低 SSL 操作级别以支持连接到 github
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
[Net.ServicePointManager]::SecurityProtocol =[Net.SecurityProtocolType]::Tls12

# 下载并将 PowerHuntShares.psm1 加载到内存中
IEX(New-Object System.Net.WebClient).DownloadString("https://raw.githubusercontent.com/NetSPI/PowerHuntShares/main/PowerHuntShares.psm1")

示例命令

重要提示:所有命令都应以非特权域用户的身份运行。

root@kitploit:~
.EXAMPLE 1: 从域计算机运行。默认执行 Active Directory 计算机发现。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test 

.EXAMPLE 2: 使用备用域凭据从域计算机运行。默认执行 Active Directory 计算机发现。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test -Credential domain\user

.EXAMPLE 3: 以当前用户身份从域计算机运行。目标主机在文件中指定,每行一个。
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test  -HostFile c:\temp\hosts.txt      

.EXAMPLE 4: 使用凭据从非域计算机运行。默认执行 Active Directory 计算机发现。
C:\temp\test> runas /netonly /user:domain\user PowerShell.exe
PS C:\temp\test> Import-Module PowerHuntShares.psm1
PS C:\temp\test> Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeout 10 -OutputDirectory c:\folder\ -DomainController 10.1.1.1 -Credential domain\user 
root@kitploit:~
===============================================================
PowerHuntShares
===============================================================
 此函数自动执行以下任务:     

 o 确定当前计算机的域
 o 枚举域计算机        
 o 过滤响应 ping 请求的计算机          
 o 过滤 TCP 445 端口开放且可访问的计算机  
 o 枚举 SMB 共享 
 o 枚举 SMB 共享权限   
 o 识别具有潜在过度权限的共享       
 o 识别提供读取和写入访问权限的共享           
 o 识别高风险的共享
 o 识别常见的共享所有者、名称和目录列表   
 o 生成创建、最后写入和最后访问时间线
 o 生成 html 摘要报告和详细的 csv 文件         

 注意:在大型环境中运行可能需要数小时。       
---------------------------------------------------------------
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---------------------------------------------------------------
共享发现      
---------------------------------------------------------------
[*][03/01/2021 09:35] 扫描开始
[*][03/01/2021 09:35] 输出目录: c:\temp\smbshares\SmbShareHunt-03012021093504
[*][03/01/2021 09:35] 成功连接域控制器: dc1.demo.local
[*][03/01/2021 09:35] 对 demo.local 域关联的计算机执行 LDAP 查询
[*][03/01/2021 09:35] - 找到 245 台计算机
[*][03/01/2021 09:35] Ping 245 台计算机
[*][03/01/2021 09:35] - 55 台计算机响应了 ping 请求。
[*][03/01/2021 09:35] 检查 55 台计算机的 TCP 端口 445 是否开放
[*][03/01/2021 09:36] - 49 台计算机的 TCP 端口 445 开放。
[*][03/01/2021 09:36] 从 49 台计算机获取 SMB 共享列表
[*][03/01/2021 09:36] - 找到 217 个 SMB 共享。
[*][03/01/2021 09:36] 从 217 个 SMB 共享获取共享权限
[*][03/01/2021 09:37] - 枚举了 374 个共享权限。
[*][03/01/2021 09:37] 从 33 个 SMB 共享获取目录列表
[*][03/01/2021 09:37] - 目标最多 3 层嵌套目录
[*][03/01/2021 09:37] - 枚举了 563 个文件和文件夹。
[*][03/01/2021 09:37] 识别潜在的过度共享权限
[*][03/01/2021 09:37] - 在 12 个系统上发现 33 个潜在的过度权限。
[*][03/01/2021 09:37] 扫描完成
---------------------------------------------------------------
共享分析      
---------------------------------------------------------------
[*][03/01/2021 09:37] 分析开始
[*][03/01/2021 09:37] - 在 12 个系统上,14 个共享可读取。
[*][03/01/2021 09:37] - 在 1 个系统上,1 个共享可写入。
[*][03/01/2021 09:37] - 在 32 个系统上,46 个共享被视为非默认共享。
[*][03/01/2021 09:37] - 在 0 个系统上,0 个共享被视为高风险。
[*][03/01/2021 09:37] - 识别了过度共享的前 5 位所有者。
[*][03/01/2021 09:37] - 识别了前 5 个共享组。
[*][03/01/2021 09:37] - 识别了前 5 个共享名称。
[*][03/01/2021 09:37] - 识别了过去 90 天内创建的共享。
[*][03/01/2021 09:37] - 识别了过去 90 天内访问过的共享。
[*][03/01/2021 09:37] - 识别了过去 90 天内修改过的共享。
[*][03/01/2021 09:37] 分析完成
---------------------------------------------------------------
共享报告摘要      
---------------------------------------------------------------
[*][03/01/2021 09:37] 域: demo.local
[*][03/01/2021 09:37] 开始时间: 03/01/2021 09:35:04
[*][03/01/2021 09:37] 结束时间: 03/01/2021 09:37:27
[*][03/01/2021 09:37] 运行时间: 00:02:23.2759086
[*][03/01/2021 09:37] 
[*][03/01/2021 09:37] 计算机摘要
[*][03/01/2021 09:37] - 找到 245 台域计算机。
[*][03/01/2021 09:37] - 55 台 (22.45%) 域计算机响应了 ping。
[*][03/01/2021 09:37] - 49 台 (20.00%) 域计算机的 TCP 端口 445 可访问。
[*][03/01/2021 09:37] - 32 台 (13.06%) 域计算机拥有非默认共享。
[*][03/01/2021 09:37] - 12 台 (4.90%) 域计算机拥有可能具有过度权限的共享。
[*][03/01/2021 09:37] - 12 台 (4.90%) 域计算机拥有允许 READ 访问的共享。
[*][03/01/2021 09:37] - 1 台 (0.41%) 域计算机拥有允许 WRITE 访问的共享。
[*][03/01/2021 09:37] - 0 台 (0.00%) 域计算机拥有高风险共享。
[*][03/01/2021 09:37] 
[*][03/01/2021 09:37] 共享摘要
[*][03/01/2021 09:37] - 找到 217 个共享。我们预计至少有 98 个共享,
[*][03/01/2021 09:37]   因为 49 个系统开放了端口,并且通常有两个默认共享。
[*][03/01/2021 09:37] - 在 32 个系统上,46 个 (21.20%) 共享是非默认的。
[*][03/01/2021 09:37] - 在 12 个系统上,14 个 (6.45%) 共享配置了 33 个潜在的过度 ACL。
[*][03/01/2021 09:37] - 在 12 个系统上,14 个 (6.45%) 共享允许 READ 访问。
[*][03/01/2021 09:37] - 在 1 个系统上,1 个 (0.46%) 共享允许 WRITE 访问。
[*][03/01/2021 09:37] - 在 0 个系统上,0 个 (0.00%) 共享被视为高风险。
[*][03/01/2021 09:37] 
[*][03/01/2021 09:37] 共享 ACL 摘要
[*][03/01/2021 09:37] - 找到 374 个 ACL。
[*][03/01/2021 09:37] - 374 个 (100.00%) ACL 与非默认共享关联。
[*][03/01/2021 09:37] - 33 个 (8.82%) ACL 被确定为潜在的过度。
[*][03/01/2021 09:37] - 32 个 (8.56%) ACL 允许 READ 访问。
[*][03/01/2021 09:37] - 1 个 (0.27%) ACL 允许 WRITE 访问。
[*][03/01/2021 09:37] - 0 个 (0.00%) ACL 与高风险共享名称关联。
[*][03/01/2021 09:37] 
[*][03/01/2021 09:37] - 最常见的 5 个共享名称是:
[*][03/01/2021 09:37] - 14 个已发现的共享中,有 9 个 (64.29%) 与前 5 个共享名称关联。
[*][03/01/2021 09:37]   - 4 backup
[*][03/01/2021 09:37]   - 2 ssms
[*][03/01/2021 09:37]   - 1 test2
[*][03/01/2021 09:37]   - 1 test1
[*][03/01/2021 09:37]   - 1 users
[*] -----------------------------------------------

HTML 报告示例

摘要报告页面

Summary Report Page

感兴趣的文件页面

Interesting Files Page

提取的秘密页面

Extracted Secrets Page

ShareGraph 探索器页面

ShareGraph Explorer Page

致谢

作者
Scott Sutherland (@_nullbind)

使用的开源代码
以下个人编写了在本项目中使用的开源代码。非常感谢他们及其工作!

名称站点
Will Schroeder (@harmj0y)https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

许可证
BSD 3-Clause

待办事项

待修复/缺陷

  • 更新代码以避免被 Defender 检测
  • 密码提取函数当前会在文件中找到字段时返回“有效”记录,即使字段值为空。此外,某些目录似乎被当作文件处理。
  • 在某些未明确定义的情况下,与 Builtin\Users 关联的 ACL 有时会显示为 LocalSystem,因此不会出现在过度权限导出中。 - 感谢 Sam!

待添加功能

  • 在 html 报告输出中添加 powerhuntshares 版本
  • 添加是否进行感兴趣文件枚举和秘密解析的选项
  • 添加指定额外目标组的能力
  • 添加文件内容搜索功能
  • 添加 DontExcludePrintShares 选项
  • 添加自动定位包含较大用户比例(超过 70%)的组的功能(可配置)。作为选项添加。
  • 添加配置说明: 在使用 Windows 10 时,访问 netlogon 和 sysvol 可能被拒绝,除非配置了以下设置。自动检查此设置,如果权限级别足够则尝试修改。gpedit.msc,转到计算机 -> 管理模板 -> 网络 -> 网络提供程序 -> 硬化的 UNC 路径,启用策略并点击“显示”按钮。在“值名称”中输入您的服务器名称(* 表示所有服务器),在“值”字段中输入以下文本(不含引号):"RequireMutualAuthentication=0,RequireIntegrity=0,RequirePrivacy=0"。
  • 添加活动会话数据,以帮助识别共享的潜在所有者/用户。
  • 提取 SPN 和计算机描述/SPN 账户描述,以帮助识别所有者/业务部门。
  • 创建 BloodHound 导入文件/边(高风险共享)。
  • 更好的 IPv6 支持,IPv6 地址不会出现在子网摘要中。
  • 动态识别高风险共享创建/常见分组的峰值,需要更好地总结支持细节,而不仅仅是时间线。对于每个数据洞察,按年/月(针对文件夹哈希/名称等)添加洞察分组中创建的共享平均数量,并显示其峰值增加的月份/年份。(尝试提供一些历史背景);甚至可以列出每个分组最常用的非默认目录。此外,可能添加“首次发现日期”。(Alpha 阶段)
  • 动态识别共享创建、修改和访问的节奏,这些共享具有相同名称且相似性高。
  • 添加显示共享权限(以及已显示的 NTFS 权限)和最终访问权限(最严格的生效)。
  • 添加深度、文件/目录标志。
  • 还有很多其他功能。

PowerHuntShares 视觉概览

以下是 PowerHuntShares 工作方式、提取的数据以及如何呈现可操作结果的视觉演练。

仪表盘

提供已发现共享和相关风险的高级视图。

Dashboard

生成的文件

自动生成的报告,便于分析和离线查看。

Generated Files

共享名称

共享名称及其属性的详细映射。

Share Names - Example 1 Share Names - Example 2 Share Names - Example 3

修复指导

建议的修复步骤,以解决已识别的风险。

Remediation

时间线视图

已发现问题的可视化时间分布。

Timeline

同行比较

比较不同系统上的已发现共享和权限。

Peer Comparison

文件夹分组

将相关文件夹和共享分组,以获得更好的上下文。

Folder Groups

资产指纹暴露

显示基于已发现指纹的资产暴露情况。

Asset Fingerprinting Exposure

共享图谱

已发现共享和关系的可视化表示。

Share Graph

提取的秘密

突出显示扫描期间发现的敏感信息和秘密。

Extracted Secrets

感兴趣的文件

列出共享中可能有趣或有价值的文件。

Interesting Files

数据暴露

突出显示敏感数据可能暴露的区域。

Data Exposure

风险暴露

综合风险暴露视图及详细分析。

Risk Exposure Risk Exposure 2

下载工具
Warren F (@pscookiemonster)https://github.com/RamblingCookieMonster/Invoke-Parallel
Luben Kirovhttp://www.gi-architects.co.uk/2016/02/powershell-check-if-ip-or-subnet-matchesfits/