极路由存在远程命令执行漏洞,这是一个非常古老的漏洞,并且影响到全版本。分为两篇进行介绍,第一篇为固件分析和环境的模拟运行,第二篇为cloud_token的计算和远程命令执行漏洞分析。
极路由的固件有两种打包方式一种是以R34-sysupgrade-20180615-fafd840f.bin固件为例,一种是以HC5661-sysupgrade-20180510-5dd5e8fd.bin固件为例。
运行binwalk R34-sysupgrade-20180615-fafd840f.bin 命令分析固件的格式。
系统文件是UBI格式的,使用binwalk -e R34-sysupgrade-20180615-fafd840f.bin进行解包,会提取出一个7D9DC.ubi文件,查看文件信息为UBI image, version 1。
使用ubireader_extract_images 7D9DC.ubi命令提取到3个ubifs文件,分别为kernel data rootfs 。
执行file img-1782569745_vol-ubi_rootfs.ubif查看rootfs的文件格式,发现是Squashfs filesystem格式的文件系统,使用xz格式进行的压缩。
执行7z x img-1782569745_vol-ubi_rootfs.ubif进行解压缩得到路由器的系统文件。
使用binwalk HC5761-sysupgrade-20180510-0dd7abd0.bin分析固件的文件系统,固态文件是由U-Boot + uImage + xz 文件组成,xz就是我们需要提取的rootfs。
用010打开固件跳到0x17007E发现从0x170000开始的是SquashFS文件格式。

既然是SquashFS文件格式,为什么binwalk没有识别出呢,先使用dd命令或者手动把从0x170000开始的所有文件导出存为HC5761.bin,执行file HC5761.bin命令查看文件类型。
version -5.-1显然是错误的,R34的是version 4.0。使用SquashFS.bt打开img-1782569745_vol-ubi_rootfs.ubifs,然后查看version的字段的偏移,将HC5761.bin的0X1C开始处修改为 04 00 00 00 . 然后就可以使用SquashFS.bt打开HC5761.bin了,这里也可以确定是与0XFF进行了异或。
-3179 inodes 也需要修改, 95 F3 FF FF 与 0XFF 异或 6A 0C 00 00 。
compression 的 FB FF 修改为 04 00 。

使用 file HC5761.bin 和 binwalk HC5761.bin 分析,都显示正常。
然后使用7z x HC5761.bin 解压得到固件的rootfs。
安装qemu模拟器qemu-user-static,利用Linux的binfmt_misc机制执行MIPS架构的sh,跳转到rootfs的根目录,执行sudo chroot . bin/busybox sh 进入固件的shell。
/etc/init.d/nginx 为nginx的启动shell。运行source /etc/init.d/nginx;start;启动nginx,提示/var/run/ 目录不存在,mkdir -p /var/run/建立目录,再建立目录 mkdir -p /var/lock/。
之后再运行 source /etc/init.d/nginx;start; 开启nginx。
运行 source /etc/init.d/fcgi-cgi;start; 开启fcgi-cgi。
浏览器访问 62cK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0p5J5y4#2)9J5k6e0m8Q4x3X3f1H3i4K6u0W2x3g2)9J5c8X3y4Y4K9g2)9J5k6r3u0A6L8W2)9J5c8R3`.`. 出现路由器配置页面则表示启动成功。

