亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        NETGEAR R2000路由器固件封裝技術(shù)的分析與實(shí)現(xiàn)

        2017-05-27 07:06:45程軍
        中國(guó)新通信 2017年9期

        程軍

        【摘要】 針對(duì)NETGEAR R2000的安全審計(jì)問題,首先逆向分析澄清了固件升級(jí)包的封裝格式、壓縮算法和校驗(yàn)機(jī)制,其次工程實(shí)現(xiàn)了升級(jí)固件的完整封裝過程,為進(jìn)一步安全審計(jì)提供技術(shù)支持。

        【關(guān)鍵詞】 路由器 固件升級(jí) 安全審計(jì) 漏洞挖掘

        Analysis and Implementation of Firmware Encapsulation Scheme for NETGEAR R2000 Router CHENG Jun (Novel Horizon Technology Co. Ltd, Jinan Shandong 250100, China)

        Abstract: Aiming at security audit of NETGEAR R2000 router, reverse-analysis is performed to clarify the firmware update packet encapsulation formats, compression algorithm and verifying mechanism firstly, then implements the complete encapsulation process of upgrade firmware in detail. The work effectively support further security audit.

        Keywords: router; firmware upgrade; security audit; vulnerability digging

        一、引言

        R2000及其他系列型號(hào)路由器是美國(guó)固件(NETGEAR)公司[1]生產(chǎn)的接入路由器產(chǎn)品,市場(chǎng)占有率較高,深受用戶青睞。與此同時(shí),不斷曝出的安全漏洞使R2000等系列型號(hào)路由器的安全性受到質(zhì)疑。因此,加強(qiáng)R2000等型號(hào)路由器的安全審計(jì)工作刻不容緩,對(duì)及時(shí)發(fā)現(xiàn)和修補(bǔ)漏洞從而確保網(wǎng)絡(luò)安全具有重要意義。而安全審計(jì)的前提是澄清固件格式和提取還原文件系統(tǒng)。本文重點(diǎn)分析了R2000路由器的固件升級(jí)包封裝規(guī)范,實(shí)現(xiàn)了固件升級(jí)包的拆封和重裝,完成了文件系統(tǒng)的提取還原,為進(jìn)一步安全審計(jì)提供技術(shù)支持。

        二、R2000升級(jí)固件格式分析

        2.1分析環(huán)境介紹

        整個(gè)升級(jí)固件的分析及封裝實(shí)現(xiàn)都是在Linux Ubuntu14.0操作系統(tǒng)下進(jìn)行。安裝了路由器固件分析相關(guān)的工具軟件,包括Binwalk[2]、Squashfs[3] 文件解壓縮工具、Mkimage[4] 鏡像文件生成工具、IDA 反匯編工具[5],具體安裝過程可參見相關(guān)文檔[2-5]。另,分析過程常用到的Linux shell命令包括:file、strings、hexdump、dd,具體用法參見Linux相關(guān)文獻(xiàn)[6]。

        2.2 逆向分析過程

        (1)使用strings命令進(jìn)行字符串搜索

        利用strings命令顯示固件文件中的可打印字符。據(jù)此可了解掌握一些重要信息,包括是否進(jìn)行加密或編碼處理、嵌入式操作系統(tǒng)類型及版本號(hào)、固件生成工具名及版本號(hào)、所實(shí)現(xiàn)功能及函數(shù)名稱、Web管理頁面編程語言、重要函數(shù)代碼及其他典型特征信息。在對(duì)NETGEAR R2000的固件升級(jí)文件分析過程中可了解到如下信息:升級(jí)文件未進(jìn)行加密或編碼處理、操作系統(tǒng)為L(zhǎng)inux,固件生成工具為OpenWRT,設(shè)備型號(hào)為R2000,版本號(hào)為V1.0.0.34,設(shè)備ID為29764648+4+0+32+2x2+0。

        (2)使用Binwalk進(jìn)行固件升級(jí)文件掃描

        利用Binwalk對(duì)固件升級(jí)文件進(jìn)行識(shí)別,可大體掌握固件文件的組成、封裝格式、壓縮算法、文件系統(tǒng)類型、指令集等。具體過程如下:

        執(zhí)行命令 binwalk,獲知固件文件由四部分組成:操作系統(tǒng)鏡像頭、操作系統(tǒng)鏡像文件、文件系統(tǒng)鏡像頭、文件系統(tǒng),判明固件封裝格式為uImage,壓縮類型為lzma,文件系統(tǒng)類型為squashfs,字節(jié)順序?yàn)樾《耍珻PU架構(gòu)MIPS,操作系統(tǒng)為L(zhǎng)inux。

        執(zhí)行命令 binwalk -A ,可識(shí)別固件文件的指令集,據(jù)此可判斷和佐證CPU的架構(gòu)類型。

        執(zhí)行命令binwalk–Me,可遞歸提取解壓還原固件文件中的壓縮數(shù)據(jù)塊。實(shí)際測(cè)試比較發(fā)現(xiàn)binwalk對(duì)squashfs文件系統(tǒng)的還原不夠完整,因此下面利用squashfs專用工具還原文件系統(tǒng)。

        (3)Squashfs文件系統(tǒng)還原

        首先,根據(jù)binwalk分析結(jié)果界定文件系統(tǒng)的位置及大小,并利用dd命令抽??;然后利用squashfs工具包的unsquashfs命令進(jìn)行文件系統(tǒng)的解壓和還原,特別指出的是,命令運(yùn)行過程需要指定壓縮算法選項(xiàng)為lzma。

        (4)固件升級(jí)過程分析

        研究技術(shù)手冊(cè)得知R2000有2種固件升級(jí)方式,一種為自動(dòng)定期訪問FTP站點(diǎn)并檢測(cè)下載最新版本固件,通過選項(xiàng)設(shè)置可關(guān)閉該功能,另一種為先將升級(jí)固件文件下載到本機(jī),再通過WEB管理頁面選擇上傳升級(jí)文件,路由器將自動(dòng)完成固件校驗(yàn)與Flash寫入。采用網(wǎng)絡(luò)嗅探的方法,重點(diǎn)分析了后一種升級(jí)方式,分析結(jié)果如下:

        路由器上的uhttpd服務(wù)完成web訪問的管理,固件升級(jí)過程也由其控制;

        固件文件上傳通過TCP協(xié)議80端口進(jìn)行,依次讀取并傳送固件升級(jí)文件數(shù)據(jù)塊;

        路由器對(duì)登陸用戶名和口令字進(jìn)行Base64編碼,解碼后可還原登陸路由器的用戶名和口令字。

        (5)web服務(wù)程序反匯編分析

        利用IDA工具反匯編分析web服務(wù)uhttpd程序,重點(diǎn)研究澄清升級(jí)固件的處理過程和校驗(yàn)算法,如圖1所示,分析結(jié)果如下:

        路由器對(duì)固件升級(jí)文件的處理大體分為兩步,先校驗(yàn)完整性,后寫Flash芯片;

        校驗(yàn)過程是必備重要環(huán)節(jié),首先讀取固件升級(jí)文件頭部128字節(jié)數(shù)據(jù),解析獲取設(shè)備型號(hào)、hw_id、版本號(hào)等信息,并與路由器中存儲(chǔ)的上述信息進(jìn)行比對(duì),然后計(jì)算整個(gè)固件升級(jí)文件的校驗(yàn)和;

        將通過校驗(yàn)的固件升級(jí)文件寫入Flash芯片,其中主要利用了Flash寫函數(shù)“/sbin/run-ramfs”。

        其中,校驗(yàn)和計(jì)算過程如下:對(duì)鏡像文件以字節(jié)為單位依次讀取和相加,截取求和結(jié)果的低8位(1字節(jié)),若結(jié)果為0XFF則校驗(yàn)正確,否則表明鏡像文件內(nèi)容有變動(dòng)。

        2.3 分析結(jié)果

        與磁盤的分區(qū)管理類似,R2000等路由器存儲(chǔ)固件的Flash芯片被格式化為多個(gè)分區(qū),通常情況下分成4個(gè)區(qū)塊,分別用于存儲(chǔ)bootloader、kernel、fielsystem和nvram配置文件[7]。升級(jí)鏡像文件是整個(gè)固件的一部分。固件升級(jí)只是對(duì)Flash芯片的kernel和filesystem的文件存儲(chǔ)扇區(qū)進(jìn)行擦除和重寫,而不會(huì)破壞bootloader和參數(shù)配置信息。

        NETGEAR R2000的固件升級(jí)文件總體上分為128字節(jié)標(biāo)識(shí)頭、變長(zhǎng)操作系統(tǒng)內(nèi)核鏡像、變長(zhǎng)filesystem鏡像、變長(zhǎng)取整補(bǔ)充數(shù)據(jù)塊和1字節(jié)校驗(yàn)域等5部分,如圖2所示。其中128字節(jié)定長(zhǎng)標(biāo)識(shí)頭包含設(shè)備型號(hào)、hw_id、版本號(hào)等信息;變長(zhǎng)取整補(bǔ)充數(shù)據(jù)塊用于文件補(bǔ)0填充為4k字節(jié)的整數(shù)倍,以便于Flash芯片的快速定位與讀寫;kernel鏡像和filesystem鏡像都又分為Uimage頭和鏡像文件本身,其中鏡像文件進(jìn)行了lzma壓縮;1字節(jié)校驗(yàn)域用于存放前四部分?jǐn)?shù)據(jù)校驗(yàn)和的異或值。

        三、R2000升級(jí)固件封裝過程實(shí)現(xiàn)

        3.1文件系統(tǒng)壓縮

        對(duì)操作系統(tǒng)內(nèi)核和文件系統(tǒng)進(jìn)行壓縮,壓縮算法為lzma。壓縮命令為squashfs ./r2000 r42file_modify.img –comp lzma,其中./r2000為文件系統(tǒng)所在目錄,r42file_modify.img為壓縮后的文件名,-comp lzma指定壓縮算法為lzma。

        3.2文件系統(tǒng)鏡像文件生成

        將壓縮后的文件系統(tǒng)按照鏡像文件格式封裝,包括鏡像頭的生成和添加,利用的工具為mkimage,具體操作命令為mkimage –A mips –O linux –T kernel –C none –a 0x80002000 –e 0x801f68f0 –n “mips OpenWRT linux2.6.31”–d r42file_modify.img uImage,各選項(xiàng)參數(shù)中–A mips指定CPU架構(gòu)為MIPS,–O linux指定操作系統(tǒng)為linux,–T kernel指定鏡像類型為kernel,–a 0x80002000指定程序訪問點(diǎn),–e 0x801F68F0指定程序進(jìn)入點(diǎn),–d r42file_modify.img指定文件系統(tǒng)名。

        3.3固件升級(jí)鏡像文件組裝

        將 廠家所提供升級(jí)鏡像文件的文件頭、操作系統(tǒng)鏡像與上述步驟3生成的文件系統(tǒng)鏡像組裝在一起,具體操作命令為cat r42_forehead.img uImag >r42full_create.img。

        3.4校驗(yàn)和計(jì)算與填充

        對(duì)上述步驟3生成的鏡像文件進(jìn)行校驗(yàn)和計(jì)算并追加至文件末尾。編程實(shí)現(xiàn)了下列校驗(yàn)和計(jì)算過程:對(duì)鏡像文件以字節(jié)為單位依次讀取和二進(jìn)制相加,截取求和結(jié)果的低8位(1字節(jié))并取反。校驗(yàn)和計(jì)算結(jié)束后,將1字節(jié)校驗(yàn)值追加至文件末尾。至此,完成整個(gè)固件的封裝過程。

        四、結(jié)束語

        本文圍繞美國(guó)固件公司R2000路由器的安全審計(jì)問題,逆向分析澄清了其升級(jí)固件的封裝格式,重點(diǎn)分析了數(shù)據(jù)完整校驗(yàn)算法,在此基礎(chǔ)上工程實(shí)現(xiàn)了升級(jí)固件的完整封裝過程。下一步,我們將對(duì)所提取還原的文件系統(tǒng)開展安全審計(jì),力求發(fā)現(xiàn)安全漏洞并向廠家反饋修補(bǔ)意見,從而確保網(wǎng)絡(luò)可靠安全。

        參 考 文 獻(xiàn)

        [1] NETGEAR. N300 WIFI router[EB/OL]. http://www.netgear.com.cn/home/products

        /networking/wifi-routers/R2000.aspx?cid=wmt_netgear_organic.

        [2] Binwalk. Firmware analyze tool[EB/OL]. https://github.com/devttys0/binwalk.

        [3] Squashfs. Squashfs file system[EB/OL]. http://squashfs.sourceforge.net/.

        [4] Die.Net. Mkimage-Linux man page[EB/OL].https://linux.die.net/man/1/mkimage.

        [5] Chris Eagle. IDA Pro權(quán)威指南(第2版)[M]. 石華耀 段桂菊譯. 北京:人民郵電出版社,2012.

        [6] 布魯姆 布雷斯納漢. Linux命令行與shell腳本編程大全(第3版)[M]. 門佳 武海峰譯. 北京:人民郵電出版社,2016.

        [7] 吳少華等.揭秘家用路由器0day漏洞挖掘技術(shù)[M].北京:電子工業(yè)出版社,2015.

        免费无码不卡视频在线观看| 国产成人自拍视频在线免费| 日韩成人高清不卡av| 一二三四区中文字幕在线| 中文字幕人妻被公上司喝醉| 伊人精品在线观看| 韩国美女主播国产三级| 青青草在线这里只有精品| 国产aⅴ无码专区亚洲av麻豆 | 中文字幕一区二区三区在线看一区| 日韩精品专区在线观看| 免费少妇a级毛片人成网| 国产香蕉尹人综合在线观| 国产大学生自拍三级视频| 亚洲国产精品高清一区| 免费人成在线观看视频播放| 一区二区三区在线观看视频免费 | 天天av天天爽无码中文| 最近亚洲精品中文字幕| 日本一区二区免费在线看| 18禁无遮拦无码国产在线播放| 在线观看av中文字幕不卡| 中文字幕a区一区三区| 亚洲中文字幕舔尻av网站| 亚洲一本到无码av中文字幕| 91精品啪在线观看国产色| 日韩亚洲在线观看视频| 亚洲av无一区二区三区久久| 亚洲熟妇无码av不卡在线播放 | 内射精品无码中文字幕| 中日无码精品一区二区三区| 成人av蜜桃在线观看| 男女上下猛烈啪啪免费看| 亚洲情a成黄在线观看动漫尤物| 免费观看在线视频播放| 国内免费高清在线观看| 中字幕久久久人妻熟女| 国产肥熟女视频一区二区三区| 91九色老熟女免费资源| 嫖妓丰满肥熟妇在线精品| 亚洲AV小说在线观看|