目录导航
介绍
在本博客中,我将解释如何在 Active Directory 环境中快速梳理、利用和修复配置有过多权限的网络共享。过多的共享权限代表了一种风险,可能导致企业环境中的数据泄露、权限提升和勒索软件攻击。因此,我还将探讨为什么在经过 20 年的主流漏洞管理和渗透测试之后,配置了过多权限的网络共享仍然困扰着大多数环境。
最后,我将分享一个名为 PowerHuntShares 的新开源工具,它可以帮助简化 Active Directory 环境中过多的 SMB 共享权限的威胁搜寻和补救。此内容也可在此处以演示格式提供。或者,如果您想听我谈论这个话题,请查看我们的网络研讨会,如何大规模评估 Active Directory SMB 共享。
这对于负责在 Active Directory 环境中管理网络共享访问的人员(身份和访问管理/IAM 团队)以及负责利用该访问的红队/渗透测试人员来说应该很有趣。
TLDR;我们可以利用 Active Directory 来帮助创建系统和共享清单。配置有过多权限的共享可能会以多种方式导致远程代码执行 (RCE),可以通过简单的数据分组技术加快修复工作,并且可以使用一些常见的事件 ID 和一点点相关性来检测恶意共享扫描(总是说起来容易做起来难)。
问题
如果只是一个问题就好了。我不认识没有涉及未经授权的网络共享访问的战争故事的渗透测试人员。在现实世界中,这个故事通常以勒索软件的部署和双重勒索而告终。这就是为什么我们尝试了解这个问题背后的一些根本原因很重要。下面总结了在大多数 Active Directory 环境中经常导致大量网络共享暴露的根本原因。
资产管理混乱
在企业环境中跟踪实时系统是困难的,而跟踪不断变化的共享库存和所有者则更加困难。即使身份和访问管理 (IAM) 团队通过发现找到了网络共享,它也会提出以下问题:
- 谁拥有它?
- 它支持哪些应用程序或业务流程?
- 我们可以删除高风险的访问控制条目 (ACE)吗?
- 我们可以一起删除共享吗?
如果您拥有正常运行的配置管理数据库 (CMDB),则可以回答大多数问题。不幸的是,并不是每个人都这样做。
损坏的漏洞管理
许多漏洞管理程序从未构建用于识别向经过身份验证的域用户提供未经授权访问的网络共享配置。他们的大部分重点是识别经典漏洞(缺少补丁、弱密码和应用程序问题),并优先处理不需要身份验证的漏洞,这当然不全是坏事。
但是,根据我的观察,业界只是在过去五年中才对 Active Directory 生态系统产生了浓厚的兴趣。这似乎主要是由于 Active Directory (AD) 攻击的曝光率和意识增加,这些攻击严重依赖于配置并且和缺少补丁无关。
我也不是说 IAM 团队没有努力完成他们的工作,但在许多情况下,他们陷入了相当于团队管理的困境,而忘记(或没有时间)查看实际全局/通用组可以访问的资产。那是一口深井,不过今天的重点是网络。
渗透测试人员一直都知道共享是一种风险,但在 Active Directory 环境中实施、管理和评估最小权限是一项不小的挑战。即使对安全社区越来越感兴趣,也很少有解决方案可以有效地清点和评估整个 Active Directory 域(或多个域)的共享访问权限。
根据我的经验,很少有组织从一开始就执行经过身份验证的漏洞扫描,但即使是那些似乎确实缺乏关于常见过度特权、继承权限和提炼摘要数据的环境的发现,这些数据提供了大多数 IAM 团队需要的洞察力做出正确的决定。长期以来,人们一直过度依赖这些类型的工具,因为许多公司的印象是,它们提供的覆盖范围比网络共享权限方面的覆盖范围更大。
简而言之,良好的资产库存和攻击面管理为更好的漏洞管理覆盖率铺平了道路——许多公司还没有做到这一点。
不考虑分割边界
大多数大型环境都有主机、网络和 Active Directory 域边界,在执行任何类型的身份验证扫描或代理部署时都需要考虑这些边界。试图准确盘点和评估网络份额的公司经常错过一些事情,因为他们没有考虑隔离其资产的边界。在评估资产时,请确保在这些范围内工作。
云来了!
云就在这里,它支持各种出色的文件存储介质,但这并不意味着本地网络共享消失了。公司需要确保他们仍然向后看,因为他们继续期待文件共享的安全控制。对于许多公司来说,可能需要十年后的大部分时间,他们才能将大部分文件存储基础设施迁移到他们最喜欢的凝结水蒸气漂浮物——你知道的,云。😜
误解 NTFS 和共享权限
多年来,有很多与共享权限管理相关的不良做法已经被 IT 文化所吸收,仅仅是因为人们不了解他们的工作方式。过度共享权限的最大贡献者之一是通过本机嵌套组成员身份进行的特权继承。此问题也不限于网络共享。十多年来,我们一直在滥用相同的特权继承问题来访问 SQL Server 实例。在接下来的部分中,我将概述该问题以及如何在网络共享的上下文中利用它。
网络共享权限继承盲点
网络共享只是一种使网络上的远程用户可以使用本地文件的媒介,但有两组权限控制远程用户对共享文件的访问。要了解权限继承问题,快速回顾一下 NTFS 和共享权限如何在 Windows 系统上协同工作会有所帮助。让我们探索基础知识。
NTFS 权限
- 用于控制对本地 NTFS 文件系统的访问
- 会影响本地和远程用户
共享权限
- 用于控制对共享文件和文件夹的访问
- 只影响远程用户
简而言之,从远程用户的角度来看,首先审查网络共享权限(远程),然后审查 NTFS 权限(本地),但无论如何,最严格的权限总是胜出。下面是一个简单示例,显示 John 对共享具有完全控制权限,但对关联的本地文件夹只有读取权限。大多数限制性获胜,因此 John 仅被提供对通过共享文件夹远程提供的文件的读取访问权限。

