驅動精靈惡意投放後門程序 雲控劫持流量、誘導推廣

火絨對金山系部分軟件仿冒其它安全軟件,進行廣告推廣的行爲開啓攔截查殺(報告見鏈接1)。隨後,火絨接到不少用戶反饋,稱在已經卸載金山毒霸、驅動精靈等軟件的情況下,火絨依然出現相關報毒。火絨工程師與用戶溝通和遠程查看分析後,發現是驅動精靈在卸載時故意留下一個名爲“kbasesrv”的後門程序,包含廣告模塊被火絨報毒。



經過深入分析發現,驅動精靈在卸載時會投放”kbasesrv”後門程序,在用戶電腦中執行軟件推廣、流量劫持、雲控鎖定瀏覽器首頁等惡意行爲。不僅如此,該後門程序還可雲控在用戶電腦中執行任意文件、拷貝或刪除文件、結束進程、修改註冊表、向指定窗體發送消息等,這就意味着用戶電腦隨時面臨被遠程執行任意操作的風險。

上述種種行爲已經滿足安全廠商對後門程序的定義,因此火絨對該程序進行查殺。未安裝火絨的用戶也可以選擇火絨專殺工具徹底清除後門程序“kbasesrv”。(專殺地址見鏈接2)


“kbasesrv”後門程序的投放方式除驅動精靈服務項、特殊版本的金山系軟件安裝包以外,最主要是在驅動精靈被用戶卸載時投放。並且該程序部分雲控指令會主動規避火絨等主流安全軟件以及一些主要省會城市(北京、上海、深圳、廣州)。此外,因爲”kbasesrv”後門程序組件與金山毒霸、獵豹瀏覽器、獵豹Wifi等衆多金山系軟件組件有重疊關係,如果金山向這些軟件下發雲控命令後,它們同樣可以實施”kbasesrv”後門程序執行的惡意行爲,所以火絨也會相應的對其進行攔截報毒。由於金山系軟件用戶量較大,導致該後門程序的影響也較爲廣泛。


事實上,數年前就有用戶曝光過金山系軟件相關的劫持行爲(見鏈接3),我們也曾報道過金山利用病毒推廣安裝、仿冒其它安全軟件推廣廣告等行爲(報告見鏈接1、4)。火絨並非有意針對某個廠商,確實是這一系列程序行爲觸及到我們的原則和底線,不加以制止的話,受到損害的將是廣大用戶的權益。在火絨看來,如果這些軟件廠商繼續作惡,盤剝用戶利益,火絨也將持續攔截、查殺這類危險程序。

在對“瀏覽器主頁劫持”現象曝光後,近日人民日報再次對“彈窗廣告”等損害用戶體驗的商業軟件惡劣行爲進行批評,指出相關平臺廠商應該“優化行業生態、加強業界自律”。在此,火絨也呼籲廣大廠商理性逐利,讓用戶不再受到惡意侵擾,享受應有的權益。

注:文中所述後門程序“kbasesrv”曾用名“主頁安全防護”、“金山安全基礎服務”。


相關鏈接:

1、雙十一成流氓推廣狂歡節 單日侵擾千萬量級電腦

https://www.huorong.cn/info/1573220809390.html

2、專殺地址

http://down4.huorong.cn/hrkill_1.0.0.31.exe

3、用戶曝光金山劫持

https://www.zhihu.com/question/26615909

http://www.vuln.cn/6310

4、金山毒霸"不請自來" 背後竟有黑產推波助瀾

https://www.huorong.cn/info/1566908385361.html



附:【分析報告】


目錄

一、 溯源分析

二、 投放渠道

驅動精靈推廣kbasesrv

金山系軟件渠道包投放kbasesrv

三、 雲控後門

四、 篡改瀏覽器內存數據

五、 流量劫持

推廣號劫持

瀏覽器劫持

六、 雲控鎖首

首頁鎖定

鎖定新建標籤頁

添加外鏈

七、 同源分析

八、 附錄


一、 溯源分析

