搜索
缓存时间22 现在时间22 缓存数据 很多人如果换一个时间认识,就会有不同的结局。
查看: 383|回复: 7

iKuai 爱快软路由使用Docker获取root权限被堵了

[复制链接]
发表于 7 天前 | 显示全部楼层 |阅读模式

厌倦了滚动浏览相同的帖子?当您创建帐户后,您将始终回到您离开的地方。注册帐户,不仅可以享受无广告的清爽界面!

您需要 登录 才可以下载或查看,没有账号?注册

×
由于iKuai软路由基于OpenWRT“自研”且一直不开放root权限,因此本帖将介绍如何在免费版系统上打开root权限。如果您想简单解决,可以翻看 https://forum.naixi.net/forum.php?mod=viewthread&tid=2437 直接升级至3.7.14开心版,即可一劳永逸!


本帖讲解之前的通过 docker 替换系统文件的办法被堵的情况,目测如果 docker 插件不升级版本的话,这个漏洞可以一直用,无论爱快版本怎么升级都可以适用!因为 ikuai 的 docker 插件有一个挂载文件系统的漏洞,可以设法在 docker 容器内挂载宿主机的文件系统,然后修改对应的文件就可以绕过密码
iKuai 的新版 docker 做了限制:
- 对新建的容器执行挂载路径检查,只允许在/etc/disk_user 目录下,也就是 web 上面的目录,发现跨目录,直接 false 掉,无法新建

__check_srcpath()
{
local ROOT_PATH="/etc/disk_user"
local srcpaths="$1"
for path_dir in ${srcpaths//,/ }; do
local path_dir=${path_dir//:*/}

if [ "$path_dir" = "/" ]; then
echo "$path_dir not found"
return 1
fi

local tmp_dir=${path_dir//\.\./}
if [ "$tmp_dir" != "$path_dir" ]; then
echo "$path_dir not found"
return 1
fi

local abs_path="${ROOT_PATH}${path_dir}"

if [ ! -e "$abs_path" ]; then
echo "$path_dir not found"
return 1
fi
local dir_arry=(${path_dir//\// })
local hardlink=$(readlink ${ROOT_PATH}/${dir_arry[0]})

if [ ! -d "$hardlink" ]; then
echo "$path_dir not found"
return 1
fi
local i=0
for dir_one in ${dir_arry
  • }; do i=$((i+1)) [ "$i" = "1" ] && continue hardlink+="/$dir_one" done if [ ! -e "$hardlink" ]; then echo "$path_dir not found" return 1 fi done } - 对原有 Docker 容器的配置文件进行挂载路径检查,发现源路径异常后修改配置文件,取消所有挂载点 __check_config_json() { local config_path="$work_path/lib/containers" for config_one in $(ls $config_path); do local config_path_one="$config_path/$config_one/config.v2.json" for mount_one in $(cat $config_path_one |jq .MountPoints|grep "\"Source\"": | awk '{print $2}'); do [ "$mount_one" ] || continue local invalid=0 if [ "${mount_one:1:15}" != "/etc/disk_user/" ]; then invalid=1 fi if [ "${mount_one//\.\./}" != "$mount_one" ]; then invalid=1 fi if [ "$invalid" = "1" ]; then chattr -i $config_path_one chattr -a $config_path_one cat $config_path_one | jq '.MountPoints = {}' > /tmp/config.$$ mv /tmp/config.$$ $config_path_one fi done done }
  • 爱生活,爱奶昔~
    楼主| 发表于 7 天前 | 显示全部楼层
    其实原理也很简单,大致流程:
    需要先去它们的云平台部署 docker,这个就不多讲了,知道的都知道在哪里。
    接着去路由管理页面的「高级应用 -> 插件管理」找到 docker,按正常流程创建接口、下载镜像(任意一个可以进入控制台的镜像)、添加容器。
    171000rik5urhkmr5khedf.png
    这里添加容器建议把「挂载目录」也添加一下,方便后面修改。
    添加后可启动也可以不启动,然后点击左上角的滑块把 docker 的服务给关闭,注意是关闭整个 docker,否则后面的修改不会生效。
    171055hp151o8u5o6zo8oh.png
    然后去「系统设置 -> 磁盘管理 -> 文件管理」,进去你自己的存储盘,然后依次进入 Docker/lib/containers/<容器 ID>,将 hostconfig.json 和 config.v2.json 这两个文件下载到你的电脑上面。
    171219kjdf8lj9wswrplpd.png
    把挂载的源目录改成根目录,这里好像只需要修改 config.v2.json 就行。
    171722d95i3eq9v5w4aw3w.png
    171724lwux4jwd4jbxijji.png
    如果等下进入控制台后无法修改修改文件,尝试把 Privileged 改成 true(特权模式),不过我测试在 hostconfig.json 改特权模式似乎没生效,但是应该不会影响修改。
    修改后上传到相同的目录中,然后回去插件管理,开启 docker,启动容器并且进入控制台。
    接下来 cd 到挂载的目录(截图是 /mnt/root)
    然后你可以直接修改 etc/passwd 和 etc/shadow 这两个文件,不过这个比较麻烦,因为得去计算 shadow,这里推荐直接修改 etc/setup/rc 这个文件。
    echo '#!/bin/bash' > etc/setup/rc
    echo '/bin/ash --login' >> etc/setup/rc
    172828zytyxslpsl3mxyfc.png
    最后再去「系统设置 -> 登录管理 -> 远程访问」,把远程维护打开并且设置密码,然后就可以通过 ssh 客户端进行访问了。
    173739whqqbzqwpq43mr43.png
    如果需要长效使用自己去容器做一个自动启动的脚本实现自动修改。
    [发帖际遇]: 一个袋子砸在了 liammtop 头上,liammtop 赚了 3 点数. 幸运榜 / 衰神榜
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 7 天前 | 显示全部楼层
    不过要root也没啥用,这个系统没有 overlay,所有修改重启就失效!属于是精简的路由系统,没那些包管理器
    装应用还是用docker为主吧,拿ssh就是搞点骚操作的
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 5 天前 | 显示全部楼层
    这个问题挺棘手的呢
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 前天 08:59 | 显示全部楼层
    研究深入,厉害
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 前天 11:57 | 显示全部楼层
    lhc4000 发表于 2025-1-7 08:59
    研究深入,厉害

    大神  厉害分析透彻
    [发帖际遇]: liu66 乐于助人,奖励 6 金币. 幸运榜 / 衰神榜
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 昨天 14:25 | 显示全部楼层
    不过,iKuai的新版本docker已经对这个漏洞进行了限制。
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    发表于 昨天 15:04 来自手机 | 显示全部楼层
    dane 发表于 2025-1-8 14:25
    不过,iKuai的新版本docker已经对这个漏洞进行了限制。

    用3.7.14提root吧
    爱生活,爱奶昔~
    回复 支持 反对

    使用道具 举报

    Powered by Nyarime. Licensed

    GMT+8, 2025-1-9 22:06 , Processed in 0.046316 second(s), 17 queries , Gzip On, Redis On
    发帖际遇 ·手机版 ·小黑屋 ·RSS ·奶昔网 | 沪ICP备13020230号-1 |  沪公网安备 31010702007642号

    登录切换风格
    快速回复 返回顶部 返回列表