使用PowerShell提升本地账户权限

使用PowerShell提升本地账户权限

特权升级是攻击者使用帐户的当前权限来获得额外的、通常是更高级别的系统访问权限。 虽然权限提升可能是利用零日漏洞、一流黑客进行有针对性的攻击或精心伪装的恶意软件的结果,但最常见的原因是计算机或帐户配置错误。 进一步发展攻击,攻击者使用许多单独的漏洞,这些漏洞加在一起可能导致灾难性的数据泄漏。

为什么用户不应该拥有本地管理员权限?

如果您是安全专家,用户不应该拥有本地管理员权限似乎很明显,如下所示:

  • 使他们的帐户更容易受到各种攻击
  • 使那些相同的攻击更加严重

不幸的是,对于许多组织来说,这仍然是一个非常有争议的问题,有时会伴随着激烈的讨论(例如,参见 我的主管说所有用户都必须是本地管理员). 在不深入讨论这个细节的情况下,我们认为攻击者通过漏洞利用或因为机器没有得到适当保护而获得了被调查系统的本地管理员权限。

步骤 1 使用 PowerShell 反向 DNS 解析

默认情况下,PowerShell 安装在许多本地工作站和大多数 Windows 服务器上。 虽然它被认为是一种非常有用的自动化和控制工具并非没有夸张,但它同样能够将自己转变为近乎隐形的 无文件恶意软件 (不留下攻击痕迹的黑客程序)。

在我们的案例中,攻击者开始使用 PowerShell 脚本执行网络侦察,依次遍历网络 IP 地址空间,尝试确定给定 IP 是否解析为主机,如果是,则该主机的网络名称是什么。
有许多方法可以完成此任务,但使用 cmdlet 得到-ADComputer 是一个可靠的选择,因为它返回关于每个节点的一组非常丰富的数据:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

如果大型网络上的速度有问题,则可以使用 DNS 回调:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

使用PowerShell提升本地账户权限

这种在网络上列出主机的方法非常流行,因为大多数网络不使用零信任安全模型,也不监视内部 DNS 查询是否有可疑的突发活动。

第 2 步:选择目标

此步骤的最终结果是获得可用于继续攻击的服务器和工作站主机名列表。

使用PowerShell提升本地账户权限

从名称上看,“HUB-FILER”服务器似乎是一个有价值的目标,因为随着时间的推移,文件服务器通常会积累大量网络文件夹,并且会被太多人过度访问。

使用 Windows 资源管理器浏览可以让我们检测到打开的共享文件夹的存在,但我们当前的帐户无法访问它(可能我们只有列表权限)。

第 3 步:学习 ACL

现在,在我们的 HUB-FILER 主机和目标共享上,我们可以运行 PowerShell 脚本来获取 ACL。 我们可以在本地机器上执行此操作,因为我们已经拥有本地管理员权限:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

执行结果:

使用PowerShell提升本地账户权限

从中我们看到,Domain Users组只有listing的访问权限,而Helpdesk组也有修改的权限。

第 4 步:账户识别

跑步 获取 ADGroupMember,我们可以得到这个组的所有成员:

Get-ADGroupMember -identity Helpdesk

使用PowerShell提升本地账户权限

在此列表中,我们看到一个我们已经识别并已经访问过的计算机帐户:

使用PowerShell提升本地账户权限

第 5 步:使用 PSExec 以计算机帐户运行

PsExec的 来自 Microsoft Sysinternals 的 允许您在 SYSTEM@HUB-SHAREPOINT 系统帐户的上下文中执行命令,我们知道该帐户是 Helpdesk 目标组的成员。 也就是说,我们只需要做:

PsExec.exe -s -i cmd.exe

那么,您就可以完全访问目标文件夹 HUB-FILERshareHR,因为您是在 HUB-SHAREPOINT 计算机帐户的上下文中工作。 通过这种访问,数据可以复制到便携式存储设备或以其他方式检索并通过网络传输。

第 6 步:检测此攻击

这个特殊的帐户权限调整漏洞(访问网络共享的计算机帐户而不是用户帐户或服务帐户)可以被发现。 然而,如果没有合适的工具,这是很难做到的。

为了检测和防止此类攻击,我们可以使用 数据优势 识别其中包含计算机帐户的组,然后拒绝访问它们。 数据警报 更进一步,允许您专门为这种情况创建通知。

下面的屏幕截图显示了一个自定义通知,每次计算机帐户访问受监控服务器上的数据时都会触发该通知。

使用PowerShell提升本地账户权限

PowerShell 的后续步骤

想知道更多? 使用“博客”解锁码免费获取全文 PowerShell 和 Active Directory 基础知识视频课程.

来源: habr.com

添加评论