Shared 是一台中等难度的 Linux 机器,它具有通向立足点的 Cookie SQL 注入,然后通过对 Golang 二进制文件进行逆向工程并利用两个 CVE 来获得 root shell 来提升权限。
循例nmap
查看证书
看到这个扫了一下vhost
checkout子域
从主站商店选择一件商品加入购物车
结算后会跳到checkout子域
从Cookie中的custom_cart带过来的
它受sql注入影响
接下来就是常规操作
得到james_mason的密码hash
在线爆得到明文密码
这次的ssh username没有变化,直接就是数据库这里的username
传个pspy过去看
2024/01/08 22:33:01 CMD: UID=1001 PID=2469 | /bin/sh -c /usr/bin/pkill ipython; cd /opt/scripts_review/ && /usr/local/bin/ipython
2024/01/08 22:33:01 CMD: UID=0 PID=2472 | /usr/sbin/CRON -f
2024/01/08 22:33:01 CMD: UID=1001 PID=2473 | /bin/sh -c /usr/bin/pkill ipython; cd /opt/scripts_review/ && /usr/local/bin/ipython
ipython版本是8.0.0
谷歌得到一个相关的cve
这个版本在运行ipython时ipython总是会在当前目录查找配置文件,官方解释:
几乎所有版本的 IPython 都在当前查找配置和配置文件 工作目录。由于 IPython 是在 pip 和环境之前开发的 存在,它被用来在项目中加载代码/包的便捷方式 依赖方式。
在 2022 年,它不再需要,并且可能导致令人困惑的行为,其中 例如,克隆存储库并启动 IPython 或从 任何将 ipython 设置为内核的 Jupyter-Compatible 接口都可能导致 代码执行。
通过它,我们能够在dan_smith执行ipython时进行reverse shell
在/tmp创建个一样的目录结构,在startup/下写shellcode
cp过去/opt/scripts_review/
我们会得到它
find
运行,发现它是登录了redis,密码估计是硬编码写代码里了
传回攻击机
ida一看密码就出来了
hacktricks告诉我们可以尝试load module
https://github.com/n0b0dyCN/RedisModules-ExecuteCommand/
make之后将so传过去
module load
root flag