流氓軟體化身「衛士」 攜帶病毒對抗安全軟體
一、 背景
近期我們接到用戶反饋。剛剛裝好的系統無法安裝火絨安全軟體,表現為:安裝程序執行安裝步驟到一半的時候,安裝程序自己消失,除此以外瀏覽器首頁也被惡意篡改。通過定位問題,我們在用戶計算機上提取了和中毒現象相關的八個病毒文件。在進一步的分析中我們發現,提取的文件是一組病毒,並且和兩個叫做「衛士」的軟體有關聯,分別是:「瀏覽器衛士」和「鎧甲衛士」。
這個發現並不讓我們感到意外,這些年免費的「衛士」類軟體不斷出現,一般都是廣告滿天、彈窗不斷,瀏覽器主頁「被」保護,當然這些都是「增值功能」,大多還是有安全防護能力的。但是今天這兩個」衛士「,顛覆了我們的三觀:打著衛士的幌子,作著流氓的生意,沒有安全軟體的功能,卻屏蔽安全軟體的安裝,和真正危害計算機安全的病毒的共存,所謂的「衛士」,最主要的功能除了鎖首截取導航站流量,下載推廣軟體。
二、 病毒分析
中毒計算機可以在C:WINDOWSsystem32Qprotect目錄找到以下六個文件(x64系統安裝目錄就是C:WindowsSysWOW64Qprotect目錄):「QProtect.sys、QProtect64.sys、svchost.exe、QProtect.dll、QProtect64.dll、csrss.exe」。在C:WindowsSystem32Drivers目錄下找到另外兩個以「usb」字母開頭,文件名稱隨機的驅動文件。根據提取的文件,我們在火絨病毒實驗室復現了用戶現場。
Qprotect文件夾下的病毒文件名相似,創建時間也相同。其餘兩組文件usb3568.sys、usb79701.sys看起來和第一組病毒沒有太大關係。但是這些病毒的數字簽名的簽名人姓名一致,簽名日期相近,很可能是由一個病毒釋放器安裝的,如圖2-1:
中毒的計算機有兩個明顯的現象:安全軟體無法安裝,首頁被劫持。除此之外還有一個不太容易注意到的問題,就是安裝某些軟體的時候,啟動的安裝程序並不是用戶自己下載的。按照現象我們分為三組:
第一組病毒的負責替換用戶下載的常見軟體安裝包,替換為帶有病毒作者推廣信息的安裝包,截取軟體安裝量。相關文件有:QProtect.sys、QProtect64.sys、svchost.exe、QProtect.dll、QProtect64.dll、csrss.exe。
第二組病毒,只有usb3568.sys一個文件。負責對抗安全軟體,阻止安全軟體進入中毒計算機。病毒文件名很可能會有不同變化,一般規律是「usb「字母開頭後跟4位數字。
第三組文件也只有一個「usb79701.sys」,該病毒文件名稱也是隨機,usb字母開頭後跟5位隨機數字,負責對抗安全軟體的首頁保護功能,截取瀏覽器導航頁面流量。
三組病毒按照功能:「推廣軟體安裝」,「阻止安全軟體安裝」和「破壞安全軟體功能」分別進行分析。
2.1 推廣軟體安裝
Qprotect目錄下的病毒是第一組。csrss.exe這個文件是整組程序的主模塊。它接受一個參數「/load」,添加該參數啟動後,csrss.exe會執行以下流程:
1. 將病毒從任意目錄複製到C:WINDOWSsystem32Qprotect目錄下,x64系統安裝目錄就是C:WindowsSysWOW64Qprotect。
2. 載入驅動文件QProtect.sys,x64下是Qprotect64.sys。
3. 聯網在hxxp://bbup.201061.com下載帶有病毒作者推廣信息的安裝包到%Windir%Qhotfix目錄下,如圖2-2:
4. x86下csrss.exe會對新啟動進程注入Qprotect.dll,x64位程序由svchost.exe負責注入。Qprotect.dll、Qprotect64.dll動態庫的功能相同。注入後的Qprotect動態庫會掛鉤CreateProcessInternalW系統函數,攔截被注入進程啟動的程序。如圖2-3:
圖2-3、Qprotect掛鉤CreateProcessInternalW系統函數
以Qprotect.dll注入資源管理器(explorer.exe)為例,Qprotect.dll會調用VerQueryValueW函數得到explorer.exe欲啟動程序的詳細信息,調用證書相關API得到啟動程序的簽名信息,和病毒內置的推廣軟體安裝包信息進行對比。如果explorer.exe啟動的程序是一個安裝包,並且在病毒自己的列表內,就會啟動%Windir%Qhotfix目錄下的對應的安裝包安裝,以QQ瀏覽器為例,如圖2-4、2-5:
圖2-4、用戶下載的QQ瀏覽器和explorer.exe啟動的QQ瀏覽器不同
圖2-5、explorer.exe啟動的QQ瀏覽器
這些安裝包都包含有渠道商信息,如果不使用監控工具,用戶根本不可能知道自己下載的安裝包被替換運行過,通過此方法可以悄聲無息的截取軟體安裝量。病毒內完整功能的推廣列表如下(圖2-6):
QProtect.sys驅動負責保護HKLMSOFTWAREQprotect、HKLMSYSTEMCurrentControlSetServicesQprotect註冊表項不被修改刪除。保護Qprotect文件夾下的病毒文件不被修改、刪除。這樣病毒可以長期駐留用戶計算機。
這一組病毒文件模塊眾多,表面功能簡單。但是仔細分析可以發現,病毒不是只有表現的這些功能。在分析Qprotect.sys代碼時,我們發現了該驅動可以「保護」默認瀏覽器註冊表項,阻止安裝第三方瀏覽器的功能,但是實際測試時並沒有生效。如圖2-7:
圖2-7、Qprotect.sys中沒有用到的字元串
同樣在病毒程序csrss.exe的資源文件中,我們發現一個名為ZIPRES 083 804的壓縮包資源,解壓出來可以看到如下內容(圖2-8、2-9):
圖2-9、csrss.exe內包含的文字資源
一個是默認瀏覽器註冊表項和瀏覽器列表,一個是「瀏覽器衛士」的貼圖和文字資源,而以上兩點,都沒有看到病毒使用。這說明該病毒和名為"瀏覽器衛士"軟體存在聯繫。在同源性分析章節,我們會對"瀏覽器衛士"這條線索繼續追查,證明此事。
2.2 阻止安全軟體安裝
第二組病毒usb3568.sys就是在用戶計算機上無法安裝安全軟體的元兇。病毒功能簡單,就是對抗安全軟體的安裝,如果有安全軟體在安裝,就會結束安裝包的進程。
該病毒驅動載入後會初始化過濾文件列表,列表內包含有絕大多數的安全軟體關鍵文件名稱,只要出現在該列表內文件,都會在病毒文件過濾功能中攔截,病毒發現若是有安裝程序創建列表內的文件,就會調用內核函數ZwTerminateProcess將創建文件的進程結束,阻止安裝程序繼續安裝。
有意思的是,該病毒調試日誌豐富,如果啟動內核調試器調試,可以看到病毒列印出來的調試日誌信息,調試信息中包含了病毒要過濾文件的完整列表,列表內包含了國內外幾乎常見的所有安全軟體關鍵文件,如圖2-10:
圖2-10、病毒列印的日誌
和第一組病毒一樣,我們發現usb3568.sys包含部分代碼不會被調用,比如:病毒創建的設備「DeviceKJAnti」、還有「
\KJClientPort
」都可以和上層應用程序進行通信。但是在用戶計算機上沒有找到上層應用。這的符號名中都包含「KJ」也是重要的線索,在同源性分析章節,也會繼續追查,尋找病毒源頭。
2.3 破壞安全軟體功能
第三組程序usb79701.sys是整個病毒的核心,負責截取用戶首頁流量,也是功能比較多的一個驅動模塊。病毒中包含的所有有用信息全都被加密保存對抗分析,這是其他兩組程序沒有的。
usb79701.sys驅動首次載入後,會複製自身到系統drivers目錄下,然後刪除驅動原始文件。將新釋放的驅動載入到用戶系統,並且刪除驅動的註冊表服務啟動項,做到無啟動項,後續通過關機回掉函數,在關機的時候寫回啟動項。複製到drivers目錄下新的病毒文件名是隨機的。無啟動項、隨機文件名,都給手工檢測、發現病毒提高了難度。
載入後的病毒會在用戶桌面創建「淘寶.url」文件,在用戶收藏夾也會創建三個url文件分別是:「百度.url"」、「京東商城.url"」和「淘寶.url"」,如圖2-11:
三個URL的鏈接分別指向以下三個網址,最終回跳到下表右側的「跳轉鏈接「指向的網址,如下表2-1:
添加鏈接 | 跳轉鏈接 |
hxxp://ie.150398.com/baidu.html | hxxps://www.baidu.com/index.php?tn=93139410_hao_pg |
hxxp://ie.150398.com/taobao.html | hxxp://ai.taobao.com/?pid=mm_120655403_19768235_68200168 |
hxxp://ie.150398.com/jingdong.html | hxxps://www.jd.com/?cu=true&utm_source=kong&utm_medium= tuiguang&utm_campaign=t_1000023102_&utm_term= 139109ff8cf04e53a91cf9a66f385e7f&abt=3 |
其中百度和淘寶的兩個URL並不是直接跳轉的,中間會有一個跳轉頁面。百度的是的是hxxp://www.112112.com,淘寶的是hxxp://shop.156038.com。這兩個網址直接訪問都顯示的都是正常頁面,但是如果修改了referrer,就會跳轉到病毒訪問的推廣頁面,如圖2-12、2-13:
圖2-13、修改referrer會的到不同的結果
我們猜測這樣做的目的是為了讓帶有推廣號的導航頁面更隱蔽。除了釋放URL病毒驅動還包含其他RootKit功能:
1.註冊文件過濾驅動,如圖2-14。
2.註冊進程通知、映像通知、和關機通知幾個內核通知,如圖2-15。
圖2-15、病毒包含進程通知、關鍵通知、和映像通知
下面分別進行詳細說明:
文件過濾驅動主要負責病毒文件的隱藏和保護工作,如果在中毒計算機直接查看文件信息,看到的都是系統動態庫Ntdll.dll的信息。用於迷惑用戶和安全研究人員。恢復文件過濾器就可以看到真實的文件信息和數字簽名,如圖2-16、2-17:
圖2-16、文件過濾功能生效的情況下看到的假信息
圖2-17、文件過濾功能失效的情況下看到的真實信息
關機通知負責驅動的服務項回寫。因為驅動註冊成功後會刪除相關啟動項,病毒註冊關機通知就可以利用關機回調函數回寫註冊表啟動項。做到有病毒無啟動項。並且在關機時添加服務啟動項可以過掉主流安全軟體的主防攔截。同樣用戶正常關機後可以在PE系統下看到的關機後病毒添加的註冊表驅動服務啟動項,如圖2-18:
圖2-18、PE系統下看到病毒關機添加的驅動啟動項
映像通知負責病毒驅動對抗安全軟體的首頁保護功能。病毒驅動在映像文件載入的時候,會判斷是否是瀏覽器進程,該進程中是否注入了安全軟體瀏覽器首頁鎖定相關動態庫,如果都滿足就補丁首頁保護動態庫入口代碼使其載入失敗,失去瀏覽器保護功能,如圖:,被Patch完的某安全軟體首頁保護動態庫模塊入口代碼,如圖2-19、2-20:
圖2-19、病毒Patch安全軟體首頁保護功能的反彙編流程圖
圖2-20、被Patch的某安全軟體的入口點代碼
除了圖中展示的某安全軟體的首頁保護動態庫以外,病毒補丁入口的全部動態庫列表如下:
*QMPROTECT.DLL
*QMIESAFEDLL.DLL
*KSHMPG.DLL
*KWSUI.DLL
*KSHMPGEXT.DLL
*QMIESAFEDLL64.DLL
*SAFEWRAPPER64.DLL
*KWSUI64.DLL
進程通知負責判斷啟動進程是否瀏覽器進程,如果是則通過PsGetProcessPeb得到PROCESS_PARAMETERS.CommandLine.Buffer直接修改添加導航頁面,用作流量截取。添加的導航網址是hxxp://123.150398.com/,問號後面的是驅動的安裝日期,是病毒作者用於統計的標記,如圖2-21:
有意思的是,在病毒代碼中我們發現有一段用於檢測是否存在KJService.exe(區分大小寫)進程的代碼片段。如果存在該進程,病毒的進程通知中給瀏覽器命令行添加導航頁面的功能將不再生效,沒有多餘的任何判斷。這又引起了我們的注意。結合之前的字元串"KJAnti"和"KJClientPort",和現在的「KJService.exe」 都包含「KJ」字樣。「KJ」指的會是什麼。下一章的同源性分析中我們將會繼續追蹤。
三、 同源性分析
3.1 「瀏覽器衛士」病毒
通過火絨情報威脅系統,對病毒文件Qprotect,sys的火絨檢測結果進行檢索。可以找到包含該病毒樣本,SHA1是5fd5e56cfe51a1fb90852e6fb11c8bd2f7f6d610,是一個自身描述為「瀏覽器衛士安裝程序」的安裝包文件。
找到的「瀏覽器衛士」是一個靜默安裝包,默認的安裝路徑、驅動名稱和病毒只有一個字母的差別,如圖3-1:
如果分別對驅動文件通過簡單提取字元比較,可以看到兩者相似度極高,左邊是」瀏覽器衛士」HProtect.sys的字元數據,右邊是病毒Qprotect.sys的字元數據。如圖3-2:火絨對兩個文件的檢測結果也是一致:「Trojan/Kiaja.a」。
在查看HProtect.exe的資源文件中,可以找到名為ZIPRES 065 804的壓縮包資源,解壓出來的資源和第一組病毒的csrss.exe也是一樣。
我們找到」瀏覽器衛士」包含用戶界面,功能上除了攔截瀏覽器,還會對安全軟體進行攔截。如圖3-3:
圖3-3、安裝安全軟體的時候會在屏幕右下角彈出提示,默認阻止
完整攔截文件的列表如下:2345MPCSafe.exe、HipsMain.exe、rsmain.exe 、kismain.exe、KSafe.exe、BaiduSd.exe、BaiduAn.exe、360sd.exe、360Safe.exe、YYExplorer.exe、baidubrowser.exe、UCBrowser.exe、Opera.exe、Theworld.exe、firefox.exe、maxthon.exe、2345explorer.exe、sogouexplorer.exe、qqbrowser.exe、chrome.exe、liebao.exe、360chrome.exe、360se.exe。
而且」瀏覽器衛士」安裝後無法在添加刪除里卸載,卸載只能通過設置界面的卸載按鈕才能完成。如圖3-4:
以「瀏覽器衛士」作為關鍵字在百度知道進行搜索,可以看到很多用戶都遇到了「瀏覽器衛士」阻止安裝瀏覽器的,並且針對「瀏覽器衛士」卸載的卸載也有用戶詢問,如圖3-5:
通過分析可以確認「瀏覽器衛士」就是一個打著衛士幌子的病毒。自身沒有提供任何和安全相關功能,還阻止其他安全軟體的安裝。這個「衛士」還只是一個「單純」的KillAV(特指對抗安全軟體的病毒),下一個「衛士」可就不那麼簡單了。
3.2 「鎧甲衛士」病毒
再看第二組病毒同源信息,我們使用關鍵字"KJAnti"關鍵字進行搜索,可以得到「鎧甲衛士"(hxxp://www.kaijiaweishi.com)這條線索。而漢語拼音的「KaiJia」首字母縮寫正是「KJ」二字。這說明後兩組usb字母開頭的驅動文件和鎧甲衛士這款軟體一定存在關係。
在鎧甲衛士的主頁可以看到,它有兩個主要版本1.x和2.x。分別下載kjaqws_1.0.16.233.1458641936.exe(下文簡稱
KJ1.x
或者鎧甲病毒第一代)
和KaiJiaSetup@gw_2.0.16.927(下文簡稱KJ2.x
或者鎧甲病毒第二代),在安裝後分別進行分析驗證。
3.3 鎧甲病毒第一代
KJ1.x安裝完成後,可以在安裝目錄(C:ProgramFilesKaiJia)下的Drivers文件夾找到兩個驅動文件kjanti.sys和kjanti64.sys。通過簡單字元對比和IDA引用分析,可以確認KJ1.x的驅動文件kjanti.sys和火絨捕獲usb3568.sys病毒功能一致,如圖3-6、3-7:
圖3-6、左側是病毒,右側是鎧甲衛士
圖3-7、左側是病毒,右側是鎧甲衛士
對比病毒驅動usb3568.sys和鎧甲衛士kjanti.sys的數字簽名時間可以看出,鎧甲衛士驅動的出現時間更早,先有的鎧甲衛士後出現的病毒。如圖3-8:
3.4 鎧甲病毒第二代
在2016年9月鎧甲衛士更新到了v2.0.16.927版本。重新安裝v2.0.16.927後,安裝目錄「kjanti.sys「和「kjanti64.sys」兩個驅動已經找不到了,但是名為「KJService.exe「文件出現在我們眼前,「KJService.exe「文件的自我描述為「鎧甲安全衛士-安全防護服務」。這個文件名稱我們在第三組病毒「usb79701.sys」中曾經看到過。
在上文分析中,病毒「usb79701.sys「會檢測中毒計算機是否存在「KJService.exe」(區分大小寫)進程。如果存在,則首頁劫持代碼就不會生效,這一定不是巧合。繼續查看KJService.exe和病毒usb79701.sys的文件簽名時間也是出現在同一天,如果不事先知情,病毒代碼又怎麼會和「鎧甲衛士「的程序上做到同步修改呢?如圖3-9:
圖3-9、鎧甲衛士二代包含了病毒尋找的KJService.exe這個文件
經過試用,「鎧甲衛士「一代和」鎧甲衛士「二代,同「瀏覽器衛士「一樣,都不具有安全軟體基本的功能,無法保護用戶計算機安全,在安全功能不足的情況下,專精首頁鎖定,鎖首頁面「45.cc、696123.com」和軟體推廣。
我們列出前文出現的所有可疑域名:201061.com、150398.com、112112.com、156038.com、kaijiaweishi.com、696123.com 、45.cc和rjguanjia.com。在whois.chinaz.com上進行域名檢索。可以發現除「150398.com」域名外,註冊人都為一個,如圖3-10:
根據註冊的QQ郵箱反查,可以看到該郵箱註冊多個域名,其中絕大多數都是導航站。完整列表如下圖(3-11):
瀏覽這些域名,有幾個域名引起我們的注意「bigbaicai.com」, 「ushendu.net「、「laomaotaoupan.cn」。再加上第一章交代的用戶反饋:「剛剛裝好的系統無法安裝火絨安全軟體」,我們懷疑在病毒是在啟動盤的時候安裝的。通過搜索引擎搜素驗證了我們的猜想。如圖3-12:
圖3-12、網路上關於鎧甲衛士的相關問題
四、 附錄
QProtect.sys | 6e65611aa8e3b5007f9ee0a9e6fa25075a62df85 |
QProtect64.sys | 754ca3d964596b870aa2bdbe7ebe754d087a2ca3 |
usb3568.sys | 654c1eb569dfd44d2d6da1e987ccc2e3d12f16a0 |
usb79701.sys | a022ae991fe771a624609eec3fd945fb0c5f1042 |
usb3568.sys(x64) | 5ceabc70723bf53557562277681607dbf3429b89 |
usb79701.sys(x64) | 65dddb5357cfcb7b33792d318a11474b071c4c81 |
svchost.exe | 68825ac3c7b53c7ec74c97ccee37e8cd1c21335c |
csrss.exe | 1ceca8919d7fbb70cceb4249b5b65b54f0ef75d9 |
QProtect.dll | c1a3c3926712d7454916b5049324e5f120950a4b |
QProtect64.dll | 54fca4c4382ff35e2e636245164a75c2b3c35bf7 |
kjanti.sys: | df4277c037ff08307d9d73f47e718768482f32da |
kjanti64.sys | 915632f398d779e5d13dcd8b42fd45fdc5c94878 |
kjaqws_1.0.16.233.1458641936.exe | 263103ec357cc91ab71e7a18864abb3df810f0b4 |
KaiJiaSetup@gw_2.0.16.927.exe | 518c01705e89ec231e1de75656f4a9ca0d5303b6 |
KaiJiaSetup@gw_2.0.16.1111.exe | c2c864234a2ce1079151cd33f97dd3c5f1c6b0a4 |
瀏覽器衛士靜默包 | 5fd5e56cfe51a1fb90852e6fb11c8bd2f7f6d610 |
點擊「閱讀原文」下載報告
※巡風掃描系統試用體驗報告
※干涉美國大選的黑客活動就是普京「下令」發起的 | ODNI最新報告
※美情報機構:俄羅斯涉嫌通過黑客攻擊和散步虛假消息干預美國大選
※【FB TV】FBI官網被黑,泄露數據已公布;Android獲封年度「漏洞之王」
TAG:FreeBuf |
※防彈衣可分為軟體、硬體和軟硬複合體三種
※從殺毒軟體轉型為準流氓軟體 唯利是圖並非最好選擇
※官方渠道下載也不安全!運營商劫持流行軟體安裝包篡改為病毒
※神奇軟體機器人可吞噬生命體為自身提供能量:消化有機物質
※蘭花蟲害及軟體動物的防治!
※隱藏惡意軟體的三大黑客技術
※打造健全人生 星雲大師:硬體與軟體相互為用
※軟體開發環境被感染 導致「鋒彩直播」app攜帶病毒
※仿蚯蚓軟體機器人:身體柔軟可彎曲能爬管道
※你的電腦裝殺毒軟體嗎?
※軟體篇 軟體三俠客
※機靈的軟體動物,美味的食療佳品
※顛覆你世界觀的全軟體「章魚機器人」
※小時候厭惡的軟體動物,能治腎病、抗腫瘤,腦保護
※如何防止電腦被安上流氓軟體?
※殺毒軟體自己變成病毒?這黑客厲害了
※殺毒軟體不完全匯總 哪款軟體是你的菜?
※科學家使用硬體來檢測計算機軟體病毒
※怎樣提升軟體應用質量?頂測科技送你完整的軟體質量優化體系