所以这些是基础。最重要的想法是限制性最强的 ACL 获胜。但是,有一些细微差别与继承域组的本地组有关。为了弄清楚这一点,让我们简要介绍一下受影响的当地群体。
Everyone
Everyone组在大多数配置中为所有经过身份验证和匿名的用户提供访问权限。这个组在许多环境中被过度使用,并且经常导致过度的特权。
Builtin\Users
默认情况下会添加新的本地用户。当系统未加入域时,它会按照您的预期运行。
认证用户
该组嵌套在 Builtin\Users 组中。当系统未加入域时,它不会在影响访问方面做太多事情。但是,当系统加入Active Directory 域时,Authenticated Users 隐含地包括“域用户”和“域计算机”组。例如,IT 管理员可能认为他们只提供对 Builtin\Users 组的远程共享访问权限,而实际上他们将其提供给域中的每个人。下图有助于说明这种情况。

这里的教训是,对本地和域组关系的一个小小的误解可能会导致未经授权的访问和潜在的风险。下一节将介绍如何清点共享及其访问控制列表 (ACL),以便我们可以定位和修复它们。
网络共享库存
事实证明,多亏了几个本机和开源工具,快速了解您的域计算机和相关共享并不难。诀窍是获取足够的信息来回答那些修复工作所需的人员、内容、地点、时间和方式问题。
共享和权限的发现归结为几个基本步骤:
- 通过轻量级目录访问协议 (LDAP) 查询 Active Directory 以获取域计算机列表。Get-AdComputer(Active Directory PowerShell 模块)和Get-DomainComputer (PowerSploit)等 PowerShell 命令在这方面可以提供很大帮助。
- 确认在 TCP 端口 445 上与这些计算机的连接。Nmap是用于此目的的免费且易于使用的工具。如果您想坚持使用 PowerShell,还有几个开源 TCP 端口扫描脚本。
- 使用您喜欢的方法查询共享、共享权限和其他信息。Get-SMBShare、Get-SmbShareAccess、Get-ACL和Get-ObjectAcl (PowerSploit)等 PowerShell 工具非常有用。
- 其他有助于稍后修复工作的信息包括文件夹所有者、文件计数、文件列表、文件列表哈希和计算机 IP 地址。您还可以在公司的 CMDB 中找到其中一些信息。Get-ChildItem 和 Resolve-DnsNameSome 等 PowerShell 命令也可以帮助收集其中的一些信息。
PowerHuntShares 可用于自动执行上述任务(在最后一节中介绍),但无论您使用什么进行发现,了解未经授权的共享访问如何被滥用将有助于您的团队确定补救工作的优先级。
网络共享利用
配置有过多权限的网络共享可以通过多种方式被利用,但共享的性质和特定的共享权限将最终决定可以执行哪些攻击。下面,我概述了一些最常见的攻击,这些攻击利用对共享的读写访问来帮助您入门。
读取访问滥用
勒索软件和其他威胁参与者经常利用共享的过多读取权限来访问敏感数据,例如他们可以利用的个人身份信息 ( PII ) 或知识产权(源代码、工程设计、投资策略、专有公式、收购信息等),出售或敲诈您的公司。此外,我们在渗透测试中发现,密码通常以明文形式存储,可用于登录数据库和服务器。这意味着在某些情况下,对共享的读取访问可以在 RCE 中结束。
以下是对网络共享的过度读取访问如何导致 RCE 的简单示例:
- 攻击者危害域用户。
- 攻击者为 Web 根目录、代码备份或开发操作目录识别共享文件夹。
- 攻击者识别以明文形式存储的密码(通常是数据库连接字符串)。
- 攻击者使用数据库密码连接数据库服务器。
- 攻击者使用本机数据库功能获取数据库服务器操作系统的本地管理权限。
- 攻击者利用共享数据库服务帐户访问其他数据库服务器。
下面是该过程的简单说明:

