一.前言
PTT(Pass the Ticket,票据传递)攻击是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。这种攻击手段可以用Kerberos票据进行内网横向渗透,不需要管理员权限,它最常见的用途可能是使用黄金票据和白银票据,通过票据传递访问主机,其利用方法十分简单。例如,通过这种手段,攻击者可以从Linux系统中窃取Kerberos凭据,然后在身份验证时将其传递到Windows机器上,达到横向渗透的结果。
二.前文推荐
ATT&CK视角下的红蓝对抗:一. 隧道穿透技术详解
ATT&CK视角下的红蓝对抗:二. 内网探测协议出网
ATT&CK视角下的红蓝对抗:三. 内网常规隧道利用方法
ATT&CK视角下的红蓝对抗:四. 内网穿透之通过Earthworm(EW)进行隧道穿透
ATT&CK视角下的红蓝对抗:五. 内网穿透之利用HTTP协议进行隧道穿透
ATT&CK视角下的红蓝对抗:六.内网穿透之利用FRP进行隧道穿透
ATT&CK视角下的红蓝对抗:七.内网穿透之利用Venom进行隧道穿透
ATT&CK视角下的红蓝对抗:八.内网穿透之利用Termite进行隧道穿透
ATT&CK视角下的红蓝对抗:九.内网穿透之利用GRE协议进行隧道穿透
ATT&CK视角下的红蓝对抗:十.内网穿透之利用DNS协议进行隧道穿透
ATT&CK视角下的红蓝对抗:十一.内网穿透之利用SSH协议进行隧道穿透
ATT&CK视角下的红蓝对抗:十二.内网穿透之Windows文件传输技术详解
ATT&CK视角下的红蓝对抗:十三.内网穿透之Linux文件传输技巧详解
ATT&CK视角下的红蓝对抗:十四.内网穿透之反弹流量分析与检测方法
ATT&CK视角下的红蓝对抗:十五.内网穿透之利用ICMP协议进行隧道穿透
ATT&CK视角下的红蓝对抗:十六.横向移动之利用Windows计划任务进行横向移动
ATT&CK视角下的红蓝对抗:十七.横向移动之利用远程服务进行横向渗透
ATT&CK视角下的红蓝对抗:十八.横向移动之利用WinRM进行横向渗透
ATT&CK视角下的红蓝对抗:十九.横向移动之利用PTH(哈希传递)进行横向渗透
ATT&CK视角下的红蓝对抗:二十.横向移动之利用PTT(票据传递)进行横向渗透
三.利用票据传递(Pass the Ticket)进行横向渗透
PTT(Pass the Ticket,票据传递)攻击是一种使用Kerberos票据代替明文密码或NTLM哈希的方法。这种攻击手段可以用Kerberos票据进行内网横向渗透,不需要管理员权限,它最常见的用途可能是使用黄金票据和白银票据,通过票据传递访问主机,其利用方法十分简单。例如,通过这种手段,攻击者可以从Linux系统中窃取Kerberos凭据,然后在身份验证时将其传递到Windows机器上,达到横向渗透的结果。
1.MS14-068
MS14-068是密钥分发中心(KDC)服务中的Windows漏洞,位于域控制器的密钥分发中心的kdcsvc.dll。它允许经过身份验证的用户在其Kerberos票证中插入任意PAC,并且可能允许攻击者将未经授权的域用户账户的权限提升为域管理员的权限。攻击者可以通过构造特定的请求包来达到提升权限的目的。
该漏洞的利用条件如下。
- 获取域普通用户的账号密码。
- 获取域普通用户的SID。
- 服务器未安装KB3011780补丁。
利用过程如下。
1)查看服务器是否安装KB3011780补丁。执行命令systeminfo来获取系统详细信息,命令执行结果如图1-1所示。
2)获取用户的SID值。本次使用的域用户为test1,该用户为域内普通用户,使用命令 whoami /all查询用户SID,执行结果如图1-2所示,可以看到当前用户的SID的值为S-1-5-21-852302026-1017351130-1254579120-1104。
3)创建票据之前要清空系统内票据。使用Mimikatz工具删除票据,执行命令kerberos::purge,命令执行结果如图1-3所示。
4)下载ms14-068.exe漏洞利用程序到机器上进行测试,输入命令ms14-068.exe -u Administrator@test.com -p Admin123. -s S-1-5-21-852302026-1017351130-1254579120-1104 -d 192.168.1.2,其中-u参数用来指定域用户@域名,-p参数用来指定域用户密码,-s参数用来指定域用户SID,-d参数用来指定域控IP。命令执行结果如图1-4所示。
5)漏洞利用成功后会生成相应票据,我们使用Mimikatz将凭据注入内存中,执行命令 “kerberos::ptc 票据”,命令执行结果如图1-5所示。
6)将票据注入内存中后,使用psexec.exe工具连接域控建立交互式会话,执行命令 psexec.exe \192.168.1.2 cmd.exe即可获取域控权限,命令执行结果如图1-6所示。
2.使用kekeo进行票据传递
kekeo工具是一款开源工具,主要用来进行票据传递、S4U约束委派滥用等。如果想要使用该工具生成票据,则需要使用域名、用户名、哈希配合。
1)首先我们使用cmd打开当前工具的目录,输入命令kekeo.exe "tgt::ask /user:Administrator /domain:test.com /ntlm:3766c17d09689c438a072a33270cb6f5"后将会生成票据,如图1-7所示。
2)注入票据之前需要清理当前系统所存票据。使用命令kerberos::purge来清除当前内存中其他票据,如果不清除原有票据可能会导致注入票据失败,命令执行结果如图1-8所示。
3)执行命令“kerberos::ptt 票据路径”,将票据注入内存中。命令执行结果如图1-9所示。
4)注入完成后,使用命令klist来查看票据是否注入成功。命令执行结果如图1-10所示,可以看到票据注入成功。
5)使用dir命令来验证票据是否具有权限。使用命令dir \192.168.1.2C$远程查看域控的C盘目录下的文件,命令执行结果如图1-11所示,可以看到已经能够访问域控下文件。
四.本篇总结
本文介绍了一种利用Kerberos票据进行横向渗透的攻击手段——PTT(票据传递)攻击。攻击者可以通过这种手段从Linux系统中窃取Kerberos凭据,然后在身份验证时将其传递到Windows机器上,达到横向渗透的结果。文章还详细介绍了利用MS14-068漏洞进行PTT攻击的过程,以及使用kekeo工具进行票据传递的方法。最后,文章通过实例演示了如何利用票据传递攻击获取域控权限。
我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!