binwalk R34-sysupgrade-20180615-fafd840f.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Flattened device tree, size: 18341440 bytes, version: 17
220 0xDC ELF, 32-bit LSB shared object, ARM, version 1 (SYSV)
321153 0x4E681 Certificate in DER format (x509 v3), header length: 4, sequence length: 1284
321269 0x4E6F5 Certificate in DER format (x509 v3), header length: 4, sequence length: 1288
322357 0x4EB35 Certificate in DER format (x509 v3), header length: 4, sequence length: 1284
391812 0x5FA84 CRC32 polynomial table, little endian
393544 0x60148 CRC32 polynomial table, little endian
404739 0x62D03 HTML document header
413385 0x64EC9 HTML document footer
413487 0x64F2F HTML document header
422816 0x673A0 HTML document footer
422915 0x67403 HTML document header
431154 0x69432 HTML document footer
431267 0x694A3 HTML document header
431555 0x695C3 HTML document footer
514524 0x7D9DC UBI erase count header, version: 1, EC: 0x0, VID header offset: 0x800, data offset: 0x1000
binwalk R34-sysupgrade-20180615-fafd840f.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Flattened device tree, size: 18341440 bytes, version: 17
220 0xDC ELF, 32-bit LSB shared object, ARM, version 1 (SYSV)
321153 0x4E681 Certificate in DER format (x509 v3), header length: 4, sequence length: 1284
321269 0x4E6F5 Certificate in DER format (x509 v3), header length: 4, sequence length: 1288
322357 0x4EB35 Certificate in DER format (x509 v3), header length: 4, sequence length: 1284
391812 0x5FA84 CRC32 polynomial table, little endian
393544 0x60148 CRC32 polynomial table, little endian
404739 0x62D03 HTML document header
413385 0x64EC9 HTML document footer
413487 0x64F2F HTML document header
422816 0x673A0 HTML document footer
422915 0x67403 HTML document header
431154 0x69432 HTML document footer
431267 0x694A3 HTML document header
431555 0x695C3 HTML document footer
514524 0x7D9DC UBI erase count header, version: 1, EC: 0x0, VID header offset: 0x800, data offset: 0x1000
file 7D9DC.ubi
7D9DC.ubi: UBI image, version 1
file 7D9DC.ubi
7D9DC.ubi: UBI image, version 1
img-1782569745_vol-kernel.ubifs img-1782569745_vol-rootfs_data.ubifs img-1782569745_vol-ubi_rootfs.ubifs
img-1782569745_vol-kernel.ubifs img-1782569745_vol-rootfs_data.ubifs img-1782569745_vol-ubi_rootfs.ubifs
file img-1782569745_vol-ubi_rootfs.ubifs
img-1782569745_vol-ubi_rootfs.ubifs: Squashfs filesystem, little endian, version 4.0, xz compressed, 13262802 bytes, 3148 inodes, blocksize: 262144 bytes, created: Fri Jun 15 04:51:41 2018
file img-1782569745_vol-ubi_rootfs.ubifs
img-1782569745_vol-ubi_rootfs.ubifs: Squashfs filesystem, little endian, version 4.0, xz compressed, 13262802 bytes, 3148 inodes, blocksize: 262144 bytes, created: Fri Jun 15 04:51:41 2018
7z x img-1782569745_vol-ubi_rootfs.ubifs
7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
64-bit locale=C.UTF-8 Threads:20 OPEN_MAX:10240
Scanning the drive for archives:
1 file, 13459456 bytes (13 MiB)
Extracting archive: img-1782569745_vol-ubi_rootfs.ubifs
WARNINGS:
There are data after the end of archive
--
Path = img-1782569745_vol-ubi_rootfs.ubifs
Type = SquashFS
WARNINGS:
There are data after the end of archive
Physical Size = 13262802
Tail Size = 196654
Headers Size = 65784
File System = SquashFS 4.0
Method = XZ
Cluster Size = 262144
Big-endian = -
Created = 2018-06-15 12:51:41
Characteristics = DUPLICATES_REMOVED EXPORTABLE NO_XATTRS COMPRESSOR_OPTIONS
Code Page = UTF-8
7z x img-1782569745_vol-ubi_rootfs.ubifs
7-Zip 23.01 (x64) : Copyright (c) 1999-2023 Igor Pavlov : 2023-06-20
64-bit locale=C.UTF-8 Threads:20 OPEN_MAX:10240
Scanning the drive for archives:
1 file, 13459456 bytes (13 MiB)
Extracting archive: img-1782569745_vol-ubi_rootfs.ubifs
WARNINGS:
There are data after the end of archive
--
Path = img-1782569745_vol-ubi_rootfs.ubifs
Type = SquashFS
WARNINGS:
There are data after the end of archive
Physical Size = 13262802
Tail Size = 196654
Headers Size = 65784
File System = SquashFS 4.0
Method = XZ
Cluster Size = 262144
Big-endian = -
Created = 2018-06-15 12:51:41
Characteristics = DUPLICATES_REMOVED EXPORTABLE NO_XATTRS COMPRESSOR_OPTIONS
Code Page = UTF-8
binwalk HC5761-sysupgrade-20180510-0dd7abd0.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
116944 0x1C8D0 U-Boot version string, "U-Boot 1.1.3 (May 10 2018 - 06:06:17)"
124311 0x1E597 HTML document header
132957 0x2075D HTML document footer
133059 0x207C3 HTML document header
142384 0x22C30 HTML document footer
142483 0x22C93 HTML document header
150722 0x24CC2 HTML document footer
150835 0x24D33 HTML document header
151123 0x24E53 HTML document footer
327680 0x50000 uImage header, header size: 64 bytes, header CRC: 0x46F46105, created: 2018-05-09 22:25:36, image size: 1122008 bytes, Data Address: 0x80000000, Entry Point: 0x80000000, data CRC: 0x755C17D9, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "HC5761"
327744 0x50040 LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 3333004 bytes
1507454 0x17007E xz compressed data
1614226 0x18A192 xz compressed data
1707378 0x1A0D72 xz compressed data
...
12768656 0xC2D590 xz compressed data
12770562 0xC2DD02 xz compressed data
12772524 0xC2E4AC xz compressed data
binwalk HC5761-sysupgrade-20180510-0dd7abd0.bin
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
116944 0x1C8D0 U-Boot version string, "U-Boot 1.1.3 (May 10 2018 - 06:06:17)"
124311 0x1E597 HTML document header
132957 0x2075D HTML document footer
133059 0x207C3 HTML document header
142384 0x22C30 HTML document footer
142483 0x22C93 HTML document header
150722 0x24CC2 HTML document footer
150835 0x24D33 HTML document header
151123 0x24E53 HTML document footer
327680 0x50000 uImage header, header size: 64 bytes, header CRC: 0x46F46105, created: 2018-05-09 22:25:36, image size: 1122008 bytes, Data Address: 0x80000000, Entry Point: 0x80000000, data CRC: 0x755C17D9, OS: Linux, CPU: MIPS, image type: OS Kernel Image, compression type: lzma, image name: "HC5761"
327744 0x50040 LZMA compressed data, properties: 0x6D, dictionary size: 8388608 bytes, uncompressed size: 3333004 bytes
1507454 0x17007E xz compressed data
[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!
最后于 2025-10-27 16:09
被易之生生编辑
,原因: