李翔豪, 王軼駿, 薛質(zhì)
SOHO路由器脆弱性的分析和驗(yàn)證
李翔豪, 王軼駿, 薛質(zhì)
(上海交通大學(xué)電子信息與電氣工程學(xué)院,上海200240)
SOHO路由器作為現(xiàn)今家庭和中小型辦公環(huán)境中普及度極高的網(wǎng)絡(luò)接入設(shè)備,其安全性之重要不言而喻。加之目前國(guó)內(nèi)外對(duì)網(wǎng)絡(luò)設(shè)備,尤其是路由器的攻擊越發(fā)流行,因此,本文對(duì)SOHO路由器脆弱性和相應(yīng)攻擊面的研究具有重要價(jià)值,是相關(guān)學(xué)術(shù)領(lǐng)域研究的大勢(shì)所趨。主要研究分析和歸納總結(jié)了SOHO路由器脆弱性方面的相關(guān)技術(shù)和研究成果,包括遠(yuǎn)程偵測(cè)技術(shù)、漏洞利用技術(shù)和后門駐留技術(shù)等。首先是遠(yuǎn)程偵測(cè)技術(shù),用來實(shí)現(xiàn)對(duì)路由器類型和版本的精準(zhǔn)探測(cè);其次是漏洞利用技術(shù),用來獲取路由器的管理權(quán)限甚至是系統(tǒng)權(quán)限;最后是后門駐留技術(shù),用來在獲取路由器權(quán)限的基礎(chǔ)上實(shí)現(xiàn)長(zhǎng)期的隱蔽控制。這里為今后在設(shè)計(jì)、改進(jìn)SOHO路由器的安全防御技術(shù)和策略等方面提供基礎(chǔ)支撐。
SOHO路由器;遠(yuǎn)程偵測(cè);漏洞利用;后門駐留;脆弱性分析
近年來,SOHO路由器的普及程度越來越高,隨之而來的安全性問題也層出不窮。現(xiàn)在許多用戶在使用個(gè)人終端時(shí),都將SOHO路由器作為接入網(wǎng)絡(luò)的第一道網(wǎng)關(guān)設(shè)備,是網(wǎng)絡(luò)通信的重要環(huán)節(jié)。但是,SOHO路由器在設(shè)計(jì)、制造方面偏向于面向用戶,往往提供簡(jiǎn)明易懂的界面、方便快捷的設(shè)置步驟,使用戶能方便、快捷的實(shí)現(xiàn)上網(wǎng)行為;但也正是這有別于企業(yè)級(jí)路由設(shè)備的設(shè)計(jì)理念差異,導(dǎo)致SOHO路由器存在嚴(yán)重的脆弱性隱患,很容易產(chǎn)生各種安全問題。除了常見的被“蹭網(wǎng)”等,一些APT攻擊也正是基于SOHO路由器的脆弱性而產(chǎn)生的。攻擊者通過暴力、漏洞、或者社工方式可以輕易取得SOHO路由器的最高權(quán)限,進(jìn)而實(shí)施網(wǎng)絡(luò)劫持、信息竊取、網(wǎng)絡(luò)釣魚等攻擊行為,直接威脅個(gè)人用戶和企業(yè)單位的數(shù)據(jù)安全。此外,水平更高的攻擊者還能通過對(duì)SOHO路由設(shè)備固件的逆向分析和漏洞挖掘來實(shí)施更為強(qiáng)大和精確的APT攻擊[1]。
所謂“知己知彼,百戰(zhàn)不殆”,為了能夠第一時(shí)間及時(shí)對(duì)SOHO路由器的安全問題進(jìn)行快速響應(yīng),減少因路由器漏洞和后門爆發(fā)帶來的危害和損失,就需要我們對(duì)SOHO路由器進(jìn)行脆弱性的分析,獲悉各類路由器潛在的安全隱患,由此才能更有針對(duì)性的找到相應(yīng)防御的方法。
因此,本文主要研究分析、歸納總結(jié)SOHO路由器脆弱性方面的研究技術(shù)和成果,首先是SOHO路由器的遠(yuǎn)程偵測(cè)技術(shù),能夠?qū)β酚善鞯念愋秃桶姹具M(jìn)行精準(zhǔn)探測(cè);然后是SOHO路由器的漏洞利用技術(shù),包括內(nèi)存溢出、固有后門漏洞的挖掘和分析,能夠?qū)δ繕?biāo)路由器進(jìn)行權(quán)限獲?。蛔詈髣t是SOHO路由器的后門駐留技術(shù),能夠?qū)δ繕?biāo)路由器進(jìn)行隱蔽控制和流量轉(zhuǎn)發(fā)。本文希望通過對(duì)上述脆弱性分析技術(shù)的歸納總結(jié)和趨勢(shì)展望,來為下一步提出針對(duì)性的安全防御策略和方法提供重要積累和基礎(chǔ)支撐。
SOHO路由器的遠(yuǎn)程偵測(cè)是對(duì)路由器發(fā)起攻擊的基礎(chǔ),這是因?yàn)槟芊駥?duì)設(shè)備類型、型號(hào)、功能等信息進(jìn)行準(zhǔn)確判定將會(huì)直接影響著后續(xù)攻擊的成功率。遠(yuǎn)程偵測(cè)旨在通過網(wǎng)絡(luò)自有協(xié)議和網(wǎng)絡(luò)設(shè)備特定協(xié)議來判斷目標(biāo)路由器是否在線,進(jìn)而通過與其進(jìn)行數(shù)據(jù)包交互的方式來提取其設(shè)備指紋特征,并對(duì)比指紋特征數(shù)據(jù)庫來獲得目標(biāo)路由器設(shè)備的具體信息。
一般來說,SOHO路由器可用以作為主機(jī)指紋特征的對(duì)象主要包括MAC/OUI指紋和應(yīng)用服務(wù)指紋這兩類,如圖1所示。
圖1 SOHO路由器遠(yuǎn)程偵測(cè)技術(shù)的分類
1.1基于MAC/OUI指紋的路由器偵測(cè)技術(shù)
MAC/OUI指紋指的是固化在網(wǎng)卡設(shè)備中硬件地址(即MAC,Media Access Control Address地址)的前3個(gè)字節(jié),是用來唯一標(biāo)識(shí)該網(wǎng)卡的生產(chǎn)廠商(即OUI)。因此,在內(nèi)部網(wǎng)絡(luò)進(jìn)行路由器的遠(yuǎn)程偵測(cè),就可以直接獲取目標(biāo)路由器的MAC地址,然后讀取其中的OUI部分,并通過IEEE公布的OUI分配表來查找該地址對(duì)應(yīng)的組織,就能獲得目標(biāo)路由器的生產(chǎn)廠商了[2]。這種基于MAC/OUI指紋的探測(cè)方式,其優(yōu)點(diǎn)在于能夠較為精確的判定路由器的生產(chǎn)廠商,但其缺點(diǎn)也很明顯,一是無法獲取系統(tǒng)精確版本信息;二是只能在內(nèi)網(wǎng)中進(jìn)行探測(cè)。
1.2基于應(yīng)用服務(wù)指紋的路由器偵測(cè)技術(shù)
基于應(yīng)用服務(wù)指紋的探測(cè)則是利用目標(biāo)路由器所開放的眾多應(yīng)用服務(wù),包括Web、FTP、SFTP、SSH、Telnet、SNMP等,通過探測(cè)這些服務(wù)所返回的問候標(biāo)語(banners)來獲取其品牌、型號(hào)、固件版本號(hào)、服務(wù)版本號(hào)等諸多詳細(xì)信息[3]。這種方式既適用于外網(wǎng)探測(cè)也適用于內(nèi)網(wǎng)探測(cè),是相對(duì)比較方便和可靠的遠(yuǎn)程偵測(cè)方式。
●Web應(yīng)用服務(wù)指紋
在Web服務(wù)返回的頭部信息中,一般通過增加WWW-Authenticate字段來對(duì)用戶身份進(jìn)行認(rèn)證,而各路由器廠商一般均在Basic字段(基本認(rèn)證)中增加廠商信息。這里以TP-Link N系列路由器為例,該系列路由器的HTTP返回頭部如下所示:
從中可以清晰的看到,該設(shè)備為一臺(tái)TP-Link WR941N無線路由器。
此外,廠商也往往會(huì)在HTML頁面中添加公司名稱、商標(biāo)、設(shè)備信號(hào)等信息,以提供用戶更人性化的登錄界面。以D-Link DIR-610路由器為例,頁面信息中有如下特殊字段可作為指紋特征使用:
<td>Product Page:DIR-610</td>
在探測(cè)過程中,如果返回頁面中包含該字段,一般就可認(rèn)為該目標(biāo)為一臺(tái)D-Link無線路由器。
●FTP應(yīng)用服務(wù)指紋
這里以D-Link公司生產(chǎn)的DSL系列無線路由器為例,該系列路由器會(huì)在21端口開啟FTP服務(wù)并持續(xù)監(jiān)聽,等待用戶連接向路由器傳送文件用以升級(jí)系統(tǒng)固件。用戶一旦與路由器建立TCP連接,設(shè)備會(huì)向用戶發(fā)送如下問候標(biāo)語信息:
220 Ftp firmware update util
user(62.215.?.?:(none)):
通過該信息,即可判斷該設(shè)備為D-Link DSL系列路由器。
●SSH應(yīng)用服務(wù)
這里以Cisco公司的路由器為例,該公司的絕大部分設(shè)備均搭載了自行開發(fā)研制的IOS(Internetwork Operating System)操作維護(hù)系統(tǒng),該系統(tǒng)通常會(huì)在22端口開啟SSH服務(wù)以遠(yuǎn)程管理路由器。用戶發(fā)起連接請(qǐng)求后,設(shè)備在交換自己的RSA公鑰的同時(shí),就會(huì)向用戶發(fā)送如下問候標(biāo)語信息:
SSH-2.0-Cisco-1.25
該信息表明目標(biāo)設(shè)備為一臺(tái)運(yùn)行1.25版本IOS系統(tǒng)的Cisco路由器,同時(shí)SSH版本號(hào)為2.0。
此外,SFTP、Telnet等應(yīng)用服務(wù)指紋特征都與上述這些服務(wù)類似,此處就不再贅述。
采訪結(jié)束后的很長(zhǎng)一段時(shí)間,我們的思緒似乎仍然停留在瑞安那座美麗的海濱城市,被擁有20多年生產(chǎn)歷史的華岳所吸引,更被學(xué)識(shí)淵博的夏碎娒深深折服。
現(xiàn)今,國(guó)內(nèi)外已經(jīng)誕生了RouterScan等路由器遠(yuǎn)程探測(cè)軟件,以及Zoomeye、Shodan、Censys等大規(guī)模監(jiān)測(cè)平臺(tái)。其中RouterScan是俄羅斯安全團(tuán)隊(duì)Stas’M開發(fā)的一套路由器安全測(cè)試工具,它可以指定IP段對(duì)路由器進(jìn)行暴力破解、信息提取等安全測(cè)試,支持各種品牌型號(hào)的路由器,善于發(fā)現(xiàn)大量已知的路由器或服務(wù)器設(shè)備并提取相應(yīng)信息,特別是無線網(wǎng)絡(luò)加密信息,包括接入點(diǎn)的名稱和密鑰,并確定路由器品牌和型號(hào),甚至可以對(duì)部分有漏洞的路由器進(jìn)行漏洞利用和滲透。Zoomeye、Shodan、Censys則是國(guó)內(nèi)外的一些安全團(tuán)隊(duì)和公司所打造的面向全球網(wǎng)絡(luò)的設(shè)備監(jiān)測(cè)系統(tǒng)和平臺(tái),旨在對(duì)全網(wǎng)范圍內(nèi)的服務(wù)器、攝像頭、打印機(jī)、路由器等聯(lián)網(wǎng)設(shè)備進(jìn)行信息采集并提供可視化智能檢索[4]。
當(dāng)攻擊者獲知目標(biāo)路由器的類型及其型號(hào)版本之后,就會(huì)嘗試?yán)冕槍?duì)該路由器的各類漏洞進(jìn)行攻擊,直至最終獲取其權(quán)限為止。漏洞利用成功之后,攻擊者一般就能夠進(jìn)入后臺(tái)管理界面,更改路由器的重要配置信息(比如DNS服務(wù)器的設(shè)置等),升級(jí)路由器固件引入后門等;甚至還能夠直接獲取到執(zhí)行目標(biāo)系統(tǒng)命令的Shell接口,從而獲取系統(tǒng)底層信息,執(zhí)行流量轉(zhuǎn)發(fā)命令,植入系統(tǒng)后門等。
SOHO路由器作為一種嵌入式設(shè)備,可視為特殊的小型計(jì)算機(jī),也存在著各種類型的漏洞,主要可分為如下四類:身份認(rèn)證脆弱性漏洞、Web配置界面漏洞、緩沖區(qū)溢出型漏洞和固有后門型漏洞[5]。如圖2所示。
圖2 SOHO路由器漏洞利用技術(shù)的分類
在這四類漏洞中,身份認(rèn)證脆弱性漏洞為攻擊者進(jìn)入目標(biāo)網(wǎng)絡(luò)提供先決條件,Web配置界面漏洞為攻擊者獲取路由器Web管理界面提供了可能性,而后兩類漏洞,即緩沖區(qū)溢出型漏洞和固有后門型漏洞能夠幫助攻擊者獲取目標(biāo)路由器的Web配置管理權(quán)限,甚至是系統(tǒng)本身的最高權(quán)限,因此風(fēng)險(xiǎn)威脅較大,檢測(cè)難度也較大。
2.1身份認(rèn)證脆弱性漏洞利用技術(shù)
絕大部分的SOHO路由器都具有Wi-Fi功能,供電腦、手機(jī)、智能家電等支持無線功能的終端設(shè)備接入并分享互聯(lián)網(wǎng)。提供Wi-Fi功能的路由器一般都需要進(jìn)行身份認(rèn)證才能夠被允許接入其內(nèi)部網(wǎng)絡(luò),因此攻擊者往往需要首先破解Wi-Fi接入密碼后才能夠接入目標(biāo)內(nèi)部網(wǎng)絡(luò),然后再利用路由器本身的漏洞來進(jìn)一步獲取其權(quán)限。
目前,SOHO路由器使用的身份認(rèn)證加密算法主要包括WEP、WPA、WPA2和WPA/WPA2-PSK等。其中WEP由于受其采用的RC4的加密算法限制,攻擊者能夠非常容易的獲取到加密密鑰,安全性較差,因此已經(jīng)不再被廣泛采用了[6]。而WPA與WPA2作為目前在大部分設(shè)備中使用的加密方式,相較于WEP而言的安全性大大提高。在使用較復(fù)雜密碼的情況下,單純依靠暴力破解的攻擊方式則需要較長(zhǎng)時(shí)間。然而,由于一般用戶的安全意識(shí)較弱,在設(shè)置密碼時(shí)仍有不少不良習(xí)慣,包括簡(jiǎn)短的數(shù)字組合、電話號(hào)碼、生日等容易被猜測(cè)的密碼。因此攻擊者可以收集到用戶相關(guān)信息,輔以社會(huì)工程學(xué)的方法,創(chuàng)建有針對(duì)性的字典,從而實(shí)施高效的暴力破解。此外,攻擊者還可以利用現(xiàn)今越來越強(qiáng)大的分布式云架構(gòu)和大數(shù)據(jù)平臺(tái)來生成以前無法想象的大容量彩虹表(Rainbow Table),然后在后臺(tái)進(jìn)行離線暴力破解[7]。
即使用戶為Wi-Fi的身份驗(yàn)證設(shè)置了非常復(fù)雜的密碼組合,還是仍然有被破解的可能性,這是因?yàn)槟壳暗穆酚善鲝S商為簡(jiǎn)化終端接入路由器的過程而引入了WPS(Wi-Fi Protected Setup)技術(shù),即Wi-Fi安全防護(hù)設(shè)定。用戶僅需按下無線路由器上的WPS按鈕或者輸入正確的PIN碼,即可完成無線密碼的驗(yàn)證,從而在客戶端與路由器之間建立安全鏈接。首先,PIN碼一共8位,其中最后一位為校驗(yàn)位,因此在破解時(shí)只需考慮前7位即可;接著,如果PIN碼的前4位驗(yàn)證失敗,路由器就會(huì)向客戶端發(fā)送EAP-NACK信息;因此,最終攻擊者僅需要在找到一個(gè)前4位和后3位的PIN碼組合即可,大約有1 1000(104+103)種可能[8]。在實(shí)際破解中,攻擊者通常平均只需要嘗試5 500次就可以完成Wi-Fi身份驗(yàn)證的密碼破解。此外,某些SOHO路由器,比如貝爾金(Belkin)路由器,還會(huì)將WPS的密鑰生成算法固化在硬件中,一旦被攻擊者獲知之后,就可以基于該算法進(jìn)行快速破解。
2.2Web配置界面漏洞利用技術(shù)
攻擊者可以通過SQL注入非法獲取或修改路由器中包括用戶身份在內(nèi)的數(shù)據(jù)庫內(nèi)容。而借助CSRF,攻擊者則可通過在網(wǎng)頁中注入惡意JavaScript代碼,在用戶使用瀏覽器期間自動(dòng)運(yùn)行,以借用用戶身份,訪問受限的Web頁面(管理界面等),從而達(dá)到修改路由器配置的目的。這些攻擊所引發(fā)的路由器數(shù)據(jù)泄漏和配置修改,會(huì)引發(fā)后續(xù)的DNS劫持等更多高威脅、持續(xù)性的攻擊。
近年來,典型的Web配置界面漏洞利用示例如下:
●TEW-654TR路由器的登錄頁面(/my_cgi.cgi)存在SQL注入漏洞,輸入類似“'or'1'='1”這樣的萬能密碼即可繞過登錄驗(yàn)證進(jìn)入Web管理界面[10]。
●D-Link DSR系列路由器的登錄腳本(/scgi-bin/platform. cgi)不正確過濾用戶提交的輸入,允許遠(yuǎn)程攻擊者利用漏洞提交定制的SQL查詢來繞過驗(yàn)證[11]。
●D-Link DIR-320路由器的腳本(/model/__show_info.php)存在文件包含漏洞,可被攻擊者利用讀取系統(tǒng)敏感配置文件[12]。
●TP-Link TL-WR840N系列路由器存在CSRF漏洞,攻擊者可以誘使路由器管理員訪問一個(gè)惡意的網(wǎng)站,然后利用這個(gè)漏洞導(dǎo)入一個(gè)攻擊者構(gòu)造的配置文件,從而可以修改包括路由器的防火墻、遠(yuǎn)程管理等所有的配置項(xiàng)[13]。
2.3緩沖區(qū)溢出型漏洞利用技術(shù)
緩沖區(qū)溢出攻擊的原理是在將大緩沖區(qū)向小緩沖區(qū)復(fù)制的過程中,由于對(duì)小緩沖區(qū)的邊界未經(jīng)檢查或檢查不嚴(yán)格,導(dǎo)致小緩沖區(qū)不足以接收整個(gè)大緩沖區(qū)的數(shù)據(jù),從而使得超出部分覆蓋了與小緩沖區(qū)相鄰的內(nèi)存中其他數(shù)據(jù),最終引發(fā)內(nèi)存溢出問題。攻擊者利用這一點(diǎn)就能夠使得正常執(zhí)行的程序流程跳轉(zhuǎn)到攻擊者所指定的代碼(通常為精心編寫的Shellcode)上去,從而對(duì)路由器設(shè)備造成嚴(yán)重后果,比如拒絕服務(wù)、執(zhí)行遠(yuǎn)程Shell,獲得用戶級(jí)權(quán)限、甚至是系統(tǒng)級(jí)別的權(quán)限。
現(xiàn)今針對(duì)SOHO路由器的緩沖區(qū)溢出漏洞攻擊大多數(shù)還是棧溢出攻擊。但與傳統(tǒng)PC采用的x86/x64架構(gòu)復(fù)雜指令系統(tǒng)不同,大多數(shù)采用Linux嵌入式操作系統(tǒng)的SOHO路由器使用的是MIPS指令系統(tǒng),該指令系統(tǒng)屬于精簡(jiǎn)指令系統(tǒng)。MIPS32架構(gòu)的函數(shù)調(diào)用方式雖然與x86/x64系統(tǒng)有很大的區(qū)別,比如沒有EBP (棧底指針)寄存器,通過$a0~$a3等寄存器而非堆棧來傳遞函數(shù)參數(shù),將葉子函數(shù)的返回地址直接存入$ra寄存器中等等。但是通過研究分析發(fā)現(xiàn),傳統(tǒng)的針對(duì)x86/x64的棧溢出攻擊對(duì)MIPS系統(tǒng)仍然有效:只要所調(diào)用的函數(shù)中是非葉子函數(shù),并且有緩沖區(qū)溢出漏洞,就可以覆蓋父函數(shù)的返回地址,從而劫持程序執(zhí)行流程;而在葉子函數(shù)中,如果存在可以溢出大量數(shù)據(jù)的情況,那么也存在覆蓋父函數(shù)返回地址達(dá)到劫持程序執(zhí)行流程的可能性。
針對(duì)SOHO路由器的棧溢出漏洞攻擊主要面對(duì)的挑戰(zhàn)是目標(biāo)系統(tǒng)中啟用的DEP(Data Executive Protection,數(shù)據(jù)執(zhí)行保護(hù))技術(shù)。DEP的基本原理是將數(shù)據(jù)所在的內(nèi)存頁,包括棧和堆等,設(shè)置NX/XD屬性標(biāo)記來指明不能從該內(nèi)存執(zhí)行代碼,這樣當(dāng)程序產(chǎn)生溢出,惡意代碼試圖在數(shù)據(jù)段執(zhí)行指令的時(shí)候,CPU就會(huì)產(chǎn)生異常而不去執(zhí)行指令。因此,攻擊者需要利用ROP(Return-Oriented Programming,返回導(dǎo)向編程)技術(shù),在堆棧中構(gòu)造一連串的參數(shù)和返回地址,利用目標(biāo)系統(tǒng)中已加載的合法模塊中的指令片斷完成特定的Shellcode功能,從而繞過DEP防護(hù)機(jī)制。
●針對(duì)SOHO路由器的ROP技術(shù)
和其他程序一樣,SOHO路由器所加載的程序里一般都會(huì)包含大量的返回指令,如“jr$ra”等,它們往往位于函數(shù)的尾部,或者函數(shù)中部需要返回的地方,從某個(gè)地址到“jr$ra”指令之間的二進(jìn)制序列被稱之為“gadget”。所謂的ROP技術(shù)就是攻擊者事先搜索程序內(nèi)存空間中所有以這種返回指令結(jié)尾的gadget代碼片斷,使其按照前后順序依次拼接起來,完成諸如內(nèi)存讀寫、算術(shù)邏輯運(yùn)算、控制流程跳轉(zhuǎn)、函數(shù)調(diào)用等特定功能的操作,并最終組合起來完成復(fù)雜的功能[14]。為了將目標(biāo)系統(tǒng)中的各個(gè)gadget代碼塊拼接起來,需要使用一個(gè)事先準(zhǔn)備好、包含各條指令結(jié)束后下一條指令地址的特殊返回棧。攻擊者會(huì)構(gòu)造一個(gè)特殊輸入向量以填充函數(shù)的??臻g。首先,讓指向攻擊者所構(gòu)造的棧的指針跳到gadget A中,在執(zhí)行完gadget A中的代碼序列后,通過位于gadget A尾部的jr$ra回到棧中,然后再執(zhí)行g(shù)adget B,執(zhí)行后跳到gadget C,這樣依次進(jìn)行下去。因此,只要目標(biāo)棧的容量足夠大,就一定能夠達(dá)到完成全部功能代碼(Shellcode)執(zhí)行的目的。
ROP技術(shù)利用的一個(gè)難點(diǎn)在于,要在整個(gè)內(nèi)存空間中搜索所需要的gadget代碼鏈需要花費(fèi)很長(zhǎng)的時(shí)間。但一旦完成了“搜索”和“拼接”,那么這樣的攻擊將是難以抵擋的,因?yàn)樗怯玫亩际莾?nèi)存中的合法代碼。值得注意的是,ROP技術(shù)具備圖靈完整性,也就是說,如果程序能實(shí)現(xiàn),那么ROP就肯定有一個(gè)對(duì)應(yīng)的序列及堆棧。而現(xiàn)今絕大多數(shù)存在漏洞的SOHO路由器程序,攻擊者通過ROP技術(shù)基本都可以構(gòu)造出一個(gè)完整的gadget代碼序列出來[15]。
2.4固有后門型漏洞利用技術(shù)
SOHO路由器的固有后門漏洞指的是路由器廠商開發(fā)的產(chǎn)品本身存在出廠后門設(shè)置,攻擊者可以利用該后門繞過安全控制來獲取路由器的訪問控制權(quán)限。這類漏洞往往是由于路由器生產(chǎn)廠商在開發(fā)、管理和控制時(shí)候?yàn)榱朔奖愣氲?,也有可能是發(fā)布產(chǎn)品時(shí)出于某種目的而遺留的問題。
近幾年被曝出有后門的路由器就覆蓋了包括D-Link、Tenda、Linksys、Netgear、Netcore/Netis、ZTE、Cisco在內(nèi)的等多家國(guó)內(nèi)外知名廠商,如下所列:
●D-LINK(友訊)DIR-100系列路由器的Web服務(wù)器程序(/bin/webs)后門。攻擊者只需將瀏覽器的User-Agent字段修改為“xmlset_roodkcableoj28840ybtide”后訪問路由器,即可無需經(jīng)過驗(yàn)證訪問路由器的Web管理界面修改設(shè)備設(shè)置[16]。
●NetCore(磊科)路由器的IGDMPTD程序后門。該程序會(huì)隨路由器啟動(dòng),并在公網(wǎng)上開放53413端口,存在一個(gè)“硬編碼”寫入設(shè)備固件的后門口令(從第9個(gè)字節(jié)開始的“netcore”字符串)[17]。攻擊者可利用該后門口令登錄路由器后讀取系統(tǒng)文件,執(zhí)行任意系統(tǒng)命令,從而控制路由器。
●Tenda(騰達(dá))多款路由器的后門。如果設(shè)備收到以字符串“w302r_mfg”為開頭的一個(gè)UDP數(shù)據(jù)包,即可觸發(fā)此漏洞執(zhí)行各類系統(tǒng)命令[18]。
●ZTE(中興)F460/F660系列SOHO路由器的后門。任何用戶都可以直接訪問該設(shè)備一個(gè)命令執(zhí)行的Web界面(/web_shell _cmd.gch),以root權(quán)限執(zhí)行任意命令[19]。
當(dāng)攻擊者獲得目標(biāo)路由器的權(quán)限之后,就可以將定制好的后門程序植入到路由器之中,達(dá)到長(zhǎng)期駐留及隱蔽控制的目的,其中涉及到路由器后門的植入駐留技術(shù)以及路由器后門的定制開發(fā)技術(shù)。
目前市面上的SOHO路由器按照運(yùn)行的系統(tǒng)大致可以分為兩類:基于嵌入式Linux的分時(shí)操作系統(tǒng)以及基于Vxworks、uC/ OS-II、Zynos之類的實(shí)時(shí)操作系統(tǒng)。有研究人員對(duì)目前市面上兩萬多種路由器固件進(jìn)行了分析識(shí)別,在不考慮不能識(shí)別系統(tǒng)類型的部分路由器固件情況下,基于Vxworks實(shí)時(shí)操作系統(tǒng)的設(shè)備不超過7%,因此絕大多數(shù)嵌入式設(shè)備都是基于Linux的分時(shí)操作系統(tǒng),或者類Unix系統(tǒng)[20]??紤]到系統(tǒng)類型不同,不同路由器涉及到的具體后門駐留技術(shù)與實(shí)現(xiàn)方法亦不盡相同。
3.1路由器后門的植入駐留技術(shù)
由于SOHO路由器的文件系統(tǒng)會(huì)在上電后由Bootloader從可讀寫的FLASH閃存動(dòng)態(tài)加載進(jìn)內(nèi)存之中,對(duì)內(nèi)存所做的任何修改都會(huì)在系統(tǒng)重啟后消失,而FLASH中存儲(chǔ)的根文件系統(tǒng)一般都是不可修改寫入的,因此在一般情況下,攻擊者都是通過固件升級(jí)的方法來實(shí)現(xiàn)路由器后門的植入和駐留的。
對(duì)于基于嵌入式Linux系統(tǒng)的SOHO路由器而言,由于這類路由器有著Linux系統(tǒng)的共性,其固件中一般包含有完整的文件系統(tǒng),因此攻擊者可以通過解包固件來獲得完整的文件系統(tǒng),然后將已經(jīng)編譯好的后門程序放置進(jìn)去,并對(duì)固件進(jìn)行重新打包?,F(xiàn)今常見的打包方式包括cramfs、squashfs、jffs2、cpio等。而對(duì)于基于Vxworks等實(shí)時(shí)操作系統(tǒng)的SOHO路由器來說,由于這類路由器的文件系統(tǒng)一般只存放html等類型的靜態(tài)文件,所有的可執(zhí)行代碼都放置在一個(gè)內(nèi)核之中,因此攻擊者會(huì)將編譯好的后門代碼插入到原有文件代碼的縫隙之中,并修改系統(tǒng)程序調(diào)用相關(guān)部分,從而使得插入的代碼獲得執(zhí)行。
此外,路由器的廠商為了保證固件的有效性,通常在固件刷入之前會(huì)對(duì)其進(jìn)行嚴(yán)格的校驗(yàn)。使用的校驗(yàn)算法除常見的CRC32、md5外,還可能包含開發(fā)商自定義的校驗(yàn)方法。因此,攻擊者在修改完固件之后,還需要對(duì)校驗(yàn)值進(jìn)行相應(yīng)的修改,防止固件刷入失敗。
3.2路由器后門的定制開發(fā)技術(shù)
當(dāng)攻擊者實(shí)現(xiàn)了路由器后門植入之后,就可以自由地實(shí)施各類攻擊行為,比如流量轉(zhuǎn)發(fā)、中間人劫持等,不同于漏洞,利用后門植入所進(jìn)行的攻擊危害往往更大。
基于嵌入式Linux系統(tǒng)的SOHO路由器后門開發(fā)相對(duì)比較簡(jiǎn)單,由于廠商一般會(huì)根據(jù)GPL協(xié)議公布系統(tǒng)的內(nèi)核代碼以及編譯所使用的工具鏈(ToolChain),因此可以直接使用C等高級(jí)語言進(jìn)行后門程序的開發(fā)。而對(duì)于基于Vxworks等實(shí)時(shí)操作系統(tǒng)的SOHO路由器來說,由于這類系統(tǒng)的耦合度較高,系統(tǒng)閉源,加之系統(tǒng)較為精簡(jiǎn),缺乏可供分析調(diào)用的符號(hào)表,因此很難使用C等高級(jí)語言進(jìn)行開發(fā),一般都會(huì)使用底層的匯編語言進(jìn)行編寫。
雖然水平高超的攻擊者可以通過自行開發(fā)代碼來實(shí)現(xiàn)后門駐留,但目前而言,往往先通過更改系統(tǒng)的NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)表來實(shí)現(xiàn)流量的轉(zhuǎn)發(fā),并在此基礎(chǔ)上進(jìn)一步實(shí)現(xiàn)中間人劫持、惡意代碼替換植入等行為。由于NAT表是系統(tǒng)自帶的管理工具,因此該方法具有通用、簡(jiǎn)便、輕巧等特性,應(yīng)用面極廣。例如,在基于嵌入式Linux系統(tǒng)的SOHO路由器中,可以使用系統(tǒng)自帶的iptables命令來靈活的控制NAT表的轉(zhuǎn)換策略。攻擊者可以通過添加DNAT(Destination Network Address Translation,目的地址轉(zhuǎn)換)規(guī)則來將流經(jīng)路由器系統(tǒng)的數(shù)據(jù)包轉(zhuǎn)發(fā)到攻擊者的服務(wù)器[21]。
具體來說,當(dāng)路由器系統(tǒng)接收到某個(gè)匹配DNAT規(guī)則的數(shù)據(jù)包時(shí),將會(huì)修改該數(shù)據(jù)包的目的地址為攻擊者搭設(shè)的服務(wù)器地址,從而將數(shù)據(jù)包先轉(zhuǎn)發(fā)至攻擊者服務(wù)器中;當(dāng)攻擊者服務(wù)器接收到該路由器轉(zhuǎn)發(fā)的數(shù)據(jù)包后,再次轉(zhuǎn)發(fā)到真正的目的地址。不難發(fā)現(xiàn),作為中間人的攻擊者服務(wù)器可以在獲取數(shù)據(jù)包后,對(duì)其進(jìn)行解析處理、信息提取、日志記錄等攻擊操作。而從目的地址返回的數(shù)據(jù)包同樣將通過攻擊者服務(wù)器后再次轉(zhuǎn)發(fā)至路由器,此時(shí)攻擊者服務(wù)器將會(huì)相應(yīng)修改該返回?cái)?shù)據(jù)包的源地址,即將攻擊者服務(wù)器地址隱藏為真實(shí)目的地地址,從而完成整個(gè)數(shù)據(jù)表的流轉(zhuǎn)過程。整個(gè)流程對(duì)于路由器用戶而言非常隱蔽,難以發(fā)現(xiàn)。
下面列舉了一些可實(shí)現(xiàn)劫持某些特定類型流量的iptables命令:
劫持DNS請(qǐng)求
iptables-t nat-I PREROUTING-p udp--dport 53-j DNAT --to<攻擊者服務(wù)器IP>:<攻擊者服務(wù)器監(jiān)聽端口>
劫持HTTP請(qǐng)求
iptables-t nat-I PREROUTING-p tcp--dport 80-j DNAT--to<攻擊者服務(wù)器IP>:<攻擊者服務(wù)器監(jiān)聽端口>
近幾年,隨著互聯(lián)網(wǎng)的大規(guī)模普及,路由器作為網(wǎng)絡(luò)基礎(chǔ)設(shè)施中重要的組成部分,其安全性的需求也逐年提升。不難預(yù)見,對(duì)于路由器的安全攻防,將在產(chǎn)生、發(fā)現(xiàn)、利用以及應(yīng)急響應(yīng)等更多層次上展開。
首先是路由器系統(tǒng)的代碼編寫安全,路由器上游廠商應(yīng)當(dāng)將安全審計(jì)列入系統(tǒng)開發(fā)的重要環(huán)節(jié),在源代碼級(jí)別上分析和檢查函數(shù)輸入輸出。特別是對(duì)危險(xiǎn)函數(shù)和用戶輸入入口進(jìn)行代碼審計(jì)工作,以排查安全漏洞。同時(shí),由于目前市面上大多數(shù)基于Linux系統(tǒng)的SOHO路由器設(shè)備出于成本的考慮采用了低版本內(nèi)核,因而安全性較差。隨著類似路由器這樣的嵌入式設(shè)備性能進(jìn)一步增強(qiáng)和元器件成本降低,廠商應(yīng)引入更新版本的內(nèi)核以啟用安全增強(qiáng)補(bǔ)丁,從而實(shí)現(xiàn)內(nèi)存訪問控制和地址隨機(jī)化這樣的安全功能。
其次為了防范路由器的后門植入,目前已經(jīng)有部分廠商開始陸續(xù)將簽名校驗(yàn)技術(shù)加入到了固件升級(jí)的過程之中。因此,按照這種發(fā)展趨勢(shì),攻擊者如果無法通過特殊途徑竊取到廠商證書的話,那么就將無法把定制修改過的固件成功植入到路由器之中了。但是,攻擊者可能還會(huì)通過證書偽造的方法來繞過簽名校驗(yàn),這已經(jīng)在傳統(tǒng)的Windows惡意代碼(比如火焰病毒)中存在過成功的應(yīng)用案例,未來也有可能會(huì)應(yīng)用在路由器系統(tǒng)的后門攻擊之中,這的確需要安全研究人員和廠商持續(xù)跟蹤并思考對(duì)抗之策。
最后,相比與Windows或Linux主機(jī)安全而言,路由器設(shè)備的安全應(yīng)急響應(yīng)工作還不夠完善,存在廠商發(fā)布補(bǔ)丁滯后,用戶部署補(bǔ)丁缺乏意識(shí)、操作復(fù)雜、難以完成等問題。因此如何建立有效的安全響應(yīng)機(jī)制,把損失和破壞降低到最低限度也是未來針對(duì)SOHO路由器安全防范工作的重點(diǎn)和難點(diǎn)。
[1] Cui A,Costello M,Stolfo S J.When Firmware Modifications Attack:A Case Study of Embedded Exploitation[C]//Network and Distributed System Security Symposium.San Diego,CA United States:ISOC,2013:24-27.
[2] 隋新.主機(jī)特征信息被動(dòng)識(shí)別的研究與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2013(03):652-658.
[3] 王永杰,鮮明,王國(guó)玉等.基于指紋分析的Web服務(wù)探測(cè)技術(shù)[J].計(jì)算機(jī)工程,2005(17):26-27.
[4] Bates R,Istance H.Zooming interfaces!:Enhancing the Performance of Eye Controlled Pointing Devices[C]//Proceedings of the Fifth International ACM Conference on Assistive Technologies. Edinburgh,United Kingdom:ACM,2002:119-126.
[5] 唐有武.基于漏洞攻擊技術(shù)的路由器攻擊研究與實(shí)現(xiàn)[D].四川:電子科技大學(xué),2012.
[6] 劉永磊,金志剛.WEP協(xié)議攻擊方法研究[J].計(jì)算機(jī)工程,2010(22):
[7] Gold S.Cracking Wireless Networks[J].Network Security,2011 (11):14-18.
[8] Zisiadis D,Kopsidas S,Varalis A.Enhancing WPS Security [C]//IFIP Networking.Prague,Czech Republic:IEEE,2012:21-23.
[9] 吳明峰,張永勝,李園園等.Web服務(wù)攻擊技術(shù)研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2012(01):213-216.
[10] Craig.Exploiting Embedded Systems[EB/OL].2011[2016-06-12].http://www.devttys0.com/2011/09/exploiting-embedded-systems-part-2/.
[11] Exploit D B.D-Link DSR Router Series-Remote Root Shell Exploit[EB/OL].2012[2016-06-18].https://www.exploit -db.com/exploits/30062/.
[12] Security Focus.Multiple D-Link DIR Series Routers'model/ __show_info.php'Local File Disclosure Vulnerability[EB/ OL].2013[2016-06-18].http://www.securityfocus.com/ bid/64043.
[13] Secure Works.TP-Link TL-WR840N Configuration Import Cross-Site Request Forgery(CSRF)[EB/OL].2015[2016-06-12]https://www.secureworks.com/research/swrx-2015 -001.
[14] 王煒,趙旭,吳少華.揭秘家用路由器0day漏洞挖掘技術(shù)[M].北京:電子工業(yè)出版社,2015:134-139.
[15] Craig.MIPS ROP IDA Plugin[EB/OL].2013[2016-06-14]. http://www.devttys0.com/2013/10/mips-rop-ida-plugin/.
[16] IceArmour.我是如何反編譯D-Link路由器固件程序并發(fā)現(xiàn)它的后門的[EB/OL].2011[2016-06-12].http://www. freebuf.com/articles/wireless/14964.htm/.
[17] 知道創(chuàng)宇.Netcore/Netis路由器后門應(yīng)急概要[EB/OL]. 2015[2016-06-14].http://blog.knownsec.com/2015/01/a -brief-analysis-of-netcore-netis-leak-emergency/.
[18] Craig.From China,With Love[EB/OL].2013[2016-06-18]. http://www.devttys0.com/2013/10/from-china-with-love/.
[19] 知道創(chuàng)宇.ZTE SOHO ROUTERWEB_SHELL_CMD.GCH遠(yuǎn)程命令執(zhí)行分析概要[EB/OL].2015[2016-06-14]. http://blog.knownsec.com/2015/01/analysis-of-zte-sohorouterweb_shell_cmd-gch-remote-command-execution/.
[20] Chen D D,Egele M,Woo M.Towards Automated Dynamic Analysis for Linux-based Embedded Firmware[C]//Network and Distributed System Security Symposium.San Diego,CA United States:ISOC,2016:21-24.
[21] 陳嵐.Iptables規(guī)則集優(yōu)化的設(shè)計(jì)與實(shí)現(xiàn)[D].湖北:武漢科技大學(xué),2008.
Analysis and Verification of SOHO Routers Vulnerability
LI Xiang-hao,WANG Yi-jun,XUE Zhi (School of Electronic Information and Electrical Engineering,Shanghai Jiaotong University,Shanghai 200240,China)
As a network access facility,the SOHO router is highly popular in family and office today,so it’s security is of great importance.Nowadays cyber attack aiming at network equipment,especially SOHO routers,is gradually popular at home and abroad,so it is necessary to research on vulnerabilities and attacking methods,and also it is represents the general trend in the related research fields.This paper focuses on researching and concluding both the technologies and results about the SOHO router’s vulnerabilities,including remote detection technology,exploit technology,and resident backdoor technology.Firstly,the remote detection technology,which is used to accurately detect router’s type and version,is studied.Then,exploit technology is researched to get administrator privileges,even get the system authority.Finally,resident backdoor technology is is used as controlling the router covertly in a longterm based on getting the administrator privilege.This paper may provide basis SOHO router’s support in the both design and improvement of security techniques and strategy in the future.
SOHO router;remote detection;exploit;resident backdoor;analysis of vulnerability
TP316
A
1009-8054(2016)08-0095-06
?2016-03-16
李翔豪(1984—),男,碩士研究生,主要研究方向?yàn)樾畔踩?/p>
王軼駿(1980—),男,碩士,講師,主要研究方向?yàn)榫W(wǎng)絡(luò)攻防及系統(tǒng)安全;
薛 質(zhì)(1971—),男,博士,教授,主要研究方向?yàn)橛?jì)算機(jī)通信及信息安全?!?/p>