前言
今天的靶机依然是HTB(Hack The Box)的靶机-- Active,这是一台简单难度的域靶机,接下来我们会着重学习域渗透相关的知识,尤其是Kerberos和Kerberoasting攻击相关的知识。关于域渗透系列,就叫高级篇吧。
开干:
1、环境准备
-
HTB的靶机
选择HTB的Active靶机,下载HTB的VPN。
-
Kali
将HTB的vpn文件put到kali中,使用命令 openvpn + ovpn文件路径 命令开启vpn连接。连接成功会在HTB网页右上角显示CONNECTIONS
2、扫描开放端口
使用nmap命令扫描开放端口:
列举几个比较重要的开放端口:kerberos-sec 88端口、netbios-ssn 139端口、ldap 389端口、smb 445端口
3、寻找漏洞尝试利用
这边无需密码即可访问,接下来将所有文件下载到本地,查找有帮助的信息。
最终在 active.htb/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/Groups.xml 文件中发现了一些有用的信息:
当创建新的组策略首选项(GPP)时,都会在 SYSVOL 共享中创建一个包含该配置数据的 xml 文件,其中包括与 GPP 关联的任何密码,在这个Groups.xml文件中,就找到了SVC_TGS用户及其GPP密码:
active.htbSVC_TGS
edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ
通过kali自带的工具gpp-decrypt可以解密GPP密码:
得到用户SVC_TGS的密码为:GPPstillStandingStrong2k18
使用获取的账户密码,通过crackmapexec进行SMB枚举:
发现NETLOGON、Replication、SYSVOL、Users可读。进入Users目录查找用户Flag:
4、提权
smb枚举未发现对提权有帮助的信息,回到nmap扫描结果,发现这个靶机开启了kerberos服务,先介绍下kerberos,因为在域渗透中,kerberos是最常用的。
kerberos基础认证流程
先找个网图
先介绍几个概念:
-
KDC(Key Distribution Center)= 密钥分发中心
-
AS(Authentication Service)= 认证用户的身份,并为其发放TGT的服务
-
TGT(Ticket Granting Ticket)= TGT认证票据,由AS服务发放
-
TGS(Ticket Granting Service)= 票据发放服务
-
ST(Service Tickets)= ST服务票据,由TGS服务发送
-
AP(Application Server)= 提供用户所需的服务
解释如下:
1.AS_REQ。Client向 AS发起AS_REQ,请求内容为通过Client的哈希加密的时间戳、ClientID等内容。
2.AS_REP。AS使用Client密码哈希值进行解密,如果解密正确,就返回用krbtgt的 NTLM-hash加密的TGT (Ticket Granting Ticket,票据授权凭证)票据。TGT包含PAC(Privilege Attribute Certificate,特权属证书),PAC包含Client的相关权限信息,如SID及所在的组。简单理解,PAC就是用于验证用户权限,只有KDC能制作和查看PAC
3.TGS_REQ。Client 凭借TGT向TGS发起针对需要访问服务的TGS_REQ请求。
4.TGS_REP。TGS使用krbtgt的NTLM-hash对TGT进行解密,如果结果正确就返回用服务NTLM-hash 加密的TGS 票据(简称ST),并带上 PAC。注意,在Kerberos认证过程中,不论用户有没有访问服务的权限,只要TGT 正确,就会返回ST。
5.AP_REQ。Client利用ST去请求服务
6.AP_REP。服务使用自己的NTLM-hash解密ST。如果解密正确,就会将其中的PAC给 KDC解密,KDC由此判断Client是否有访问服务的权限。当然,如果没有设置PAC,就不会去KDC求证。
在这个过程中会延伸出许多的攻击手法,比如白银黄金票据,委派攻击,密码喷洒等攻击手法。
而接下来用到的kerberoasting攻击 正是处于TGS_REQ和TGS_REP之间的攻击。
kerberoasting攻击
查看GetUserSPNs.out:
问下GPT这个hash是什么类型,尝试用hashcat进行解密:
得到管理员的明文密码为Ticketmaster1968。
接下来用管理员账号密码进行共享枚举,获取root flag。
5、总结
这是我打的第一个单台域靶机,还是比较简单的,先用smb枚举,查找文件,获取普通用户的账户密码,再用kerberoasting攻击获取管理员的密码。因为想通过OSCP认证必须要拿下域控,所以接下来的靶机都是以域靶机为主。加油吧~
原文始发于微信公众号(从黑客到保安):跟着大佬学渗透之高级篇01
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论