国产精品香蕉在线观看网,亚洲欧美精品综合在线观看,亚洲不卡av一区二区无码不卡,亚洲日本精品国产第一区二区

移動安全 安全管理 應(yīng)用案例 網(wǎng)絡(luò)威脅 系統(tǒng)安全應(yīng)用安全 數(shù)據(jù)安全 云安全
當(dāng)前位置: 主頁 > 信息安全 > 應(yīng)用安全 >

若何反編譯D-Link路由器固件法度并發(fā)現(xiàn)它的后門

時間:2013-11-04 12:13來源:TuZhiJiaMi企業(yè)信息安全專家 點(diǎn)擊:
一時髦起,我下載了D-link無線路由器(型號:DIR-100 revA)的固件法度v1.13。利用東西Binwalk,很快的就從中發(fā)現(xiàn)并提掏出一個只讀SquashFS文件系統(tǒng),沒用多大年夜工夫我就將這個固件法度的web serve
Tags后門(33)應(yīng)用安全(1006)路由器(60)D-Link(7)  

  一時髦起,我下載了D-link無線路由器(型號:DIR-100 revA)的固件法度v1.13。利用東西Binwalk,很快的就從中發(fā)現(xiàn)并提掏出一個只讀SquashFS文件系統(tǒng),沒用多大年夜工夫我就將這個固件法度的web server (/bin/webs)加載到了IDA中:

  /bin/webs中的字符信息

  基于上面的字符信息可以看出,這個/bin/webs二進(jìn)制法度是一個點(diǎn)竄版的thttpd,供給路由器治理員界面把持功能。看起來是顛末端臺灣明泰科技(D-Link的一個子公司)的點(diǎn)竄。他們乃至很有心計的將他們良多自定義的函數(shù)名都輔以“alpha”前綴:

  明泰科技的自定義函數(shù)

  這個alpha_auth_check函數(shù)看起來很成心思!

  這個函數(shù)被良多處所調(diào)用,最較著的一個是來自alpha_httpd_parse_request函數(shù):

  調(diào)用alpha_auth_check函數(shù)

  我們可以看到alpha_auth_check函數(shù)領(lǐng)受一個參數(shù)(是存放在存放器$s2里);假定alpha_auth_check返回-1(0xFFFFFFFF),法度將會跳到alpha_httpd_parse_request的結(jié)尾處,不然,它將繼續(xù)措置要求。

  存放器$s2在被alpha_auth_check函數(shù)利用前的一些把持代碼顯示,它是一個指向一個數(shù)據(jù)布局體的指針,里面有一個char*指針,會指向從HTTP要求里領(lǐng)遭到的各類數(shù)據(jù);好比HTTP頭信息和要求地址URL:

  $s2是一個指向一個數(shù)據(jù)布局體的指針

  我們此刻可以摹擬出alpha_auth_check函數(shù)和數(shù)據(jù)布局體的大年夜概模樣:

  alpha_auth_check本身是一個很是簡單的函數(shù)。它會針對http_request_t布局體里的一些指針進(jìn)行字符串strcmp比較把持,然后調(diào)用check_login函數(shù),實(shí)際上就是身份驗(yàn)證查抄。假定一旦有字符串比較成功或check_login成功,它會返回1;否者,它會重定向?yàn)g覽器到登錄頁,返回-1;

  alpha_auth_check函數(shù)代碼片段

  這些字符串比較過程看起來很是有趣。它們提取要求的URL地址(在http_request_t數(shù)據(jù)布局體的偏移量0xB8處),查抄它們是不是含有字符串“graphic/”或“public/”。這些都是位于路由器的Web目次下的公開子目次,假定要求地址包含如許的字符串,這些要求便可以不經(jīng)身份認(rèn)證就可以履行。

  但是,這最后一個strcmp倒是相當(dāng)?shù)奈矍颍?/P>

  alpha_auth_check函數(shù)中一個很是有趣的字符串比較

  這個把持是將http_request_t布局體中偏移量0xD0的字符串指針和字符串“xmlset_roodkcableoj28840ybtide”比較,假定字符匹配,就會跳過check_login函數(shù),alpha_auth_check把持返回1(認(rèn)證經(jīng)由過程)。

  我在谷歌上搜刮了一下“xmlset_roodkcableoj28840ybtide”字符串,只發(fā)此刻一個俄羅斯論壇里提到過它,說這是一個在/bin/webs里一個“很是有趣”的一行。我很是同意。

  那么,這個神秘的字符串事實(shí)是和甚么東西進(jìn)行比較?假定回顧一下調(diào)用路徑,我們會發(fā)現(xiàn)http_request_t布局體被傳進(jìn)了好幾個函數(shù):

  事實(shí)證實(shí),http_request_t布局體中處在偏移量0xD0處的指針是由httpd_parse_request函數(shù)賦值的:

  查抄HTTP頭信息中的User-Agent值

  將http_request_t + 0xD0指針指向頭信息User-Agent字符串

  這代碼實(shí)際上就是:

  知道了http_request_t偏移量0xD0處的指針指向User-Agent頭信息,我們可以猜測出alpha_auth_check函數(shù)的布局:

  換句話說,假定瀏覽器的User-Agent值是“xmlset_roodkcableoj28840ybtide”(不帶引號),你便可以不經(jīng)任何認(rèn)證而能拜候web節(jié)制界面,可以或許查看/點(diǎn)竄路由器的設(shè)置(下面是D-Link路由器(DI-524UP)的截圖,我沒有DIR-100型號的,但DI-524UP型號利用的是不異的固件):

  拜候型號DI-524UP路由器的主界面

  基于HTML頁上的源代碼信息和Shodan搜刮成果,差不多可以得出如許的結(jié)論:下面的這些型號的D-Link路由器將會遭到影響:

  • DIR-100

  • DI-524

  • DI-524UP

  • DI-604S

  • DI-604UP

  • DI-604+

  • TM-G5240

  除此以外,幾款Planex路由器明顯也是用的一樣的固件法度:

  • BRL-04UR

  • BRL-04CW

  你很酷呀,D-Link。

  腳注:全能的網(wǎng)友指出,字符串“xmlset_roodkcableoj28840ybtide”是一個倒序文,反過來讀就是“editby04882joelbackdoor_teslmx”——edit by 04882joel backdoor _teslmx,這個后門的作者真是位天才!

------分隔線----------------------------

推薦內(nèi)容