信息來源:4hou
本文將詳細(xì)介紹運(yùn)行固件版本3.16.0 0.9.1 v600c.0 Build 180124 Rel.28919n的TP-Link Archer C5 v4路由器中的0 day漏洞。目前,該漏洞已被命名為CVE-2017-7405,并已由TP-Link發(fā)布,你可以在此篇文章的末尾獲取補(bǔ)丁的鏈接。
互聯(lián)網(wǎng)路由器是連接我們工作,服務(wù)和休閑的無所不在的設(shè)備,已經(jīng)成為每個家庭,企業(yè)和公共場所不可或缺的一部分。盡管它們對于我們與世界的連接至關(guān)重要,但它們卻是我們每天使用的最不安全的設(shè)備之一。
在本文中, X-Force Red 實(shí)驗(yàn)室的Grzegorz Wypych研究人員(又名@ horac341 )發(fā)現(xiàn)了在TP-Link Archer C5(v4)路由器中發(fā)現(xiàn)的固件漏洞。這是一個0 day漏洞,以前沒有報告過,并且可能影響家庭和企業(yè)環(huán)境。如果利用此路由器漏洞,則遠(yuǎn)程攻擊者可以通過局域網(wǎng)(LAN)上的Telnet來控制路由器的配置,并通過LAN或廣域網(wǎng)(WAN)連接到文件傳輸協(xié)議(FTP)服務(wù)器。
該漏洞被認(rèn)為是至關(guān)重要的,因?yàn)樗梢允谟栉唇?jīng)授權(quán)的第三方使用管理員特權(quán)訪問路由器,而這是所有用戶在該設(shè)備上的默認(rèn)設(shè)置,而無需進(jìn)行適當(dāng)?shù)纳矸蒡?yàn)證。在使用此類路由器啟用訪客Wi-Fi的商業(yè)網(wǎng)絡(luò)上,風(fēng)險更大。如果將其放置在企業(yè)網(wǎng)絡(luò)上,則受損的路由器可能成為攻擊者的切入點(diǎn),并且成為偵察和橫向移動策略的前哨站。
此漏洞的發(fā)布遵循TP-Link負(fù)責(zé)任的披露流程,旨在幫助用戶和防御者采取措施來緩解這些設(shè)備的風(fēng)險。
密碼溢出漏洞
在深入探究如何發(fā)現(xiàn)此漏洞之前,描述此漏洞的簡短方法是使用戶密碼無效的易受攻擊的HTTP請求。在各種各樣的溢出漏洞中,當(dāng)將比預(yù)期的字符串長度短的字符串作為用戶密碼發(fā)送時,密碼值會失真為一些非ASCII字節(jié)。
但是,如果字符串太長,密碼將完全無效,由空值代替。此TP-Link設(shè)備僅具有一種用戶類型(具有root權(quán)限的管理者),并且所有進(jìn)程均由用戶在此訪問級別下運(yùn)行,這可以使攻擊者以管理者的身份操作并接管設(shè)備。
觸發(fā)路由器漏洞
當(dāng)我們調(diào)查觸發(fā)脆弱情況的原因時,我們可以看到,只需發(fā)送正確的請求即可獲得對設(shè)備的訪問權(quán)限,圖1顯示了我們用來舉例說明這個觸發(fā)器的HTTP請求。
我們這里有兩種類型的請求:安全的和易受攻擊的。對于對HTML內(nèi)容的安全請求,必須驗(yàn)證兩個參數(shù):TokenID和JSESSIONID。但是,此處的通用網(wǎng)關(guān)接口(CGI)驗(yàn)證僅基于引用者的HTTP標(biāo)頭。如果它與IP地址或與tplinkwifi.net關(guān)聯(lián)的域匹配,則路由器的主要服務(wù)HTTPD將識別為有效。
圖1.易受攻擊的HTTP POST請求未驗(yàn)證所需的參數(shù)
如果該引用從標(biāo)頭中刪除,請求將返回一個“禁止訪問”響應(yīng)。
圖2.從請求中刪除的引用——HTTP響應(yīng)返回“403禁止”
此漏洞以相同的方式影響HTTP POST和GET請求,當(dāng)字符串長度超過允許的字節(jié)數(shù)時,管理密碼無效。
圖3.HTTP GET請求同樣會使密碼無效
看看固件
此時,看到這些請求使密碼無效后,我們想看一下設(shè)備的固件。由于固件并不總是在供應(yīng)商的網(wǎng)站上可用,因此我們不得不從設(shè)備的閃存芯片中提取固件。
有了存儲芯片的版本號,可以更輕松地在線查找有關(guān)它的更多信息,并且我們能夠使用芯片夾和二進(jìn)制文件分析工具BinWalk直接從芯片中提取固件。
圖4.使用BinWalk提取的路由器固件
請注意,在提取期間,有一個RSA私鑰存儲在內(nèi)存中。訪問Web服務(wù)時,此密鑰用于加密和解密用戶密碼。
解壓縮固件后,我們發(fā)現(xiàn)登錄數(shù)據(jù)存儲在rootfs / etc文件夾中。默認(rèn)的用戶名和密碼非常弱。保留默認(rèn)組合可以允許訪問FTP服務(wù)器并授予控制臺訪問權(quán)限。如此弱的密碼有很多訪問權(quán)限,幾乎任何人都可以猜到,而且不幸的是,它也是傳播諸如Mirai之類的僵尸網(wǎng)絡(luò)惡意軟件的自動攻擊的源頭。
圖5.對路由器的root訪問
通過root級訪問,我們現(xiàn)在可以獲得對二進(jìn)制文件的一些控制。我們也有TFTP,所以我們下載了MIPS gdbServer,這是一個用于類Unix系統(tǒng)的控制程序,允許操作員從另一個系統(tǒng)遠(yuǎn)程調(diào)試其他程序。這樣,調(diào)試器不需要駐留在同一設(shè)備上,只需要我們要調(diào)試的可執(zhí)行文件駐留在目標(biāo)系統(tǒng)上即可。
我們將此工具與IDA(一種多處理器反匯編器和調(diào)試器)結(jié)合使用,以進(jìn)行靜態(tài)和動態(tài)分析,因此我們可以找到路由器漏洞的來源,并通過此過程來說明如何在找到該漏洞并觸發(fā)它。
下圖顯示了在IDA上查看的已解析HTTP標(biāo)頭的相關(guān)部分:
圖6.已解析的HTTP標(biāo)頭顯示了引用程序的設(shè)置
請注意,此處使用函數(shù)strncmp來驗(yàn)證帶有字符串tplinkwifi.net的Referrer標(biāo)頭。前面還驗(yàn)證了IP地址,附加調(diào)試器可以查看這些詳細(xì)信息,確認(rèn)這確實(shí)是一個可利用的路由器漏洞。
攻擊請求
我們的下一步是檢查當(dāng)我們使用不同的字符串長度發(fā)送易受攻擊的請求時,密碼文件會如何處理。首先,我們嘗試發(fā)送一個較短的字符串,只有幾個字節(jié)。
圖7.使用較短的密碼字符串發(fā)送HTTP GET請求
該短字符串通過并損壞了密碼文件,結(jié)果是用戶將無法登錄,攻擊者也將無法登錄。此漏洞影響Telnet,F(xiàn)TP和Web服務(wù)。
圖8.被用戶提交的短字節(jié)字符串損壞的密碼文件
接下來,我們嘗試發(fā)送長度超過允許字符數(shù)的密碼。
發(fā)送一個很長的密碼
這次,密碼完全無效,并且該值現(xiàn)在為空。從現(xiàn)在開始,只使用“admin”作為用戶名,即可訪問TELNET和FTP,而無需輸入任何密碼,默認(rèn)情況下,該用戶名是設(shè)備上唯一可用的用戶。
圖9.管理員密碼已失效
其他漏洞
在無需真正身份驗(yàn)證即可獲得管理員訪問權(quán)限后,我們發(fā)現(xiàn)該特定設(shè)備還允許在WAN上配置FTP。此外,我們可以通過安全的HTTPS連接遠(yuǎn)程管理路由器,這也容易受到CGI攻擊。如果被惡意第三方利用,此路由器漏洞的影響和影響可能是有害的。
攻擊者不僅可以獲得特權(quán)訪問,而且合法用戶也可以被鎖定,并且不再能夠通過用戶界面登錄Web服務(wù),因?yàn)樵擁撁鎸⒉辉俳邮苋魏蚊艽a(用戶不知道)。在這種情況下,受害者可能無法訪問控制臺,甚至無法訪問shell程序,從而無法重新建立新密碼。即使有辦法設(shè)置新密碼,下一個易受攻擊的LAN/WAN/CGI請求也將再次使密碼無效。因此,唯一的訪問將是通過USB端口連接的FTP文件。
潛在影響的另一個方面是RSA加密密鑰可能會失敗,因?yàn)樗皇窃O(shè)計用于空密碼值的。
最重要的是,受害者的設(shè)備FTP(如果配置為在WAN上使用)和Telnet(僅LAN)可以完全暴露給攻擊者。
易受攻擊的路由器比比皆是:如何保護(hù)你的數(shù)據(jù)
最近在TP-Link路由器上的這一關(guān)鍵漏洞只是物聯(lián)網(wǎng)(IoT)安全領(lǐng)域的冰山一角。如今,幾乎每個家庭都使用路由器,但根據(jù)美國消費(fèi)者協(xié)會(American Consumer Institute)的一項(xiàng)研究,六分之五的路由器因安全漏洞沒有得到充分更新。當(dāng)這些漏洞出現(xiàn)時,數(shù)百萬家庭和企業(yè)用戶將面臨數(shù)據(jù)泄露的風(fēng)險。不僅僅是文本信息會丟失,想想網(wǎng)絡(luò)攝像頭、嬰兒監(jiān)視器和其他家用連接設(shè)備使用同一路由器連接互聯(lián)網(wǎng)的畫面。
為了緩解這些風(fēng)險,用戶必須更加重視路由器的安全性,并且要做的第一件事就是更改默認(rèn)密碼。 如果設(shè)備不允許修改用戶名和密碼,那么這無疑是查看更多漏洞的可靠方法。使用默認(rèn)設(shè)備的企業(yè)應(yīng)采取緩解措施,并在可能的情況下對此類設(shè)備訪問啟用雙因素身份驗(yàn)證(2FA)。