赛季7靶场 - Haze (Just Hit)

发布于:2025-04-03 ⋅ 阅读:(10) ⋅ 点赞:(0)

        本系列仅说明靶场的攻击思路,不会给出任何的详细代码执行步骤,因为个人觉得找到合适的工具以实现攻击思路的能力也非常重要。

1.我们进行了初步的nmap端口扫描

【*】我们没有域账号,所以我们无法使用域功能。当前的重要目标是获取一个域账户。

2.为了获取一个域账户,我们首先查看是否存在空认证的文件系统,比如SMB,NFS,FTP等内容。很可惜不存在。我们查看8000端口发现是splunk,如果获取到splunkd的管理员账户我们便可以感染部署了Splunk日志采集的主机。

【*】Splunk Admin账号我们希望获取。

3.我们进一步查明Splunk版本,我们在8089端口发现了splunk版本是9.2.1,该版本存在路劲遍历漏洞。我们成功获取了/etc/passwd文件,并了解到存在的用户名字。我们去Splunk官方网站查看文档(或者询问AI),了解到Splunk有几个被加密的秘钥存在在几个文件中。我们依次寻找这些文件,并发现了一处LDAP密码,这正是我们需要的,因为LDAP密码意味着域用户。

【+】Splunk攻击成功,了解用户名有哪些

【+】Splunk LDAP秘钥破解成功

4.我们成功获取了一个名为paul.t***r的域用户。我们开始构建域地图。域内仅3个用户,这明显不对,我们很可能是一名受限域用户。所以我们迫切希望了解其他的域用户信息。

【*】我们希望获取其他域用户信息

5.为获取其他域用户信息。我尝试访问所有可以访问的文件系统,均无收获。我开始尝试k8s爆破,鉴于Splunk提供的前半截账号信息,我使用seclist当中的某个字典,重新构造了一个用户名列表,最终爆破出mark.a***s用户。为了解这个用户,我必须知道他的密码,很幸运他们是密码复用的。

【+】获取mark.a***s用户

6.为更加了解域内情况,依旧开始构建域地图。构建成功。

7.发现mark.a***s用户是一名gMSA管理员账户,这一点非常有意思,意味着我们可以窃取gMSA账户hash。我们使用nxc快速窃取gMSA账户hash,但是失败了。很可能我们只有修改权限但没有读权限,借助这篇文章我们了解到了如何开启gMSA读权限。Exploitation - ACL exploiting | InfoSec Notes
8.我们开启了gMSA账户的读权限给mark.a***s用户,并进一步窃取了gMSA账户的hash。我们获取了haze-it-b***p账户。

【+】获取了haze-it-b***p账户。

9.我们查看haze-it-b***p账户是否存在特殊权限,我们根据域地图发现,haze-it-b***p账户是support_s***e组的WriteOwner权限。这意味着我们可以伪装成support_s***e组去完成一些事情。可惜的是support_s***e组貌似没有进一步的权限延伸,但作为一个特殊服务组,他应该有什么作用。于是我将haze-it-b***p账户添加到support_s***e组,并查明文件系统和证书模板以及影子证书。很快我们发现证书模板和影子证书都有可以进一步查明的东西。

10.我们使用certipy-ad发现证书模板没有什么蹊跷的地方。接下来使用pywhiser查看影子证书,我们发现了有趣的东西,haze-it-b***p账户(添加到support_s***e组后)我们可以修改

edward.m***n账户的msDS-KeyCredentialLink属性。这意味着我们很可能可以滥用这个权限。

11.我们使用certipy-ad实施影子证书攻击,成功获取edward.m***n账户的hash。

【+】获取edward.m***n账户的hash

12.去域地图查看edward.m***n账户的信息,我们发现他是一个Backup_v***r组的成员。名显而易见了,是一个备份查看员。我们使用edward.m***n账户登录到受害机,并且查找和备份相关的文件。很快我们便发现了一个splunk的备份文件。

【+】获取Splunk的备份文件

13.既然获取了备份文件,我们将很有可能获取近期的Splunk Admin的密码。我们查找Splunk的敏感文件,发现了几个密码hash($1$xxx,$7$xxxx)。结合splunk解密脚本,我们获取了一个密码。这个密码我们拿取尝试所有的Splunk账号,就是最开始的/etc/passwd文件中告诉我们的那些。很幸运,我们拿到了Splunk admin账号的密码!

https://github.com/HurricaneLabs/splunksecrets

【+】获取了Splunk admin账号

14.Splunk这个服务,如果获取Admin账号,我们便能够获取RCE。我们通过下面文章所给的payload,成功获取了一个alex***.g***n的账号

可参考这个文章

https://github.com/0xjpuff/reverse_shell_splunk

【+】我们获取了Splunk服务账号的Shell,名为alex***.g***n的账号

15.我们在域地图查看alex***.g***n的账号。貌似没有什么特别的,是Splunk_Admin组。这个组进一步也没有看到特殊权限。于是我们转向主机侧的提权方案。

16.我们查看当前用户的权限,我们发现了SeImperson***权限,这个权限已经非常著名,基本是看见就是SYSTEM。毫无悬念的提权成功。

【+】拿到root账户shell,恭喜你成功了!


网站公告

今日签到

点亮在社区的每一天
去签到