写访问滥用
写访问提供了读访问的所有好处,并且能够添加、删除、修改和加密文件(如勒索软件威胁参与者)。写访问还提供了将共享访问转变为 RCE 的更多潜力。以下是十个更常见的 RCE 选项的列表:
- 将 web shell 写入 web 根文件夹,可以通过 web 服务器访问。
- 替换或修改应用程序 EXE 和 DLL 文件以包含后门。
- 将 EXE 或 DLL 文件写入未引用的应用程序和服务使用的路径。
- 将 DLL 写入应用程序文件夹以执行 DLL 劫持。您可以使用由NetSPI自己的研究主管 Nick Landers 编写的 Koppeling。
- 将 DLL 和配置文件写入应用程序文件夹,以对 .net 应用程序执行 appdomain 劫持。
- 将可执行文件或脚本写入“所有用户”启动文件夹,以便在下次登录时启动它们。
- 修改计划任务执行的文件。
- 修改 PowerShell 启动配置文件以包含后门。
- 修改 Microsoft Office 模板以包含后门。
- 编写恶意 LNK 文件以捕获或中继 NetNTLM 哈希。
您可能已经注意到,我列出的许多技术也常用于持久性和横向移动,这很好地提醒了旧技术可以有多个用例。
下面是一个简单的图表,试图说明基本的 web shell 示例。
- 攻击者危害域用户。
- 攻击者扫描共享,找到一个 wwwroot 目录,然后上传一个 web shell。wwwroot 目录存储目标 IIS 服务器上托管的 Web 应用程序使用的所有文件。因此,您可以将 Web Shell 视为扩展已发布 Web 应用程序功能的东西。
- 使用标准 Web 浏览器,攻击者现在可以访问目标 IIS Web 服务器托管的上传的 Web Shell 文件。
- 攻击者使用 web shell 访问作为 web 服务器服务帐户在操作系统上执行命令。
- Web 服务器服务帐户可能具有访问网络上其他资源的额外权限。

