Skip to main content

LAPS

为了继续解决针对进一步保护本地管理员凭证的攻击微软在 2015 年推出了本地管理员密码解决方案 LAPS,即可以远程(LAPS) 是一种用于管理域主机本地管理员凭证的解决方案。 本地管理员帐户可以是默认帐户自定义帐户。部署 LAPS 后,密码是随机的、自动更改的,并且与其他帐户的密码不同。在域计算安装 LAPS 后,该主计算机会增加 2 多出两新的域属性 ms-mcs-AdmPwnExpirationTime ms-msc-AdmPwd,分别是 ms-mcs-AdmPwnExpirationTime 以及 ms-msc-AdmPwd,分别是过期时间以及明文密码 LAPS 通过域组策略对象 GPO LAPS 进行管理。 域管理员对 ms-msc-AdmPwd 属性具有读取权限,但可以将读取权限委派给其他主体,如特定域用户或组。从系统管理员的角度,我们可以在 DC 上查看最新的LAPS密码。

image.pngimage.png

image.pngimage.png

枚举

明文密码仅具备特定权限的对象可以读取在 RAVEN-MED 域中域管理员可以分配该权限。在之前章节中我们说过,配置了 LAPS 有为一些域主机存在 admpwd.dll(其实也就 文件,当然我们也可以通过枚举1 LAPS GPO的作用主机来得知) 安装。我们可以通过导入 powerview 脚本,执行以下命令:

LAPSToolkit
Get-NetComputer -Filter "(https://github.com/leoloobeek/LAPSToolkitms-mcs-admpwdexpirationtime=*)" 来查| select dnshostname

我们哪些主机到,RAVEN-MED 域中只有 mon01 被配置了 LAPS,哪些对象LAPS。

image.png

根据 Bloodhound,我们发现 PROD 域中的 harold 可以查看阅读 LAPSmon01 密码,以及如果当前用户可以具备权限,则读取对应主机的 LAPS 密码。因为

LAPSToolkit

image.png

是对

 PowerView

的包装,因此如果我们事先知道当前用户对特定主机具有 LAPS 的

读取权限,可以直接使用 PowerView 的命令 get-netcomputer -identity xxx 查看 LAPS 明文密码

在确定了 prod\harold 可以阅读 mon01 的 LAPS 密码后,我们需要获得 harold 的上下文。根据之前的利用,我们可以很轻松地得到 harold 的凭证从而获得访问

然后执行以下命令以读取明文密码:

Get-NetComputer -Filter "(ms-mcs-admpwd=*)" | Select dnshostname,ms-mcs-admpwd

image.png

新 LAPS 

就在 2023 年 4 月,微软发布了新一代 LAPS,而我们目前为止所讲的 LAPS 成为旧版本的了。新的 LAPS 有以下特征

1:Windows 原生集成。

2:支持 Azure AD

3:对本地 AD 的 LAPS 增加新的特性,例如下图所示

image.png