華碩 路由器固件解包打包

路由器已經(jīng)是我們生活中必不可少的網(wǎng)絡(luò)設(shè)備之一了。有不少的小伙伴喜歡搗騰路由器系統(tǒng)。喜歡在路由器系統(tǒng)中安裝各種插件來豐富“網(wǎng)絡(luò)生活”,但是你知道嗎?你的路由固件真的安全嗎?本文就讓我們一起來看看如何反編譯路由器的固件吧。
實(shí)驗(yàn)環(huán)境
kali2022.4
華碩路由器固件RT-ACRH17
Binwalk介紹
Binwalk
是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。 在CTF的MISC類題型和IOT安全的固件解包分析中應(yīng)用比較廣泛。
查看幫助

掃描固件
binwalk
的主要功能 - 也是迄今為止最受歡迎的功能。Binwalk
可以掃描許多不同嵌入式文件類型和文件系統(tǒng)的固件映像,通過掃描能夠智能的發(fā)現(xiàn)目標(biāo)文件中包含的所有可識(shí)別的文件類型。
通過掃描固件,我們可以看到主要有三部分。Flattened 目錄樹、LZMA壓縮數(shù)據(jù)、 Squashfs文件系統(tǒng)。

解包
我們可以通過binwalk -e
命令對(duì)固件進(jìn)行解包,效果如下。

進(jìn)入到對(duì)應(yīng)提取后的目錄查看提取后的文件,對(duì)lzma壓縮后的數(shù)據(jù)解壓后得到120
這一個(gè)文件,再對(duì)120
進(jìn)行binwalk
操作。

當(dāng)然解包后,路由器的系統(tǒng)文件我們也能一目了然。


搜索字符串

打包固件
如上,我們可以對(duì)路由器的固件進(jìn)行自我修改。如添加相關(guān)遠(yuǎn)程ssh
登錄的代碼?;蛘咝薷牧寺酚善髦衛(wèi)ogo或者圖片等信息。這時(shí)我們就需對(duì)固件重新打包了。
具體操作如下:
首先我們需要將Flattened
LZMA
這兩個(gè)分區(qū)的數(shù)據(jù)提取出來。因?yàn)檫@兩個(gè)數(shù)據(jù)是不能修改的,只有Squashfs
的數(shù)據(jù)是可以修改的。
命令如下
命令說明
if
是原固件,of
是輸出文件,bs
是單位長(zhǎng)度,skip
是偏移量,count
是分區(qū)大小(一般為Squashfs
的大小。)

切好之后生成head.bin
文件,我們就有了一個(gè)頭,只需要再把我們編輯的部分打包后,和頭拼到一起就行了。

最后將編譯好的rootfs.bin
的文件和切好的head.bin
文件放到一起
到此固件修改完成。同樣的理論上openwrt
都是一樣的。
總結(jié)
binwalk
的功能總體來說是比較強(qiáng)大的。在CTF比賽中,我們可以分離出藏在圖片中的相關(guān)信息。在路由固件打包方面相對(duì)比較麻煩,這時(shí)我們可以利用firmware-mod-kit
這款工具快速的完成。在下期文章中,我們將為你呈上firmware-mod-kit
的使用。