火絨在近期報告《雙十一成流氓推廣狂歡節 單日侵擾千萬量級電腦》中,揭露了金山系廣告模塊帶有僞裝安全軟件進程名、監聽用戶剪切板、檢測安全分析工具等流氓廣告推廣行爲。在我們對金山系相關廣告模塊進行查殺後,我們又收到了大量用戶的相關反饋。我們奇怪的發現,在很多被植入流氓推廣模塊的電腦中,用戶從未主動安裝過任何金山系軟件或已經卸載。通過分析,我們最終定位到是帶有金山簽名的後門服務kbasesrv在下發流氓推廣模塊,該服務被安裝時不會產生任何界面提示,且可以通過雲控服務器控制該服務在用戶終端的程序行爲,包括但不限於在用戶計算機執行廣告投放、流量劫持、軟件推廣等,該服務行爲符合火絨對後門程序的定義。



kbasesrv後門程序文件簽名信息


通過溯源,我們定位有多個渠道在推廣kbasesrv後門程序,如:驅動精靈服務項、驅動精靈卸載程序、金山軟件特殊版本渠道包等。經過我們確認,上述推廣渠道中用戶無法通過手動設置阻止kbasesrv服務被安裝,即在用戶不知情的情況下就會被該後門程序控制。後門程序安裝包在投放時,會主動規避主流安全軟件(火絨、360)。 後門程序暫時主要會執行軟件推廣、流量劫持(包括劫持推廣計費號、劫持瀏覽器等)、雲控鎖定瀏覽器首頁。


除此之外,我們還發現該後門程序還帶有執行任意可執行文件、命令行,釋放推廣快捷方式,結束進程,向指定窗體發送消息,拷貝文件,修改刪除註冊表等後門功能。後門雲控配置下發時會主動規避主要省會城市(北京、上海、深圳、廣州),並且也會躲避主流安全軟件。上述惡意行爲完全符合我們對後門程序的定義,直接影響到了用戶對個人電腦的正常使用。後門程序執行流程,如下圖所示:


後門程序執行流程圖


二、 投放渠道


驅動精靈推廣kbasesrv

驅動精靈卸載程序投放kbasesrv時,爲避免重複安裝,會檢測kbasesrv或金山毒霸是否已經安裝(金山毒霸包含kbasesrv相關組件,具體後文同源性分析會有相關說明),同時還會規避安全軟件(火絨、360安全衛士),防止其惡意投放行爲被安全軟件捕獲。相關代碼,如下圖所示:


驅動精靈卸載程序投放kbasesrv邏輯


規避火絨相關代碼,如下圖所示:


規避火絨相關代碼


驅動精靈服務和卸載程序中均存在有kbasesrv服務投放邏輯。相關代碼邏輯,如下圖所示:


驅動精靈服務投放kbasesrv相關代碼邏輯


金山系軟件渠道包投放kbasesrv

通過我們溯源分析,我們還找到了一個特殊版本的獵豹瀏覽器安裝包,kbasesrv安裝包與獵豹瀏覽器安裝包都以二進制數據形式被存放在安裝包資源中。安裝包運行後,會彈出獵豹瀏覽器安裝界面,但獵豹瀏覽器與kbasesrv後門程序的安裝互不影響,即使用戶不安裝獵豹瀏覽器也不會影響kbasesrv後門程序的安裝。相關動作截圖,如下圖所示:


投放kbasesrv動作截圖


該特殊版本獵豹瀏覽器安裝文件數字簽名信息,如下圖所示:


特殊版本獵豹瀏覽器安裝文件數字簽名信息


三、 雲控後門

kbasesrv後門程序會調用指定後門模塊(infocenter.exe、phoenix.exe、kwhcommonpop.exe)根據雲控配置執行後門指令。其中kwhcommonpop.exe由kcmppinvoker.dll調用,現行的雲控配置主要用來進行軟件推廣;kpolicy.dll可以根據kpctrl.dll加載的雲控配置調用infocenter.exe、phoenix.exe執行後門命令。以phoenix.exe爲例,該後門模塊可以執行的部分主要後門指令,如下圖所示:


phoenix.exe可以執行的後門指令