下面是另一个简化图,显示了可用于执行我的前 10 个列表中的攻击的通用步骤。让我们关注被滥用的 C$ 份额。C$ 共享是 Windows 中的默认隐藏共享,标准域用户不应访问。它映射到 C 驱动器,该驱动器通常包括系统上的所有文件。不幸的是,devOops、应用程序部署和单用户错误配置意外(或故意)使 C$ 共享在比您想象的更多环境中可供所有域用户使用。在我们的渗透测试中,我们对加入域的系统执行了完整的 SMB 共享审计,我们发现我们最终获得了对 C$ 共享的写入访问权限超过一半的时间。

网络共享修复
在过度的共享修复工作中追踪系统所有者、应用程序和有效的业务案例对于 IAM 团队来说可能是一个巨大的痛苦。对于大型企业而言,这可能意味着对数十万个共享 ACL 进行分类。因此,在该工作期间有办法对共享进行分组和优先级排序可以节省大量时间。
我发现成功分组的诀窍是收集正确的数据。为了确定要收集哪些数据,我会问自己谁、什么、在哪里、何时以及如何提出问题的标准,然后确定我可以从哪里获得这些数据。
哪些共享被曝光?
- 共享名称:有时,仅共享名称就可以表明暴露的数据类型,包括 C$、ADMIN$ 和 wwwroot 等高风险共享。
- 共享文件计数:当您可能首先尝试优先考虑高风险共享时,没有文件的目录可以成为优先共享修复的一种方式。
- 目录列表:与共享名称类似,共享目录中的文件夹和文件通常可以告诉您很多有关上下文的信息。
- 目录列表哈希:这只是目录列表的哈希。虽然不是硬性要求,但它可以使识别和比较相同的目录列表更容易一些。
谁有权访问它们?
- 共享 ACL:这 将有助于显示用户拥有哪些访问权限,并且可以针对已知的高风险组或大型内部组进行过滤。
- NTFS ACL: 这 将有助于显示用户拥有哪些访问权限,并且可以针对已知的高风险组或大型内部组进行过滤。
它们是什么时候创建的?
- 文件夹创建日期:在时间线上对创建日期进行分组或聚类可以揭示与过去可能引入过多共享权限的业务部门、应用程序和流程相关的趋势。
谁创造了它们?
- 文件夹所有者:文件夹所有者有时可以将您带到拥有创建/使用共享的系统、应用程序或流程的部门或业务单位。
- 主机名:如果使用标准化命名约定,主机名可以指示位置和所有权。
他们在哪里?
- 计算机名称:如果使用标准化命名约定,主机共享的计算机名称通常可用于确定部门和位置等大量信息。
- IP 地址:与计算机名称类似,子网通常也分配给执行特定操作的计算机。在许多环境中,该分配记录在 Active Directory 中并且可以交叉引用。
如果我们在发现过程中收集了所有这些信息,我们可以使用它来根据共享名称、所有者、子网、文件夹列表和文件夹列表哈希执行分组,以便我们可以识别大量可以立即修复的相关共享。不想自己编写代码?我写了 PowerHuntShares 来帮助你。
PowerHuntShares介绍
PowerHuntShares 旨在自动清点、分析和报告分配给已加入 Active Directory 域的计算机上的 SMB 共享的过多特权。它旨在供 IAM 和其他安全团队使用,以更好地了解他们的 SMB 共享攻击面,并提供数据洞察以帮助对共享修复工作进行分组和优先级排序。以下是 PowerHuntShares 设置、执行(收集和分析)和报告的快速指南。
设置
1. 从https://github.com/NetSPI/Powerhuntshares下载项目。
PowerHuntShares.psm1
云中转网盘:
yunzhongzhuan.com/#sharefile=HNKcXcqR_70506
解压密码:www.ddosi.org
2. 从非域系统中,您可以使用以下命令加载它:
runas /netonly /user:domain\user PowerShell.exe <font></font>
Set-ExecutionPolicy bypass -scope process<font></font>
Import-Module Invoke-HuntSMBShares.ps1
或者,您可以使用以下 PowerShell 脚本直接从 Internet 加载它。
[System.Net.ServicePointManager]::ServerCertificateValidation<font></font>
Callback = {$true} <font></font>
<font></font>
[Net.ServicePointManager]::SecurityProtocol =[Net.Security<font></font>
ProtocolType]::Tls12 <font></font>
<font></font>
<font></font>
IEX(New-Object System.Net.WebClient).DownloadString<font></font>
("https://raw.githubusercontent.com/NetSPI/<font></font>
PowerHuntShares/main/PowerHuntShares.psm1")
集合
Invoke-HuntSMBShares 集合函数包装了一些来自 PowerView 和 Invoke-Parallel 的修改函数。修改获取更多信息,自动化常见任务序列,并为报告生成摘要数据。无论如何,为 Warren F. 和 Will Schroeder 所做的出色工作点赞(但很久以前)。下面是一些命令示例。
从加入域的系统运行
Invoke-HuntSMBShares -Threads 100 -OutputDirectory c:\temp\test
从未加入域的系统运行
runas /netonly /user:domain\user PowerShell.exe<font></font>
Invoke-HuntSMBShares -Threads 100 -RunSpaceTimeOut 10` <font></font>
-OutputDirectory c:\folder\`<font></font>
-DomainController 10.1.1.1` <font></font>
-Credential domain\user<font></font>
=============================================================== <font></font>
PowerHuntShares<font></font>
=============================================================== <font></font>
This function automates the following tasks:<font></font>
<font></font>
o Determine current computer's domain<font></font>
o Enumerate domain computers<font></font>
o Filter for computers that respond to ping requests<font></font>
o Filter for computers that have TCP 445 open and accessible<font></font>
o Enumerate SMB shares<font></font>
o Enumerate SMB share permissions<font></font>
o Identify shares with potentially excessive privileges<font></font>
o Identify shares that provide reads & write access<font></font>
o Identify shares that are high risk<font></font>
o Identify common share owners, names, & directory listings<font></font>
o Generate creation, last written, & last accessed timelines<font></font>
o Generate html summary report and detailed csv files<font></font>
<font></font>
Note: This can take hours to run in large environments.<font></font>
---------------------------------------------------------------<font></font>
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||<font></font>
---------------------------------------------------------------<font></font>
SHARE DISCOVERY<font></font>
--------------------------------------------------------------- <font></font>
[*][03/01/2021 09:35] Scan Start<font></font>
[*][03/01/2021 09:35] Output Directory: c:\temp\smbshares\SmbShareHunt-03012021093504<font></font>
[*][03/01/2021 09:35] Successful connection to domain controller: dc1.demo.local<font></font>
[*][03/01/2021 09:35] Performing LDAP query for computers associated with the demo.local domain<font></font>
[*][03/01/2021 09:35] - 245 computers found<font></font>
[*][03/01/2021 09:35] Pinging 245 computers<font></font>
[*][03/01/2021 09:35] - 55 computers responded to ping requests.<font></font>
[*][03/01/2021 09:35] Checking if TCP Port 445 is open on 55 computers<font></font>
[*][03/01/2021 09:36] - 49 computers have TCP port 445 open.<font></font>
[*][03/01/2021 09:36] Getting a list of SMB shares from 49 computers<font></font>
[*][03/01/2021 09:36] - 217 SMB shares were found.<font></font>
[*][03/01/2021 09:36] Getting share permissions from 217 SMB shares<font></font>
[*][03/01/2021 09:37] - 374 share permissions were enumerated.<font></font>
[*][03/01/2021 09:37] Getting directory listings from 33 SMB shares<font></font>
[*][03/01/2021 09:37] - Targeting up to 3 nested directory levels<font></font>
[*][03/01/2021 09:37] - 563 files and folders were enumerated.<font></font>
[*][03/01/2021 09:37] Identifying potentially excessive share permissions<font></font>
[*][03/01/2021 09:37] - 33 potentially excessive privileges were found across 12 systems.<font></font>
[*][03/01/2021 09:37] Scan Complete<font></font>
--------------------------------------------------------------- <font></font>
SHARE ANALYSIS<font></font>
--------------------------------------------------------------- <font></font>
[*][03/01/2021 09:37] Analysis Start<font></font>
[*][03/01/2021 09:37] - 14 shares can be read across 12 systems.<font></font>
[*][03/01/2021 09:37] - 1 shares can be written to across 1 systems.<font></font>
[*][03/01/2021 09:37] - 46 shares are considered non-default across 32 systems.<font></font>
[*][03/01/2021 09:37] - 0 shares are considered high risk across 0 systems<font></font>
[*][03/01/2021 09:37] - Identified top 5 owners of excessive shares.<font></font>
[*][03/01/2021 09:37] - Identified top 5 share groups.<font></font>
[*][03/01/2021 09:37] - Identified top 5 share names.<font></font>
[*][03/01/2021 09:37] - Identified shares created in last 90 days.<font></font>
[*][03/01/2021 09:37] - Identified shares accessed in last 90 days.<font></font>
[*][03/01/2021 09:37] - Identified shares modified in last 90 days.<font></font>
[*][03/01/2021 09:37] Analysis Complete<font></font>
--------------------------------------------------------------- <font></font>
SHARE REPORT SUMMARY<font></font>
--------------------------------------------------------------- <font></font>
[*][03/01/2021 09:37] Domain: demo.local<font></font>
[*][03/01/2021 09:37] Start time: 03/01/2021 09:35:04<font></font>
[*][03/01/2021 09:37] End time: 03/01/2021 09:37:27<font></font>
[*][03/01/2021 09:37] Run time: 00:02:23.2759086<font></font>
[*][03/01/2021 09:37]<font></font>
[*][03/01/2021 09:37] COMPUTER SUMMARY<font></font>
[*][03/01/2021 09:37] - 245 domain computers found.<font></font>
[*][03/01/2021 09:37] - 55 (22.45%) domain computers responded to ping.<font></font>
[*][03/01/2021 09:37] - 49 (20.00%) domain computers had TCP port 445 accessible.<font></font>
[*][03/01/2021 09:37] - 32 (13.06%) domain computers had shares that were non-default.<font></font>
[*][03/01/2021 09:37] - 12 (4.90%) domain computers had shares with potentially excessive privileges.<font></font>
[*][03/01/2021 09:37] - 12 (4.90%) domain computers had shares that allowed READ access.<font></font>
[*][03/01/2021 09:37] - 1 (0.41%) domain computers had shares that allowed WRITE access.<font></font>
[*][03/01/2021 09:37] - 0 (0.00%) domain computers had shares that are HIGH RISK.<font></font>
[*][03/01/2021 09:37]<font></font>
[*][03/01/2021 09:37] SHARE SUMMARY<font></font>
[*][03/01/2021 09:37] - 217 shares were found. We expect a minimum of 98 shares<font></font>
[*][03/01/2021 09:37] because 49 systems had open ports and there are typically two default shares.<font></font>
[*][03/01/2021 09:37] - 46 (21.20%) shares across 32 systems were non-default.<font></font>
[*][03/01/2021 09:37] - 14 (6.45%) shares across 12 systems are configured with 33 potentially excessive ACLs.<font></font>
[*][03/01/2021 09:37] - 14 (6.45%) shares across 12 systems allowed READ access.<font></font>
[*][03/01/2021 09:37] - 1 (0.46%) shares across 1 systems allowed WRITE access.<font></font>
[*][03/01/2021 09:37] - 0 (0.00%) shares across 0 systems are considered HIGH RISK.<font></font>
[*][03/01/2021 09:37]<font></font>
[*][03/01/2021 09:37] SHARE ACL SUMMARY<font></font>
[*][03/01/2021 09:37] - 374 ACLs were found.<font></font>
[*][03/01/2021 09:37] - 374 (100.00%) ACLs were associated with non-default shares.<font></font>
[*][03/01/2021 09:37] - 33 (8.82%) ACLs were found to be potentially excessive.<font></font>
[*][03/01/2021 09:37] - 32 (8.56%) ACLs were found that allowed READ access.<font></font>
[*][03/01/2021 09:37] - 1 (0.27%) ACLs were found that allowed WRITE access.<font></font>
[*][03/01/2021 09:37] - 0 (0.00%) ACLs were found that are associated with HIGH RISK share names.<font></font>
[*][03/01/2021 09:37]<font></font>
[*][03/01/2021 09:37] - The 5 most common share names are:<font></font>
[*][03/01/2021 09:37] - 9 of 14 (64.29%) discovered shares are associated with the top 5 share names.<font></font>
[*][03/01/2021 09:37] - 4 backup<font></font>
[*][03/01/2021 09:37] - 2 ssms<font></font>
[*][03/01/2021 09:37] - 1 test2<font></font>
[*][03/01/2021 09:37] - 1 test1<font></font>
[*][03/01/2021 09:37] - 1 users<font></font>
[*] -----------------------------------------------
分析
PowerHuntShares 将清点配置有“过度特权”的 SMB 共享 ACL 并突出显示“高风险”ACL。以下是在这种情况下如何定义它们。
过多的特权
过多的读写共享权限已被定义为任何网络共享 ACL,其中包含针对“Everyone”、“Authenticated Users”、“BUILTIN\Users”、“Domain Users”或“Domain Computers”的显式 ACE(访问控制条目)团体。由于特权继承问题,它们都为域用户提供了对受影响共享的访问权限。
高风险共享
在本报告的上下文中,高风险共享被定义为提供对系统或应用程序的未经授权的远程访问的共享。默认情况下,这包括 wwwroot、inetpub、c 和 c$ 共享。但是,可能存在其他未提及的风险。
报告
该脚本将生成 HTML 报告、csv 数据文件和 html 文件。
HTML 报告
HTML 报告应包含指向所有内容的链接。下面是仪表板的快速屏幕截图。它包括计算机、共享和共享 ACL 级别的摘要数据。它还有一个有趣的共享创建时间表,因此您可以识别前面提到的那些共享创建集群。这是我第一次尝试使用 PowerShell 生成那种类型的 HTML/CSS,所以虽然它可能会更好,但至少它是功能性的第一次尝试。😊 它还包括“数据洞察”部分中的数据分组摘要。
注意:创建时间线图表中显示的数据似乎可信,但最后访问/修改的时间线图表似乎不太可靠。我相信这与操作系统如何使用它们有关,但这是另一天的研究项目。

CSV 文件
Invoke-HuntSMBShares 脚本将生成各种 .csv 文件,但感兴趣的主要文件将是“Inventory-Excessive-Privileges.csv”文件。它应该包含本博客前面讨论的所有数据,并且可以作为额外离线分析的良好数据来源。

PowerShell 可用于导入 .csv 文件并在现场进行额外分析,这从蓝队和红队的角度来看都很方便。

总结
这是一个有趣的博客,我们涵盖了很多内容,所以下面是一个快速回顾:
- IAM 和红队可以利用 Active Directory 来帮助创建系统、共享和共享权限的清单。
- 如果在创建共享清单时收集了正确的信息,则可以通过简单的数据分组技术加快补救工作。
- 当通过组继承链加入 Active Directory 域时,builtin\users 组隐式包含域用户。
- 配置有过多权限的共享可能会以各种方式导致 RCE。
- Windows 事件 ID 可用于识别在您的环境中发生的经过身份验证的扫描(540、4624、680,4625)和共享访问(5140)。
- PowerHuntShares 是一个开源工具,可用于帮助您入门。
从长远来看,我希望用 C# 重写 PowerHuntShares 以提高性能并消除一些错误。希望此博客中共享的信息有助于引起人们对在 Active Directory 环境中分配给 SMB 共享的过多权限问题的一些认识。或者至少可以作为一个开始挖掘解决方案的地方。
请记住,应定期进行共享审核,以便您可以在高风险共享权限成为威胁之前识别和修复它们。它是良好的 IT 和攻击性安全防卫的一部分,就像渗透测试、 对手模拟或 红队攻击一样。
转载请注明出处及链接