ikuai路由器分析

前言

ikuai路由器主要分为企业版和免费版本

免费版本

免费版本的固件可以在下面找到

https://www.ikuai8.com/component/download

免费版本需要解密固件才能用,解密方法我在前面博客是有写的

企业版本

企业版本的固件需要自己手动提取才行

可利用思路

/Action/call

/Action/call路径下面虽然对输入进行了过滤,但是仍然存在可能执行的命令注入,可以研究一下

1
2
3
4
5
6
7
8
9
local function __rest_check_illegality_char(s)
if type(s) == "string" then
return str_match(s, "['\"`$&;\\|\r\n ]")
end
end

--------------------------------------------------------------------
cmd = string.format("%s/usr/ikuai/function/func_api.sh %s %s ", cmd, func_name, action)

企业版本固件获取

UART

需要账户密码,密码是ikuai设计过的,估计不太好爆破

抓取升级包

ikuai的升级是通过/Action/call来的,但是传递数据貌似是通过HTTPS

也就是说可能需要解密HTTPS

工具提取固件

该固件的焊点比较小和低不好使用夹子提取

分析升级代码

发现关键代码

1
2
if $download_cmd filename=$filename write_file=$tempfile quiet=no >/dev/null 2>/tmp/update/download.status ;then

tempfile

找到tempfile为 local tempfile="/tmp/update/new_firmware.bin.$$"

于是定位到那边去,发现在升级的时候这里确实多了这样的数据,定位成功

filename

1
2
3
4
5
6
system)
if [ "$SYSBIT" = "x64" ];then
local filename=${VERSION_ALL[firmware_x64]}
else
local filename=${VERSION_ALL[firmware]}
fi

需要定位到VERSION_ALL[firmware_x64]

在version_all.sh中发现一个路径/tmp/iktmp/Version_all

1
2
3
4
5
6
7
8
9
10
11
12
13
[Q3000_oem]
system_ver = 3.7.14
firmwarename = IK-MT7981V1-Q3000_oem
firmware_x64 = MT7981V1-Q3000_sysupgrade_3.7.14_Build202408071732oem.bin
update_content = 一个全新的系统

[Q6000_oem]
system_ver = 3.7.14
firmwarename = IK-MT7981V1-Q6000_oem
firmware_x64 = MT7986V1-Q6000_sysupgrade_3.7.14_Build202408071732oem.bin
update_content = 一个全新的系统

......

打开发现全是版本,于是定位到VERSION_ALL[firmware_x64]

最终命令

1
ikluajit /tmp/iktmp/submit/submit3 down_firmware      filename=MT7986V1-Q6000_sysupgrade_3.7.14_Build202408071732oem.bin  write_file=/tmp/update/new_firmware.bin.123  quiet=no

最后查看报错

1
2
3
4
5
bash-4.4# cat download.status
cat download.status
--2024-09-26 17:37:23-- https://patch.ikuai8.com/firmware/IK-MT7981V1-Q3000/IK-MT7981V1-Q3000_sysupgrade_3.7.15_Build202409251748.bin
Resolving patch.ikuai8.com... failed: Try again.
wget: unable to resolve host address 'patch.ikuai8.com'

得到网址和链接

1
https://patch.ikuai8.com/firmware/IK-MT7981V1-Q3000/IK-MT7981V1-Q3000_sysupgrade_3.7.15_Build202409251748.bin

然后其实也可以直接下载下来到tmp目录,然后复制到/usr/ikuai/www/static/目录下,就可以直接下载了