域渗透-SYSVOL密码-LAPS

关键词: Windows, 域, 漏洞

域渗透–利用SYSVOL还原组策略中保存的密码

0x00 研究内容

  • SYSVOL介绍
  • 管理员批量修改主机本地管理员密码方法
  • 组策略其他可被利用方法
  • LAPS介绍

0x01 SYSVOL介绍

在域内有一个默认的共享路径:\\SYSVOL<DOMAIN>\

此路径所有域内主机都可以访问,里面存放的是一些配置文件等。

0x02 管理员利用组策略管理密码利用方法

  • 利用的前提条件
  • Windows Server 2012之前版本不包括2012,未打KB2962486补丁

如果域管理员使用组策略批量管理时,填入了密码,则此密码会被放入该共享文件夹中,虽然是被加密的,但是微软公开了其AES加密密钥,所以很容易就可以解开密码。

文件路径:\\SYSVOL<DOMAIN>\Policies<组策略对象对应ID>\Machine\Preferences\Groups\Groups.xml

Groups.xml中的cpassword项即是被加密的用户密码,使用PowerSploitGet-GPPPassword模块可破解,它同时也可以自动搜索所有共享文件夹里的密码并还原。

方式一

也可使用kali命令gpp-decrypt破解

/images/Domain-SYSVOL-LAPS/Untitled.png

在Windows Server 2012及以后的版本中,此方法失效,补丁KB2962486解决了此问题,密码将不再保存在组策略首选项中。

同样,在NETLOGON目录中的某些脚本也有可能包含着账号密码。

方式二

还原方式可采用Chris Campbell @obscuresec开源的powershell脚本,地址如下:

https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Exfiltration/Get-GPPPassword.ps1

该脚本可在域内主机上执行,能够自动查询共享文件夹\SYSVOL中的文件,还原出所有明文密码

0x03 修改方法

2012系统仅做示例

\Makapaka\sysvol\makapaka.garden\Policies

/images/Domain-SYSVOL-LAPS/Untitled%201.png

/images/Domain-SYSVOL-LAPS/Untitled%202.png

0x04 组策略中其他可被利用处

Services\Services.xml

http://msdn.microsoft.com/en-us/library/cc980070(v=prot.13)
ScheduledTasks\ScheduledTasks.xml

http://msdn.microsoft.com/en-us/library/cc422920(v=prot.13)
http://msdn.microsoft.com/en-us/library/dd341350(v=prot.13)
http://msdn.microsoft.com/en-us/library/dd304114(v=prot.13)
Printers\Printers.xml

http://msdn.microsoft.com/en-us/library/cc422918(v=prot.13)
Drives\Drives.xml

http://msdn.microsoft.com/en-us/library/cc704598(v=prot.13)
DataSources\DataSources.xml

http://msdn.microsoft.com/en-us/library/cc422926(v=prot.13)

  • ScheduledTasks\ScheduledTasks.xml(勾选运行身份)

/images/Domain-SYSVOL-LAPS/Untitled%203.png

打好补丁及windows2012及之后版本限制修改密码及运行身份等功能。

0x05 LAPS

Local Administrator Password Solution

工具下载地址

https://www.microsoft.com/en-us/download/details.aspx?id=46899

/images/Domain-SYSVOL-LAPS/Untitled%204.png

import-module AdmPwd.PS
Get-Command -Module AdmPwd.PS
CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Cmdlet          Find-AdmPwdExtendedRights                          AdmPwd.PS
Cmdlet          Get-AdmPwdPassword                                 AdmPwd.PS
Cmdlet          Reset-AdmPwdPassword                               AdmPwd.PS
Cmdlet          Set-AdmPwdAuditing                                 AdmPwd.PS
Cmdlet          Set-AdmPwdComputerSelfPermission                   AdmPwd.PS
Cmdlet          Set-AdmPwdReadPasswordPermission                   AdmPwd.PS
Cmdlet          Set-AdmPwdResetPasswordPermission                  AdmPwd.PS
Cmdlet          Update-AdmPwdADSchema                              AdmPwd.PS
Get-AdmPwdPassword
  • 如果配置不当,我们可以在域内一台普通主机,查看域内其他主机本地管理员账号
comments powered by Disqus