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

  • 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

Tags: