流氓軟件巧壓卸載仍留惡意模塊隨時「復活」 一招教你徹底清除

  • 2020 年 3 月 11 日
  • 筆記

【快訊】近日我們收到大量用戶反饋,一款名為「巧壓」的壓縮軟件卸載後還會「復活」——重新安裝到用戶電腦中。火絨工程師分析後發現,在用戶執行卸載操作時,「巧壓」會將惡意模塊駐留在用戶電腦中,並可以通過惡意代碼從雲控服務器下載執行任意可執行文件。用戶大量反饋的「復活」現象,不排除是通過該雲控邏輯實現。根據「火絨威脅情報系統」監測和評估,目前受到「巧壓」影響的用戶或在百萬級左右。

「巧壓」除了卸載不掉以外,還會產生大量彈窗廣告,嚴重干擾用戶日常電腦的使用。目前火絨為用戶提供以下兩種解決方法:

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