HTB Authority writeup

前言

Authority 是一个windows域控box,配置了ldap服务,Ansible,和PWM。这一次的主要目标是凭证,认证,相关的挑战,与以往的(如Forest)不同,这一次的渗透都是围绕着认证来进行的,涉及到了凭证模板漏洞利用,windows seMachineAccountPrivelege权限利用,以及最后的passthecert。 

个人认为Authority算得上是Medium难度中最难的一档,但是却又够不着Hard的难度,觉得它比较难主要是因为有关凭证盗取,模板利用确实比较少见,至少对于一个初学者来说,利用凭证确实比较困难,且比较难理解,所以个人认为Authority的难度属于Medium中最难的。

信息收集

首先是常规的nmap:

 基本ldap,80端口开了,但是是一个IIS网站,没有什么特别有用的。还有一个8443的https,暂时不清楚是什么。

 还有smb,可以先从这里试试,看看有什么东西。

先用smbclient看看有什么

有两个较为可疑的目录,一个是Development另一个是Department Shares。都试一下。

 Department Shares这个目录看样子是不行。但是Development是可以的。里面有一个Automation目录。注意这里Development是可以匿名登录的,但是我这里图省事就没用那个开关,正确的命令应该是 smbclient //xx.xxx.xx.xxx/Development/ -N 。

东西还不少, 这里我们可以用命令把东西全部抓下来,然后一个一个慢慢翻。

详细解释一下,recurse on,表明开启循环,prompt off,表明关闭提示询问,正常从smb上下载文件会询问是否下载,prompt off可以关闭这个提示,mget *,表示下载该目录下的所有文件,这里我在Ansible目录下执行,大家也可以在Automation目录下执行。  

在下一步开始前,先介绍一下Ansible。Ansible,或者我们用中文安赛波,是一个开源的软件套组,旨在自动化设定类Unix系统和Windows的环境,它依靠playbook来进行自动化运维。而在我们从smb下载下来的文件来看,这里的安赛波还负责配置另一个名为PWM的服务。PWM同样也是一个开源的项目,PWM用于管理LDAP域的密码。而这个文件夹也是这次主要的目标。

如果从事后诸葛亮的角度来看,当我们看到这个机子用了PWM后就可以在后续的渗透中放弃或者降低如kerberoasting类的攻击。

回到目标中,我们会在PWM/defaults/main.yml里发现三个ansible vault。

 看title很明显就是一些敏感信息,但是经过了加密。但是,没有关系,这里有法子可以撞一下。这里我们用到一个叫ansible2john的脚本,它能将ansible vault转换成john能撞的格式。

注意这里大家自己将其中一个vault导出成一个1.yml,ansible2john不能将三个vault转成一个hash。

然后,我们就可以用hashcat开始对它进行一个狠狠的撞。 这里应该是可以用john的,但是emm,我找到的blog都是用hashcat的,而john的表现也不太好,所以我们还是用hashcat来撞。

 然后,Ta-Da!密码被撞出来了。

没错就是那个!@#$%^&*,翻译一下“shift”+1234567。然后我们就可以将ansible vault里的东西给解出来了。大家将这个密码可以放在一个文件里面,像我这里放在了.vault_password里,这样就可以直接用ansible解密出来。

 这里是其中一个,大家可以举一反三把其他两个也解出来。

Foothold

拿到了pwm的管理员密码,但是要用到哪里呢?答案就在一开始nmap的结果里,目标开了一个8443端口,这个端口如果有细心的人会发现这是一个https的服务,这里应该有些什么有趣的东西。如果你是这么想的,那么恭喜你答对了。

 这里是PWM的管理网页。而我们获得的管理密码就是用在这里。但不是在登录这里。而是下面一点Configuration Manager或者Configuration Editor那里。

进去之后我们在LDAP Directories/Connection那里将LDAP URLs改成本机的ip,然后nc监听一下。这样子我们就拿到了ldap或者svc-pwm的登录密码。

那个lDaP_1n_th3_cle4r!就是密码。拿到了密码和登录名后就可以用evil-winrm来登录获取立足点。

提权

这个机子的提权思路跟以往的不太一样。如果用HTB-Forest的思路来看,应该用BloodHound来寻路,但是这个机子没有什么路径,和其他用户,我们在svc-pwm里拿到user flag就很能说明这个问题了。因此不需要横向移动,同时这个机子的Kerberos形同虚设,基本不用考虑Kerberoasting啥的来获取票子。但是,Remember No System is safe。而我们需要先找一些线索。

而这个certs和pfx文件则是我们的提示。以结果为导向,我们需要获取凭证来得到管理员权限,在这里我们可以用certipy来看看那些凭证模板可以利用。这里大家可以参考hacktricks的这篇:AD CS Domain Escalation - HackTricks

这里我们看到CorpVPN这个模板里存在ESC1漏洞,而他则是允许一个域机器账户参与,虽说直到现在我还是不太理解这个漏洞为什么能给咱管理员权限,但这确实是个方向。

而要利用这个凭证模板漏洞,我们需要创建一个域机器账户,但是巧了,svc_ldap这个用户有这个权限。 用whoami /privl可以看见用户所拥有的权限。

得知了svc_ldap有创建域机器用户的权限后,我们可以用impacket中的addcomputer脚本来创建一个机器用户由于申请CorpVPN凭证。

机器添加后,我们可以用certipy来请求一个CorpVPN的凭证。 

 (第二列第二行,administrator.pfx)

按照hacktricks上面的来看,这个时候应该去auth,但是,这个机子的Kerberos的设置有些问题,导致我们没有办法正常的认证这个凭证,而根据提示,我们可以通过LDAP登录,具体点PassTheCert来登录,看看能否获取管理员权限。

首先第一步便是将pfx文件变成crt和key文件。还是certipy

然后用这个crt和key来登录passthecert。

接着有很多办法来完成提权,这里我将我们获得的svc_ldap用户移进Administrators用户组,从而获取管理员权限完成提权。(这里我已经将svc_ldap放进了Administrators里面所以会提示failed)

 推出evil-winrm,再进一次,svc_ldap就有管理员权限辣。

好耶!

总结

Authority的渗透涉及到大量的有关认证的知识,其中有关ESC1提权的原理我到现在还是不是很了解,还需要钻研。

另外讲一些打靶期间发生的有意思的事。在PWM的配置那里,我最开始的想法是这样的:看到warning,ldap没配好,所以登录不了,那我把ldap配好了,能登录了,那我不是乱玩,于是乎我花了一天把PWM配好了,就是能连接上了,然后,靶机炸了,ping不通了,啥都不好使了。我一开始还以为我还有哪里没整好,又花了一天,最后问了其他人才发现,我这是给自己挖了个兔子洞,然后没出来,问了一圈只有我这么干了,估计也没多少人像我这样给自己挖坑。

最后汇总一下这个靶机暴露出来的问题:

  1. smb分享文件夹支持匿名登录;
  2. smb分享文件夹中包含敏感信息,尽管经过加密;
  3. Ansible加密密钥属弱口令;
  4. PWM的LDAP配置可以反弹会登录口令;
  5. 域凭证模板中存在ESC1漏洞,结合svc_ldap拥有的创建域机器用户权限可以提取到管理员权限。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值