NetGear路由器可以通過命令注入獲取ROOT許可權

發表於2013-11-01

國外某大牛研究發現,NetGear路由器wndr3700v4的韌體存在認證漏洞。一旦Web介面認證繞過了,後續可以做的事情就會很多。

NetGear的wndr3700v4韌體中有一個可執行指令碼 net-cgi ,這個功能很像busy-box。所以裡面有很多的地方可以研究,這裡我們比較感興趣的是 cmd_ping6() 這個模組。

120131101225204

這個功能利用char *host函 數來工作的,主要的功能是通過機器名或者IPv6來進行ping操作。這個是一個很常見的功能,不過這個韌體裡面,它使用了sprintf()這個函式, 它將字串複製到shell命令中去執行了,這是一個最簡單的緩衝區溢位漏洞,最終他會將輸入內容傳遞到system()這個函式來執行。

那如果這個使用者沒有使用IPv6怎麼辦呢?沒關係,只要命令被system()執行了,管它ping命令是否成功執行幹毛?

回頭看一下,這個漏洞是如何產生的。

220131101225227

cmd_ping6()通過cgi_commit()呼叫,cgi_commit()通過sub_4052d0()呼叫。

頁面執行的時候,是使用的ping6_traceroute6_hidden_info.htm這個頁面。

320131101225301

我們來試著執行一些小命令測試一下:

420131101225314

 

雖然是一個小測試,但是效果是立竿見影的,就算是遠端,你也可以輕易的知道命令是否執行成功了。

520131101225331

對與這個漏洞,這名外國大牛利用Python寫出了一個EXP,這個EXP主要執行了以下幾個功能:

620131101225346

 

下載EXP:

Github  https://github.com/zcutlip/exploit-poc/blob/master/netgear/wndr3700v4/ping6_cmd_injection/ping6_inject.py

執行該EXP需要安裝Bowcaster。

https://github.com/zcutlip/bowcaster

美國網件公司-NETGEAR Inc.(NETGEAR)於1996年1月創立,長期致力於為中小規模企業使用者與 SOHO 使用者提供簡便易用並具有強大功能的網路綜合解決方案。總部設在美國加州矽谷聖克拉拉市,業務遍及世界多個國家和地區,是美國高科技企業連續八年增長速度最快的50家之一,並於2003年作為唯一的計算機網路公司在美國 Nasdaq 交易所成功上市(股票程式碼:NTGR)。

相關文章