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

渗透技巧 2年前 (2021) admin
865 0 0

LAPS

0x01 前提

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

tasklist /svc | findstr "lsass.exe"rundll32.exe C:windowsSystem32comsvcs.dll, MiniDump pid lsass.dmp full

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

reg save hklmsam sam.hivreg save hklmsystem 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。

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

Ir9UIg.png


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

Ir9cZT.png



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

Import-Module AdmPwd.PS    #导入LAPS PowerShell 模块Update-AdmPwdADSchema    #扩展AD架构增加LAPS扩展

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

Ir92oF.png


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

Ir9fJJ.png


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

Ir9osx.png


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

Ir9XJH.png


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

Ir9jWd.png


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

IrCCef.png

去掉这个


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

IrCiTS.png

创建一下OU,组和用户


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

IrCeln.png



把MSSQL添加到PWAdmin组

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

IrCMwT.png



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

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

Find-AdmPwdExtendedrights -identity 计算机 | Format-Table

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

IrC1kF.png



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

Set-AdmPwdComputerSelfPermission -OrgUnit 计算机

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

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

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

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

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

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

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

IrCJp9.png


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

IrCYlR.png

然后编辑


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

IrCt61.png



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

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

IrCam6.png


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

IrCDte.png



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

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

Get-AdmPwdPassword -ComputerName <computername>

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

IrCypd.png


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

IrCc6I.png



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

0x04 检查是否安装了LAPS

检查DLL是否存在

Get-ChildItem 'c:program filesLAPSCSEAdmpwd.dll'

检查DLL的数字签名

Get-AuthenticodeSignature 'c:program filesLAPSCSEAdmpwd.dll'

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

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

IrCgXt.png



0x05 获取LAPS值

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

IrCRnP.png


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

IrCOBV.png


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

IrPAHK.png



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


推荐阅读


实战 | 记一次诡异的网站篡改应急响应


干货 | Certutil在渗透中的利用和详解


实战 | 进程启动技术的思路和研究


干货 | DLL注入常用的几种方式


干货 | 绕过AMSI实现免杀的研究和思路


点赞    在看    评论


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

原文始发于微信公众号(HACK学习呀):内网渗透|LAPS的使用小技巧

版权声明:admin 发表于 2021年11月13日 上午1:00。
转载请注明:内网渗透|LAPS的使用小技巧 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...