流氓軟件卸載後仍留惡意模塊通過雲控服務器隨時“復活”
近日我們收到大量用戶反饋,一款名為“巧壓”的壓縮軟件卸載後還會“復活”——重新安裝到用戶電腦中。火絨工程師分析後發現,在用戶執行卸載操作時,“巧壓”會將惡意模塊駐留在用戶電腦中,並可以通過惡意代碼從雲控服務器下載執行任意可執行文件。
用戶大量反饋的“復活”現象,不排除是通過該雲控邏輯實現。根據“火絨威脅情報系統”監測和評估,目前受到“巧壓”影響的用戶或在百萬級左右。
“巧壓”除了卸載不掉以外,還會產生大量彈窗廣告,嚴重干擾用戶日常電腦的使用。目前火絨為用戶提供以下兩種解決方法:
1、 徹底卸載
用戶通過“控制面板”卸載“巧壓”後,使用“火絨安全軟件”進行全盤掃描,即可徹底卸載該軟件。
2、 保留壓縮功能
用戶直接使用“火絨安全軟件”進行全盤掃描,即可徹底刪除惡意模塊以及彈窗廣告模塊,只保留壓縮功能。
關於“巧壓”是如何駐留用戶電腦的,請見我們的詳細分析報告。
附:【分析報告】
一、背景
近期,火絨接到大量用戶反饋稱壓縮軟件巧壓,在軟件被卸載後會“復活”重新裝回用戶電腦,隨後我們針對巧壓的相關流氓行為進行了詳細分析。該流氓軟件在卸載後,服務項和Shell擴展項依然會駐留在用戶電腦中。上述駐留項被調用後,最終會調用駐留在用戶電腦中的QiaoZipSvcHost.exe下載執行遠端服務器下發的可執行程序。雖然在報告發出時,我們未獲取到有效的“復活”相關遠端配置數據,但我們不排除眾多網友所遇到的巧壓“復活”的情況與相關邏輯有關的可能性。巧壓軟件卸載後的部分駐留模塊,如下圖所示:
巧壓軟件卸載後的部分駐留模塊
巧壓軟件卸載後駐留的Shell擴展項加載情況,如下圖所示:
駐留的Shell擴展項加載情況
巧壓軟件卸載後駐留的服務項加載情況,如下圖所示:
駐留的服務項加載情況
除此之外,該軟件在使用過程中還會產生較多的廣告彈窗,嚴重影響了用戶對個人電腦的正常使用。該流氓軟件產生的廣告彈窗,如下圖所示:
廣告彈窗
廣告彈窗
二、詳細分析
啟動方式
QiaoZipSvcHost.exe可由“QiaoZipSvcHost.dll”和“QiaoZipRMExtern.dll”模塊調用啟動,啟動流程大致相同,默認啟動間隔均為30分鐘。該流氓軟件執行流程,如下圖所示:
流氓軟件執行流程
QiaoZipSvcHost.dll啟動QiaoZipSvcHost.exe
後台駐留的服務由QiaoZipMd5Tool.exe模塊註冊。Install.exe安裝包程序執行後會解出QiaoZipMd5Tool.exe和用於服務執行的QiaoZipSvcHost.dll文件。QiaoZipMd5Tool.exe直接啟動時為帶有界面的Hash校驗工具,但也可以通過添加命令行參數的方式將QiaoZipSvcHost.dll靜默註冊為服務。相關程序運行信息如下圖所示:
程序運行信息
駐留的服務會在SeviceMain中創建線程,間隔固定時間(默認為30分鐘,也可通過註冊表項HKCUSoftwareQiaoZipSvcHostQiaoZipSvcHost鍵值retainPI設定分鐘數)啟動模塊QiaoZipSvcHost.exe , 參數為-startby=1。QiaoZipSvcHost.exe的路徑從註冊表中HKCUSoftwareQiaoZipSvcHostQiaoZipSvcHost鍵值uishP獲得。相關代碼如下圖所示:
ServiceMain中創建線程用於啟動模塊
每隔固定時間啟動
創建進程啟動
註冊表
QiaoZipRMExtern.dll啟動QiaoZipSvcHost.exe
QiaoZipMd5Tool.exe會將QiaoZipRMExtern.dll註冊為圖標處理程序組件(ShellIconOverlayIdentifiers),當explorer.exe處理文件圖標時,便會將其加載起來。相關註冊表項如下圖所示:
註冊表相關信息
駐留的QiaoZipRMExtern.dll模塊,會對自己當前所在進程是否是explorer.exe進行判斷,如果是,則通過註冊表鍵“eysTime”來查詢程序上次運行時間戳,相關代碼如下圖所示:
查詢當前所在進程並獲取上次運行時間戳
註冊表相關鍵值信息
當獲取上次運行時間戳成功後,會與當前系統時間進行運算比較。如果上次運行時間距離當前系統時間大於30分鐘,則程序繼續向下運行,否則繼續等待。相關代碼如下圖所示:
程序上次運行時間與當前系統時間進行運算比較
當滿足上述時間差條件後,程序會通過註冊表鍵“uishP”獲取QiaoZipSvcHost.exe的所在路徑。獲取成功之後,則會拼接運行參數“-startby=2”來執行QiaoZipSvcHost.exe。最後,獲取當前時間並更新註冊表“eysTime”的鍵值,相關代碼如下圖示:
通過註冊表鍵“uishP”獲取QiaoZipSvcHost.exe所在路徑
註冊表相關鍵值信息
啟動QiaoZipSvcHost.exe並更新“eysTime”鍵值
QiaoZipSvcHost.exe下載器
QiaoZipSvcHost.exe被調用後會將本地系統信息上傳到C&C服務器,請求地址如:hxxps://g.qiaoya.xsfaya.com/?r=/v2/api/config/wheel&category=0&manager=1&os=5&parent= 1&qid=1&softid=17&uninstalled=1&vd=8&version=1.0.0.0&x64=1,請求會上傳用戶的系統版本、軟件卸載狀態、軟件版本等信息。服務器在接到請求後,會反饋下載相關配置數據。請求相關代碼,如下圖所示:
請求鏈接構造
請求遠程配置
服務器下發的配置數據為json格式,現階段我們截獲到的配置數據已經沒有相關的下載配置,但是我們不排除將來相關配置放開下發可執行模塊的可能性。但是服務器依然可以訪問,現階段我們請求到的配置,如下圖所示:
現階段我們截獲到的配置數據
在服務器配置放開下發的情況下,QiaoZipSvcHost.exe會根據下載配置中的鏈接地址下載指定模塊到本地執行,相關代碼如下圖所示:
下載遠端文件
執行從遠端下載到的可執行文件,相關代碼如下圖所示:
執行從遠端下載的可執行文件
三、附錄
樣本hash