跟着大佬学渗透之高级篇01

admin 2023年11月18日23:25:24评论36 views字数 2449阅读8分9秒阅读模式

前言

今天的靶机依然是HTB(Hack The Box)的靶机-- Active,这是一台简单难度的域靶机,接下来我们会着重学习域渗透相关的知识,尤其是Kerberos和Kerberoasting攻击相关的知识。关于域渗透系列,就叫高级篇吧。

开干:

1、环境准备

  • HTB的靶机


跟着大佬学渗透之高级篇01

选择HTB的Active靶机,下载HTB的VPN。

  • Kali

将HTB的vpn文件put到kali中,使用命令 openvpn + ovpn文件路径 命令开启vpn连接。连接成功会在HTB网页右上角显示CONNECTIONS

2、扫描开放端口

使用nmap命令扫描开放端口:

跟着大佬学渗透之高级篇01

列举几个比较重要的开放端口:kerberos-sec 88端口、netbios-ssn 139端口、ldap 389端口、smb 445端口

3、寻找漏洞尝试利用

netbios-ssn 网络基本输入输出系统,当netbios运行时,netbios不光允许局域网内的用户访问你的硬盘资源,其他人也能访问。
所以,这里进行SMB(网络文件共享系统)枚举,来访问一些共享内容。需要用到一个工具--SMBmap
运行命令 smb -H 靶机IP,查看能访问的共享内容:

跟着大佬学渗透之高级篇01

可以看到这边Replication允许读取,接下来使用smbclient访问读取:

跟着大佬学渗透之高级篇01

这边无需密码即可访问,接下来将所有文件下载到本地,查找有帮助的信息。跟着大佬学渗透之高级篇01

最终在 active.htb/Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/Groups.xml 文件中发现了一些有用的信息:跟着大佬学渗透之高级篇01

当创建新的组策略首选项(GPP)时,都会在 SYSVOL 共享中创建一个包含该配置数据的 xml 文件,其中包括与 GPP 关联的任何密码,在这个Groups.xml文件中,就找到了SVC_TGS用户及其GPP密码:

active.htbSVC_TGS

edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ

通过kali自带的工具gpp-decrypt可以解密GPP密码:

跟着大佬学渗透之高级篇01

得到用户SVC_TGS的密码为:GPPstillStandingStrong2k18

使用获取的账户密码,通过crackmapexec进行SMB枚举:

跟着大佬学渗透之高级篇01

发现NETLOGON、Replication、SYSVOL、Users可读。进入Users目录查找用户Flag:

跟着大佬学渗透之高级篇01

跟着大佬学渗透之高级篇01

4、提权

smb枚举未发现对提权有帮助的信息,回到nmap扫描结果,发现这个靶机开启了kerberos服务,先介绍下kerberos,因为在域渗透中,kerberos是最常用的。

kerberos基础认证流程

先找个网图

跟着大佬学渗透之高级篇01

先介绍几个概念:

  • 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攻击

使用Impacket 中的脚本GetUserSPNs.py(该脚本可以请求注册于用户下的所有SPN的服务票据)来获取SVC_TGS用户的SPN
命令如下:
GetUserSPNs.py -request -dc-ip 靶机IP active.htb/SVC_TGS:GPPstillStandingStrong2k18

跟着大佬学渗透之高级篇01


查看GetUserSPNs.out:

跟着大佬学渗透之高级篇01

问下GPT这个hash是什么类型,尝试用hashcat进行解密:

跟着大佬学渗透之高级篇01

跟着大佬学渗透之高级篇01

跟着大佬学渗透之高级篇01

得到管理员的明文密码为Ticketmaster1968。

接下来用管理员账号密码进行共享枚举,获取root flag。

跟着大佬学渗透之高级篇01

跟着大佬学渗透之高级篇01

5、总结

这是我打的第一个单台域靶机,还是比较简单的,先用smb枚举,查找文件,获取普通用户的账户密码,再用kerberoasting攻击获取管理员的密码。因为想通过OSCP认证必须要拿下域控,所以接下来的靶机都是以域靶机为主。加油吧~



原文始发于微信公众号(从黑客到保安):跟着大佬学渗透之高级篇01

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月18日23:25:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   跟着大佬学渗透之高级篇01http://cn-sec.com/archives/2219081.html

发表评论

匿名网友 填写信息