這些天小米路由器再爆作惡新聞,繼前段時間的403/404劫持,現在就連普通上個網頁都被劫持了,用來插入小米廣告,簡直不能忍!小編趕緊結合網上大神以及自己的摸索,找到了暫時能解決小米路由器劫持403/404和插入廣告的惡行,之後小米路由器有什麼動作,靜觀其變吧。
論壇相繼爆料
可疑啟動項和進程分析
最近幾天稍微對小米路由(R1D)上的啟動項和進程做了一些分析,初步得到一個稍微干淨的小米路由:
1.1 /etc/init.d/http_client_detect
在這個啟動項裡,主要是加載nf_conn_ext_http 和 insmod nf_tcp_proxy 兩個內核模塊,同時有啟動 /usr/sbin/http_dpi
我還沒深入研究,但初步判斷小米路由監控用戶的HTTP數據,已達到404劫持和插入廣告的操作。
所以這個啟動項必須刪除掉,拋棄
1.2 /etc/init.d/rule_mgr
這個啟動項中有http_match , nf_conn_ext_http, nf_tcp_proxy 內核模塊
估計也是輔助劫持所用,拋棄
1.3 /etc/init.d/http_status_stat
單從名字上看,應該就是為劫持404所用,拋棄
1.4 /etc/init.d/statisticsservice
啟動的進程中的配置文件中有一段:ad_filter_stat_url = "http://127.0.0.1:8195/"
感覺是廣告的代理,你說沒事去訪問8195端口干啥,另外“ad”這個名字,就是廣告縮寫呀,拋棄
1.5 /etc/init.d/sysapihttpd
這是啟動http服務器,純粹啟動80端口也就罷了,啟動了N個服務和端口,我也就不一一吐槽了
總之也是為配合404劫持和廣告所用,所以需要拋棄。
如果才啟動項禁用掉的話,可能就無法訪問小米路由的WEB配置頁面了,別擔心,可以啟動uhttpd來實現。
1.6 /etc/init.d/mihttpd
同樣是啟動小米路由的配置頁面,不過不在80端口,拋棄。
1.7 /etc/init.d/xunlei
小米路由中的下載用的就是迅雷,如果有下載需求的可以不用停,但我無此需求,看著也不爽,拋棄。
1.8 /etc/init.d/messagingagent.sh
此啟動項是將路由器一些數據上報給小米服務器,手機app遠程訪問也就是聯系小米服務器獲取路由的相關信息。
具體我也不一一描述了,個人感覺,將一些信息上傳給小米,這件事不靠譜。
雖然打著“遠程管理”的幌子,誰知道有無上傳個人隱私信息呢。
如果你還需要用手機APP遠程配置路由的話,可以留著。
操作步驟:
當然小米路由上還有其他可疑進程,但還未搞清楚其用途或者關聯,暫時不去理會。
這次主要初步解決掉404劫持,插入廣告這類問題:
手上這台小米路由的系統版本是: 開發版2.3.10 ,其他版本未嘗試。
2.1 首先得開啟ssh權限,這個不需要多說了,網上教程很多,也可以通過小米官網開啟,開啟之後就失去保修了,個人衡量。
2.2 關閉可疑進程操作:
/etc/init.d/rule_mgr stop
/etc/init.d/http_client_detect stop
/etc/init.d/http_status_stat stop
/etc/init.d/statisticsservice stop
/etc/init.d/sysapihttpd stop
/etc/init.d/mihttpd stop
不需要遠程訪問和迅雷下載的話,可以繼續操作:
/etc/init.d/messagingagent.sh stop
/etc/init.d/xunlei stop
這樣的話,以上進程都被關閉掉了。
2.3 關閉可疑進程開機自動運行:
/etc/init.d/rule_mgr disable
/etc/init.d/http_client_detect disable
/etc/init.d/http_status_stat disable
/etc/init.d/statisticsservice disable
/etc/init.d/sysapihttpd disable
/etc/init.d/mihttpd disable
不需要遠程訪問和迅雷下載的話,可以繼續操作:
/etc/init.d/messagingagent.sh disable
/etc/init.d/xunlei disable
這樣的話,以上進程,重啟之後也不會開機運行了
2.4 啟動uhttpd操作:
因為停掉了sysapihttpd ,小米路由配置WEB將無法訪問。
幸運的是,小米路由上還有uhttpd
首先修改一下/etc/init.d/uhttpd
找到 [ $use_uhttpd -eq 0 ] && return 0 這行,大概在倒數第8行的樣子,注釋掉這一行。
然後啟動uhttpd:
/etc/init.d/uhttpd start
並設置開機自動運行:
/etc/init.d/uhttpd enable
2.5 計劃任務中一些操作也讓我存疑
執行crontab -e 可以注釋停掉,目前我計劃任務中只保留了ntp,其他項都被我注釋掉了。
至此,我個人認為可以解決小米路由劫持404,插入廣告,上報數據的問題了。我的小米路由器運行了3天,目前正常使用中,可能還有可疑的進程,還未發現,持續關注。小米路由淨化計劃繼續,繼續分析可疑進程,將其打入小黑屋,另外想辦法用原生luci替換掉目前小米定制的小米luci,裝個插件都得在手機APP操作,實在蛋疼。