域渗透02-SYSVOL 漏洞 (MS14-025)

目录

前言:

组策略基础:

SYSVOL 漏洞:

漏洞原理:

 漏洞测试:

使用GPP提权:     

修复:

总结:


前言:

        域渗透打域控主要还是靠漏洞,没有什么比漏洞一把梭还要过瘾,所以这里将最好用的漏洞拿出来给大家讲讲,这首先还是要说说MS14-025漏洞,也算是很老的漏洞了,简单容易操作,如果域环境比较老而且管理员也不是很注重安全,一般都存在,当然这里找到的密码也不一定就是administrator的密码,即便不是管理员密码,也可以给我们一点思路,比如密码的命名策略还有一些配置文件可以看看有没有泄露什么有意思的东西。

组策略基础:

        首先我们要知道什么是组策略,组策略是干什么的,组策略全称Group Policy Preferences,也就是GPP,常说的GPP漏洞就是这里的MS14-025漏洞。什么情况下会使用到组策略,系统中我们可以新建用户,默认最高权限账号为administrator,一般在域环境中管理员为了限制大家的权限不会给与administrator权限,这个时候就需要使用GPP来更改所有主机的内置管理员账号密码,当然GPP还能干很多,但是了解这点就够了,类似下面的情况:

可以使用命令来开启账号(win10 需要,以下不需要):

net user administrator /active:yes

 

 这个时候我直接切换用户到Administrator账户,我其实就是脱域了,这个情况是域管理员不希望看到的,所以可以使用GPP批量重置管理员密码,这样我们不知道密码没有办法登录Administrator账号,而且当哪台主机需要管理员权限,也可以做到用完后批量修改和定期密码修改。

        当然说点题外的,GPP可以设置我们不能修改Administrator账号密码,但是我们可以新建个账号,加入Administrator组就可以绕过定期修改密码这个问题,当然这是题外话。

        具体的设置方法可以网上看看,可以加深理解。下面就讲下具体的漏洞。

SYSVOL 漏洞:

漏洞原理:

        上面讲了GPP具体做什么,就是重置主机内置的Administrator账号密码,在新建完组策略,策略对象并添加本地账号密码后,会再域服务下面目录会生成这几个文件

C:\Windows\SYSVOL\domain\Policies

这里的每个IP号就对应我们域控设置的组策略。

        通过上面的截图我们可以知道我们这个组策略的ID为{2D3F9487-62F8-474E-9A95-D67CD48EF3E4},进入该目录的{2D3F9487-62F8-474E-9A95-D67CD48EF3E4}\Machine\Preferences\Groups下可以看到一个名为Groups.xml文件,这个文件中加密保存了我们输入的内置管理员密码,就是位于cpassword。

        正常来说其实也没有问题,但是微软公布了加密密钥

        这样的话就可以用这个密钥对得到明文密码。       

 也就是所,我们组策略设置的内容都会在这个目录里,我们通过访问里面的配置文件就可以读取到每条组策略是如何设置。

 漏洞测试:

        上面我们知道在我们批量修改本地管理员密码的时候,会使用GPP来进行批量的修改,并且在设置完后会在C:\Windows\SYSVOL\domain\Policies对应的策略ID目录下生成Groups.xml文件,其中包含了加密的密码,然后使用微软公布的密钥进行解密。

        因为SYSVOL是共享文件,这样我们可以访问域控的SYSVOL文件,然后在文件夹中搜索Groups.xml文件,或者使用命令

findstr /S cpassword \\test.org\sysvol\*.xml

我的测试环境为目录:

\\WIN-Q7LOKMBEHNU.galaxy.org\SYSVOL\galaxy.org\Policies\{2D3F9487-62F8-474E-9A95-D67CD48EF3E4}\Machine\Preferences\Groups\Groups.xml

找到cpassword="ywwP+5GipApmYTi8cs23jQ"

这里我们可以使用kali下自带的工具进行解码:

gpp-decrypt "ywwP+5GipApmYTi8cs23jQ"

 

可以得到密码为Aa@123,这里我们得到了明文密码,下面应该怎么做,很多人应该想到了,直接连接域控,就拿下了域控,这里我们使用impack工具尝试:

apt-ger install pipx
python3 -m pipx install impacket

smbexec.py galaxy.org/Administrator:"Aa@123"@192.168.1.3 

         但是密码是错误的,不能远程登陆,这个时候有些人可能有疑惑为什么明明解出密码了为什么不能链接,是不是解错了还是工具有问题。

        这时候就要注意的,这里的Aa@123的密码是主机内置的管理员的密码,而不是域控管理员的密码,只是有时候管理员安全意识不强,会把管理员密码和主机内置管理员密码设置成一样的,也只有这个时候我们才能远程登陆主机,但是这个机会太少了,但是我们可以使用这个密码来登录内置的管理员。

使用GPP提权:     

        有意思的是虽然我们不能用这个密码来登录域控,但是我们可以用这个密码来提权,下面我们做一个测试,首先我们使用使用没有管理员权限的测试

输入:whoami /groups | find "S-1-16-12288"

可以看到没有返回,证明非管理员权限,这个时候我们用刚才的密码切换到administrator账号

runas /user:administrator cmd

whoami /groups | find "S-1-16-12288"

 可以看到成功切换到administrator账号,且拥有了最高权限,但是这个时候要注意

        看到了吗,同样使用net time /domain,得到的是两种不同的结果,这里就要注意了,我们虽然提权成功了,但是我们此时是在脱域的状态,administrator这个账号是本机最高权限,却不受域的管控,这样可以绕过一些域的策略。 

修复:

        我们可以采取以下方式进行修复:

  1. 安装KB2962486 补丁,防止新的凭据被放置在组策略首选项中。
  2. 设置共享文件夹 SYSVOL 的访问权限。
  3. 将包含组策略密码的 XML 文件从 SYSVOL 目录中删除 。
  4. 不要把密码放在所有域用户都有权访问的文件中。
  5. 如果需要更改域中机器的本地管理员密码,建议使用 LAPS。

总结:

        通过对漏洞的分析我们可以看到很多有意思的事情,首先网上很多分析这个漏洞的人本身可能并不是很了解这个漏洞的原因,就直接用得到的密码去登录域控,导致很多人看到后也去测试,发现没法登录,所以要想好好用一个漏洞,一定要了解这个漏洞的成因,虽然不用很精通,但是也要去了解,不能拿来主义。

        另外很多人用这个漏洞发现不能登录域控就放弃了,但是这个时候还是要多做一些尝试,比如用这个漏洞可以得到本机的管理员权限,还是脱离域控的,可以干很多事情。        

        另外其实不止这个文件,由于这个ID是组策略ID,其实我们还可以去其他文件夹里翻翻看,也许有意外收获。

  1. Groups\Groups.xml
  2. Services\Services.xml
  3. ScheduledTasks\ScheduledTasks.xml
  4. Printers\Printers.xml
  5. Drives\Drives.xml
  6. DataSources\DataSources.xml

     比如添加计划任务的就会在ScheduledTasks.xml中,里面也有可能存在账号密码。

     另外网上我看有人做组策略后门的,但是个人感觉不是很实用,作为研究还是可以的,感兴趣的可以自己去搜索看看。

猜你喜欢

转载自blog.csdn.net/GalaxySpaceX/article/details/130375604
今日推荐