kpctrl.dll會首先會從通過本地同步的fnsign.dat(該文件被加密,該文件同步地址爲:hxxp://pc001.update.lbmini.cmcm.com/cmcm/kprotect/bin/2001/kprotect/data/d8d04a39237358e3125162fe1f1641b0,最後部分爲文件內容哈希值)配置中解析出執行後門模塊的相關策略數據。解密後的配置數據,如下圖所示:


推廣配置


kbasesrv會根據kpctrl中加載的配置數據調用kpolicy.dll,創建推廣軟件控制線程,每隔5秒檢測一次雲控數據列表,如果該列表不爲空,則會調用指定的後門模塊根據同步到本地的雲控配置執行後門邏輯。相關代碼,如下圖所示:


軟件推廣相關代碼


如果雲控數據中設置了拷貝路徑,則會將後門模塊拷貝到指定目錄執行。相關代碼,如下圖所示:


調用後門模塊相關代碼


由於infocenter.exe、phoenix.exe和kwhcommonpop.exe三個模塊關鍵代碼基本相同,所以報告中僅以phoenix.exe進行分析說明。phoenix.exe執行後會解析同步到本地的雲控配置(雲控下發地址:hxxp://config.i.duba.net/rcmdsoft/6/7/generalizecfg.dat)文件generalizecfg.dat(文件在軟件目錄中的phoenix/6/7目錄下,其中6代表當前軟件名稱,如kbasesrv、金山毒霸、驅動精靈等;7爲模塊中的給定數值)。雲控配置文件解密後,如下圖所示:


generalizecfg.dat配置內容


我們所請求到的相關雲控配置主要用來進行軟件推廣,根據現有配置後門模塊會執行誘導軟件推廣。上圖配置中resinfo標籤下的url字段用來拼接資源文件下載地址(下載地址如:hxxp://config.i.duba.net/rcmdsoft/6/7/db/kp_music_push_db.zip),資源文件爲誘導彈窗頁面資源。用戶再點擊“一鍵清理”後,則會推廣安裝金山毒霸。彈窗界面,如下圖所示:


誘導推廣彈窗界面


在另一份generalizecfg.dat配置中,我們又找到了很多規則安全軟件的策略,根據註釋我們推測此配置爲金山毒霸卸載時所執行的推廣行爲。相關配置,如下圖所示:


generalizecfg.dat配置內容


除此之外,我們還在phoenix.exe後門模塊中找到了其他後門指令功能(執行任意可執行程序、命令行,拷貝文件、修改註冊表等)。我們還通過對金山系軟件歷史文件的篩查,找到了利用後門指令的相關配置文件。我們從配置內容中發現,部分軟件功能與後門功能都存在與同一配置文件中,即。配置文件內容,如下圖所示:


後門指令配置


解析執行雲控命令相關代碼,如下圖所示:


解析執行雲控命令相關代碼


後門指令功能僅以個別功能爲例。相關代碼,如下圖所示:


執行指定命令行

結束指定進程


調用kinst.dll動態庫推廣安裝軟件


kinst.dll爲金山系通用軟件推廣模塊,可以通過根據雲端推廣配置推廣安裝指定軟件。在我們下載到的推廣配置中,推廣策略可以靜默推廣金山毒霸。該推廣軟件安裝程序爲一個特殊構造的動態庫,運行InstallEx導出函數後即可靜默安裝金山毒霸。相關配置文件,如下圖所示:


推廣軟件相關雲端配置


下載解析雲端推廣配置(服務器地址:http://config.i.duba.net/lminstall3/[config_number].json?time=[time_tickcount])相關代碼,如下圖所示:


下載解析雲端推廣配置代碼


執行軟件推廣相關代碼,如下圖所示:


執行軟件推廣相關代碼


四、 篡改瀏覽器內存數據

注入到瀏覽器中的knb3rdhmpg.dll模塊會篡改瀏覽器內存數據,破壞瀏覽器首頁防篡改的功能。受到影響的瀏覽器,如下圖所示:


受影響的瀏覽器


以360安全瀏覽器爲例,在sesafe.dll模塊中會檢測360安全瀏覽器啓動參數,如果發現首頁的啓動參數中存在 “duba”字符串,則會開啓首頁修復功能模塊。相關代碼,如下圖所示:


sesafe.dll首頁劫持防護


當360安全瀏覽器檢測到首頁被毒霸劫持後會進行首頁修復。相關現象,如下圖所示:


360安全瀏覽器首頁修復


爲了成功劫持瀏覽器首頁,注入到瀏覽器中的knb3rdhmpg.dll模塊會通過hook LdrLoadDll函數,在瀏覽器dll模塊加載時,對相應模塊數據進行篡改,破壞原有的惡意篡改主頁攔截功能。該模塊不僅會固定的篡改一部分內容,而且會根據配置文件進行篡改。相關的配置文件爲safepatch.dat文件,可以通過雲控下發,其中包含了要篡改的瀏覽器模塊和內容。相關代碼,如下圖所示:


Hook LdrLoadDll


篡改sesafe.dll內存數據


safepatch.dat文件


五、 流量劫持

推廣號劫持

注入到瀏覽器中的knb3rdhmpg.dll模塊會對百度搜索,搜狗搜索以及hao123的導航頁進行推廣號劫持。當用戶使用瀏覽器訪問這些站點時,該模塊便會劫持這些鏈接的推廣號。劫持推廣號的配置文件有兩個,kbasesrv目錄下使用簡單異或的se_redirect_ex2.dat和uredirect.dat文件。配置文件均可以通過雲控下發更新,其中包括了劫持的url前綴,劫持白名單,劫持到的推廣號和劫持的概率等信息。se_redirect_ex2.dat文件現在爲主動更新派發,uredirect.dat文件目前不會更新下來,但是從金山毒霸目錄下找到同名文件,且文件中的字段信息與程序邏輯相吻合。劫持配置文件,如下圖所示:


se_redirect_ex2.dat文件


uredirect.dat文件


對於不同的瀏覽器,實現推廣號劫持的方法有所不同,主要有三種方法。

1) 調用SetWinEventHook,對EVENT_OBJECT_NAMECHANGE事件進行過濾,並針對瀏覽器標籤頁窗體做劫持處理。當標籤頁的窗口標題發生改變時,便會觸發事件鉤子的回調函數,進入劫持流程。knb3rdhmpg.dll模塊會根據標籤頁的窗口標題查詢得到劫持鏈接,並將其保存到粘貼板中。然後以模擬鍵盤輸入的方式,將劫持的鏈接粘貼到地址欄中並訪問,完成劫持。相關代碼,如下圖所示:


調用SetWinEventHook過濾EVENT_OBJECT_NAMECHANGE事件


模擬鍵盤輸入進行推廣號劫持


2) Hook NtDeviceIoControlFile對瀏覽器傳輸的流量進行分析,解析其中的域名和請求的url,匹配對應的劫持鏈接,並將傳回的數據替換爲302重定向返回數據,跳轉到劫持的鏈接上。相關代碼,如下圖所示:


使用302重定向劫持推廣號


3) 通過Hook SetWindowTextW對設置瀏覽器標題欄內容的調用進行過濾。當瀏覽器將要訪問搜索工具鏈接(百度,搜狗,hao123)時,標題欄被設置爲搜索工具名稱,就會觸發劫持流程。knb3rdhmpg.dll模塊根據原有鏈接得到劫持鏈接,並調用SetWindowTextW設置地址欄鏈接,最後模擬鍵盤輸入回車進行訪問。


Hook SetWindowText劫持推廣號


瀏覽器劫持

受到劫持影響的瀏覽器有:2345瀏覽器、搜狗瀏覽器、QQ瀏覽器

kbasesrv.exe會根據當前系統版本將kbasesrv模塊下的“knbhmpg.dll“和“knb3rdhmpg.dll”或“knbhmpg64.dll“和“knb3rdhmpg64.dll”注入到系統進程explorer.exe中。注入後的explorer.exe進程如下圖所示:


被注入後的explorer.exe進程模塊列表


成功注入到explorer.exe 後,knbhmpg.dll會對IcontextMenu接口下的InvokeCommand方法進行hook。InvokeCommand方法主要是用於執行與快捷菜單項關聯 的命令。也就是說當我們雙擊快捷方式等操作時,就會觸發hook函數。Hook InvokeCommand方法代碼如下圖所示:


Hook InvokeCommand方法


當成功觸發hook代碼後,程序便會載入knb3rdhmpg.dll,獲取其導出函數“F1”的地址,相關代碼如下圖所示:


獲取knb3rdhmpg.dll中導出函數F1的地址


在獲取到knb3rdhmpg.dll中導出函數F1的地址後,程序便會進入F1的代碼邏輯中運行, 首先會根據所獲取的快捷方式路徑獲取到其所指向的可執行文件路徑,相關代碼如下圖所示:


獲取快捷方式所指向的文件路徑


之後解密自身路徑下的safeurl.dat配置文件,並得到所需配置內容。解密safeurl.dat,相關代碼如下圖所示:


解密safeurl.dat

解密出的Safeurl.dat文件中所對應的配置及字段解釋如下圖所示:


解密出的Safeurl.dat內容及字段解釋


然後檢測代表觸發次數的times字段是否大於0,如果大於0功能正常繼續往下運行,否則功能失敗,相關代碼如下圖所示:


檢測times字段值


當觸發次數值滿足條件時,會獲取一個隨機數除以100,將所得餘數與配置文件中的數值進行比較,從而實現控制觸發的概率,相關代碼如下圖所示:


檢測概率


概率被成功觸發後,該模塊會根據註冊表鍵值來獲取自身所在路徑,拼接出啓動參數”C:\\Program Files\\kbasesrv\\knbhm.exe -url SogouExplorer.exe https://www.duba.com/?f=lnkjks”,創建新的進程。相關代碼如下圖所示:


拼接啓動參數並創建進程


knbhm.exe實際上相當於一個啓動器,根據其它模塊啓動它的不同參數來處理不同的邏輯,knbhm.exe可接收的參數如下圖所示:


knbhm.exe接收參數


當knbhm.exe以“-url”參數啓動時,會根據safeurl.dat配置,創建新的進程,劫持用戶點擊的瀏覽器,如果用戶電腦存在獵豹瀏覽器,則會以獵豹瀏覽器啓動用戶點擊的瀏覽器, 下面以搜狗高速瀏覽器爲例,雙擊後被獵豹瀏覽器劫持現象如下圖所示:


劫持用戶瀏覽器


六、 雲控鎖首

注入到瀏覽器中的knb3rdhmpg.dll模塊會通過進程間通信的方式獲取鎖首配置內容,鎖首功能可以通過配置文件進行控制。此配置文件可以通過雲控下發更新,其中包含了不同推廣渠道的鎖首策略。多數的鎖定策略都對北京、上海、深圳和廣州大城市地區進行規避。受影響的瀏覽器和推廣策略,如下圖所示:


受影響的瀏覽器


首頁鎖定策略


首頁鎖定

在Hook InvokeCommand方法後,如果未觸發上述劫持瀏覽器的條件時,該模塊會根據瀏覽器名稱獲取內置的字段名,以搜狗高速瀏覽器爲例,獲取內置字段“BROWSER_SOGOU”,通過進程間通信發送到“kbasesrv.exe”,從而得到鎖首網址。之後便會拼接出新的啓動參數,其中hash字段後面接的是瀏覽器路徑及啓動參數的hash值。創建knbhm.exe進程相關代碼如下圖所示:


拼接啓動參數並創建knbhm.exe進程


下面以搜狗高速瀏覽器爲例,雙擊後首頁被毒霸導航鎖定現象如下圖所示:


毒霸鎖定搜狗導航頁


鎖定新建標籤頁

注入瀏覽器中的knb3rdhmpg.dll通過Hook SetWindowTextW對設置瀏覽器標題欄內容的調用進行過濾。當用戶打開特定瀏覽器的新標籤頁時,便會進入鎖定流程。該模塊通過進程間通信獲得新標籤頁鎖定功能是否開啓的標記和鎖定鏈接,然後調用knbhm模塊啓動瀏覽器打開鎖定鏈接,產生一個鎖定的新標籤頁。相關代碼,如下所示:


Hook SetWindowTextW函數


鎖定新建標籤頁



添加外鏈

注入到瀏覽器中的knb3rdhmpg.dll模塊會在命令行上添加外鏈。knb3rdhmpg.dll模塊對某些瀏覽器hook GetCommandLineW函數對命令行參數進行處理,在原有鏈接基礎上添加額外的鏈接。當用戶瀏覽器帶有網址參數啓動時,該模塊便會在後面添加額外的鏈接。在打開原有頁面的同時,打開一個額外的鏈接頁面。相關代碼,如下圖所示:


Hook GetCommandLineW


在原有的命令行參數後添加外鏈


七、 同源分析

除了在驅動精靈投放的kbasesrv目錄中發現上述惡意模塊,我們還在金山旗下其它軟件中(例如:金山毒霸、驅動精靈、獵豹瀏覽器、獵豹WiFi)發現存在類似的惡意模塊。以含有同名文件kwhcommonpop.exe爲例,解析執行後門指令相似代碼如下圖所示:


同源代碼分析


八、 附錄

樣本hash


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章