前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >内网渗透|LAPS的使用小技巧

内网渗透|LAPS的使用小技巧

作者头像
HACK学习
发布2021-11-19 14:46:54
1.6K0
发布2021-11-19 14:46:54
举报
文章被收录于专栏:HACK学习HACK学习

LAPS

0x01 前提

有一天在路上莫名奇妙捡到一个webshell,既然是爆Ju那就爆久一点,然后我就随手转存下lsass内存。

代码语言:javascript
复制
tasklist /svc | findstr "lsass.exe"rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump pid lsass.dmp full

然后再随手导出一哈本地hash好了。

代码语言:javascript
复制
reg save hklm\sam sam.hivreg save hklm\system system.hiv

不错拿到了我们喜欢的p@ssw0rd密码,好家伙这不是我自己电脑密码吗?难道这台机器的主人暗恋我?哪有这么巧合的事?!于是我随手一个smb爆破,wmi爆破,好家伙给我爆出来30台机器,这波不是发个大财?然后一想我自己的小域环境不也这样?这可不行,我自己一台一台改?我懒得搞被撸了算了,要不用组策略比如sysvol?这样搞那我还不如不管了。于是我发现了有个东西叫做LAPS

0x02 LAPS是什么

Microsoft 本地管理员密码解决方案 (LAPS为) Active Directory 中的每台计算机提供自动本地管理员帐户管理。安装在每台计算机上的客户端组件会生成一个随机密码,更新关联 AD 计算机帐户上的(新)LAPS密码属性,并在本地设置密码。LAPS配置通过组策略进行管理,该组策略提供密码复杂性、密码长度、密码更改的本地帐户名称、密码更改频率等值。

简单点来说,很多管理员都喜欢用一个密码,那么我一个pth到域控那ntds拿下了,所以LAPS就为每台机器的本地管理员用户设置不同的随机的密码来解决这个问题,LAPS会把每台计算机的本地管理员账户存储在Active Directory中,然后通过计算机相应的属性进行保护,计算机可以在 Active Directory 中更新自己的密码数据,并且域管理员可以向授权用户或组授予读取访问权限。

LAPS的工作是如何的?

LAPS其实可以理解为一条GPO,它会隔一段时间去执行一些操作:

•检查密码是否过期•当密码过期或者说过期前生成一个新的密码•通过密码策略来验证新密码•向Active Directory发送密码,并且把计算机的属性发送过去一起存储•向Active Directory说明密码下次到期的时间,将属性发送过去一起存储•更改管理员的密码

0x03 安装LAPS

[自己去下载吧] https://www.microsoft.com/en-us/download/details.aspx?id=46899,

这里[参考]https://www.opss.cn/1377.html。

Ir9UIg.png

Ir9cZT.png

导入LAPS PowerShell 模块,扩展AD架构增加LAPS扩展

代码语言:javascript
复制
Import-Module AdmPwd.PS    #导入LAPS PowerShell 模块Update-AdmPwdADSchema    #扩展AD架构增加LAPS扩展

Ir92oF.png

Ir9fJJ.png

Ir9osx.png

Ir9XJH.png

Ir9jWd.png

IrCCef.png

去掉这个

IrCiTS.png

创建一下OU,组和用户

IrCeln.png

把MSSQL添加到PWAdmin组

IrCMwT.png

然后创建一个计算机OU,把mssql添加进计算组这个OU,点击mssql然后右键移动到计算机即可。

查询“计算机”这个OU有哪些用户组有扩展权限,从下面可以看出一个system和域管理员组可以访问这个OU的扩展权限

代码语言:javascript
复制
Find-AdmPwdExtendedrights -identity 计算机 | Format-Table

IrC1kF.png

设置“计算机”这个OU上的电脑拥有扩展属性权限,ms-Mcs-AdmPwd – 以明文形式存储密码;ms-Mcs-AdmPwdExpirationTime – 存储重置密码的时间。设置计算机这个OU的电脑对上面两个扩展拥有读写权限

代码语言:javascript
复制
Set-AdmPwdComputerSelfPermission -OrgUnit 计算机

然后设置允许读取“计算机”这个OU上的管理员账号和密码的用户组。

代码语言:javascript
复制
Set-AdmPwdReadPasswordPermission -OrgUnit 计算机 -AllowedPrincipals PWAdmin #设置PWAdmin用户组可以读取“计算机”这个OU里面的本地管理员账号和密码

然后设置允许重置“计算机”这个OU上的管理员账号和密码的用户组

代码语言:javascript
复制
Set-AdmPwdResetPasswordPermission -OrgUnit 计算机 -AllowedPrincipals PWAdmin #设置PWAdmin用户组可以重置“计算机”这个OU里面的本地管理员账号和密码

然后配置GPO,让客户端通过GPO来更新本地管理员密码

创建LAPS的GPO然后把计算机链接到这个GPO

IrCJp9.png

IrCYlR.png

然后编辑

IrCt61.png

然后就是给客户端安装了,只需要第一个

IrCam6.png

IrCDte.png

然后重启该机器。再验证LAPS

PowerShell查看本地管理员密码,为本地计算机名称

代码语言:javascript
复制
Get-AdmPwdPassword -ComputerName <computername>

IrCypd.png

IrCc6I.png

那既然这样子了,我每台机器密码都不一样了,你总pth不动了把,而且我更新密码的时候流量也是加密的。但是这个明文存储挺让我难受的。

0x04 检查是否安装了LAPS

检查DLL是否存在

代码语言:javascript
复制
Get-ChildItem 'c:\program files\LAPS\CSE\Admpwd.dll'

检查DLL的数字签名

代码语言:javascript
复制
Get-AuthenticodeSignature 'c:\program files\LAPS\CSE\Admpwd.dll'

也可以检查CN=ms-Mcs-AdmPwd,CN=Schema,CN=Configuration,DC=redteam,DC=local是否存在CN=ms-Mcs-AdmPwd

IrCgXt.png

0x05 获取LAPS值

IrCRnP.png

IrCOBV.png

IrPAHK.png

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-11-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 HACK学习呀 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • LAPS
    • 0x01 前提
      • 0x02 LAPS是什么
        • 0x03 安装LAPS
          • 0x04 检查是否安装了LAPS
            • 0x05 获取LAPS值
            相关产品与服务
            访问管理
            访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档