原文鏈接:Valak Malware and the Connection to Gozi Loader ConfCrew
譯者:知道創宇404實驗室翻譯組

Valak是使用基于腳本的多階段惡意軟件,該軟件劫持電子郵件并嵌入惡意URL附件,以使用無文件腳本來感染設備。這些惡意軟件主要在廣告活動中使用,會讓人聯想到Gozi ConfCrew。

關Valak詳情請見報告:https://assets.sentinelone.com/labs/sentinel-one-valak-i

背景

截止目前,Gozi已經以各種形式存在了十多年。該軟件的某些變種操作過程更加復雜,主要通過特洛伊木馬或租用服務模式來進行操作。其中一個變體使用了密鑰10291029JSJUYNHG,由于其獨特的回復方式以及線程垃圾郵件的劫持引得不少關注。在實際過程中,秘鑰雖然與dreambot混淆,但兩者的操作卻相互分開,該項服務主要進行程序加載以及垃圾郵件分發。

雖然這個Gozi服務已經持續運行了幾年,在2019年10月中旬,Valak開始出現測試模式。這個新的基于javascript的系統還涉及到受破壞的服務器以及基于鏈接的電子郵件活動,這與典型的密碼保護附件方法有所不同。

研究思路

交付——ConfCrew交付系統

最近的Valak傳遞鏈利用了與PHP傳遞代理聯系的文檔文件,以便下拉并執行初始DLL有效負載。這個系統以前曾被Gozi操作人員用于競選活動,經常被標記為Gozi流量(類似于URL結構)。

例如:

5184b70eef0d99c77e3e56f7e7b67727e515364e

下載:

80af349e1d41195576eeb7badc26d9b7873bdfbc

通過以下URL:

hxxp://a8xui1akl9gjqucfa[.]com/vv55v37kts7et/idq9p9t142vyk.php?l=frraw2.cab

這是解壓后的Valak DLL加載程序。從IOC和沙箱報告中可以看到,這種惡意軟件的切換已經引起了混亂,并且某些報告中其被標記為Gozi。

投放——受損的網站

檢索惡意文檔的另一種傳遞途徑是電子郵件中的鏈接,該鏈接隨后與受感染的網站聯系以檢索初始DLL加載器來進行引爆。這些鏈接在受感染的網站上標記為隨機PHP文件,這些PHP文件將返回文檔中而不是DLL中。廣告類別服務器可同時用于文檔和DLL,用戶可以進行查找并同時執行。

受損的PHP腳本

下面列出了最近的Valak交付的請求結構:

/_3ZyKva_O9zPO1K_k.php?x=MDAwMCCz9oR8W_gfwzPN6OQPNnku8FfF-ORh5orr1PzC0Avh3LkS4cvcHcQm38Efx3sZMnArLlPqOq5dmdcTOCewa7719Cc84VKgzrxYXx_1dF6N2TuRZ_A_wW8lpm2QOdV0_o-ebn1WCpHJl7o1CJKc3KfF8T-nLUAzS-P_dBt2BVUaVi2OQs-a35JD6DWiJux2-xL2eyIwGBlte-n8hD-egM3iqfh8Zw

這種看似隨機的數據與base64有一些驚人的相似之處,但是我們需要PHP來進行解碼。

該腳本采用URL參數,并使用嵌入式密鑰解密聯系人URL。首先,可以清除base64編碼的數據并進行初始解碼,例如:

>>>a = 'MDAwMCCz9oR8W_gfwzPN6OQPNnku8FfF-ORh5orr1PzC0Avh3LkS4cvcHcQm38Efx3sZMnArLlPqOq5dmdcTOCewa7719Cc84VKgzrxYXx_1dF6N2TuRZ_A_wW8lpm2QOdV0_o-ebn1WCpHJl7o1CJKc3KfF8T-nLUAzS-P_dBt2BVUaVi2OQs-a35JD6DWiJux2-xL2eyIwGBlte-n8hD-egM3iqfh8Zw~
>>> a = a.replace('-', '+')
>>> a = a.replace('_', '/')
>>> a = a.replace('~', '=')
>>> a
'MDAwMCCz9oR8W/gfwzPN6OQPNnku8FfF+ORh5orr1PzC0Avh3LkS4cvcHcQm38Efx3sZMnArLlPqOq5dmdcTOCewa7719Cc84VKgzrxYXx/1dF6N2TuRZ/A/wW8lpm2QOdV0/o+ebn1WCpHJl7o1CJKc3KfF8T+nLUAzS+P/dBt2BVUaVi2OQs+a35JD6DWiJux2+xL2eyIwGBlte+n8hD+egM3iqfh8Zw=='
>>> b = base64.b64decode(a)
>>> a
'MDAwMCCz9oR8W/gfwzPN6OQPNnku8FfF+ORh5orr1PzC0Avh3LkS4cvcHcQm38Efx3sZMnArLlPqOq5dmdcTOCewa7719Cc84VKgzrxYXx/1dF6N2TuRZ/A/wW8lpm2QOdV0/o+ebn1WCpHJl7o1CJKc3KfF8T+nLUAzS+P/dBt2BVUaVi2OQs+a35JD6DWiJux2+xL2eyIwGBlte+n8hD+egM3iqfh8Zw=='
>>> b
'0000 \xb3\xf6\x84|[\xf8\x1f\xc33\xcd\xe8\xe4\x0f6y.\xf0W\xc5\xf8\xe4a\xe6\x8a\xeb\xd4\xfc\xc2\xd0\x0b\xe1\xdc\xb9\x12\xe1\xcb\xdc\x1d\xc4&\xdf\xc1\x1f\xc7{\x192p+.S\xea:\xae]\x99\xd7\x138\'\xb0k\xbe\xf5\xf4\'<\xe1R\xa0\xce\xbcX_\x1f\xf5t^\x8d\xd9;\x91g\xf0?\xc1o%\xa6m\x909\xd5t\xfe\x8f\x9en}V\n\x91\xc9\x97\xba5\x08\x92\x9c\xdc\xa7\xc5\xf1?\xa7-@3K\xe3\xfft\x1bv\x05U\x1aV-\x8eB\xcf\x9a\xdf\x92C\xe85\xa2&\xecv\xfb\x12\xf6{"0\x18\x19m{\xe9\xfc\x84?\x9e\x80\xcd\xe2\xa9\xf8|g'

然后,PHP腳本中的segment變量為0,此例子的壓縮標志為空格;如果被壓縮,則為“z”。

剩余的URL部分使用內置密鑰解碼。密鑰數據非常多,我們之前解碼的分段值實際上是該巨型密鑰的索引乘數。

知道了這一點并有了密鑰,我們現在可以解碼出聯系人URL。

>>> test = bytearray(b[5:])
>>> key = bytearray(base64.b64decode('24LwDGHXMPQL49nWNhhLHsh5/czLDIfjh/mfqrVoirnLP4Wur3bpUraseuoZeEBdR0c9gUmBMPCkcBdT2QXHhoBGSJJ9yaDYPScxhRwusoppwzi0d4geUudZ43WyCoCywTEoHWHIhs74A2Hlrq2SjogSikk0bAqOkTZYJGljbRJMuBOm45ikJ41nwROeT4xqlShaenQvByGiie1bqfWM0vCaRBmIkM9aEhfrEgfsj2TVSkpT+UWiEt/CfDj0xV+1YCjpJw+E3qwO9X0FOtZ4PpetY5cnif5QWN0Evg7k1nBh+choS2ydJyhsDlmhhASlCI4xkj8A6zjrJkrNVguMr6CanLlIwJZycHqcm7TntyKChEKrsJE4VyNMUAfpMSWnEk61QBapDw7t67h/lg9mwLsmm/UMmhNGkLR+55HHk92XoD0BNTOtnfpnZ0eI77z5aRiZTixoz8FVteOtc3vP2MHZ2rjffbhAqf3ayVcwjQpS/5KnK0FWkjruI34LXSFgeRZvCXrH5ZNBzamTpVDnhKR0L98Ksztvpk77jGGx5vhoZ0MYDExkM4F6fhlBNHR9ZCCpelT8kR2g5v0RK9iMkc3GtMyQwKgL37XfcTQciSYjaH6D2jFsC7/ODK0IeIJIujcHaXx0ddLFJMibvnRqAEfYTbRAQRwjSrHfBQkk14GyehISjqKwJF8XOoRs/Jt6OllExDUI35xe6moFR3L6zZAzot7CtNIOeTvJ+bROHxWxUZheRQW3+Q/9jGryWHA6q+x/f+kz+ZqrsF6Wnax9hk91SI1bMOwE3lYvIjxQCVYOo2moVyE4Dy6iIHZBrSVNNBcmJ9NQEFDGCPPqhI/JMxE92UddkfzPyC+nlkKcnGguIUaJMZ3gceZnmksH/XN2XUnW1VEh8TC2tfsvThIMbB0Mxh5zX9CiTpwIrDN/4Xo2xE9apnRCJ+uLBW+cGoRM8X69xuoY/EgfLPGP7JBwIMYD56PjyyrNjZSI4Mh4/zokOP0h5OmQEXFTU9wBeWhJMgZWkCyA5jyw2lmI'))
>>> for i in range(len(test)):
...  test[i] ^= key[i]
...
>>> test
bytearray(b'http://78.129.208.84/mail-checker-desk-time-bar-links/misc/tinystats/index.php?SRR_DHIqwA4sLg~UKkYOYB6iw2q5Ky--dt_AmnBCRl6wDa6QiyG6deRc5r9wxcSxJl6jZKuid7uA0Yb8~')

在執行解密后,我們才算真正的下載了URL。使用這個PHP腳本檢索的活動文件(如Office文檔和 DLL加載器),不會直接存儲在PHP文件中,而是存儲在預先生成的活動UPL傳遞給代理腳本的結果中,以便在執行時檢索到它們.

總而言之,代理腳本利用嵌入式密鑰來解密URL并檢索內容。

外觀相似的編碼字符串index.php作為參數傳遞給文件(包含廣告系列特定數據的編碼消息)。如果我們繼續研究此PHP文件的功能,可以推測出它可用于跟蹤統計信息以及廣告系列文件的交付過程。

從后端提供廣告系列文件:

統計面板

經過進一步分析,發現統計小組證實了我們的假設,對每個廣告系列都進行仔細跟蹤。在下圖中,將顯示每個文件的匹配項以及運算符和文件名。這對于典型的負載服程序,其需要統計信息才能準確地向客戶收費。

該面板還顯示其活動中每個鏈接的跟蹤,這樣可以更加深入了解每個活動的成功執行次數。

Valak

其他研究人員已經對Valak進行了廣泛的研究,我們將從Gozi ConfCrew和Valak之間聯系的方面來進行入手,這些研究主要圍繞新插件的使用。當Valak在2019年進行測試時,看到了許多不同的插件。但存在兩個涉及電子郵件憑據數據的收集的問題,其中一個是交換抓取器。

收集電子郵件憑據與Gozi之前的策略一致,他們會從帳戶中收集電子郵件,然后在垃圾郵件中使用電子郵件鏈進行“回復鏈攻擊”。該攻擊圍繞劫持現有的合法電子郵件,并將回復信息發送到垃圾郵件中。這種技術可以讓用戶措手不及,由于用戶之前接受過識別假郵件的訓練,當看到這封郵件是一個回復(尤其是使用用戶信任的接收方式時),用戶會放松警惕。回復鏈攻擊還意味著參與者無需投資于創建看起來合法的電子郵件模板,因為他們能夠利用真正的電子郵件通信鏈。

Exchange數據插件——EXCHGRABBER

如果用戶打算利用垃圾郵件中的回復鏈攻擊,那就需要一些電子郵件數據。有趣的是,當攻擊活動轉移到Valak而不是Gozi時,卻出現了圍繞盜竊交換數據的插件。

該插件在config部分中將其自身命名為“exchgrabber”或交換抓取器。該名稱適合.NET編譯插件,因為該插件可以從憑據管理器中找到憑據,可以更方便對Office相關聯的憑據進行查找。然后,使用來自autodiscover.xml的數據,并將它構建成為報告。

檢索數據后,它將數據滲入C2:

電子郵件憑證插件——CLIENTGRABBER

最近關注點已轉移到電子郵件盜竊和企業目標定位上,這很有趣。在進行這項研究時,我們還發現了一個名為“clientgrabber”的新插件,該插件主要用于從注冊表中竊取電子郵件憑據。

在注冊表位置中搜索“鍵”。

一旦找到,它將檢查該值是否使用較新的加密方法(包含可以解密的實際加密數據)。

IoCs

Endpoint

%temp%\\[a-f0-9]{12}.bin
Scheduled task 'PerfWatson_[a-f0-9]+'

ADS executable and script files:

HKCU\\Software\\ApplicationContainer\\Appsw64\\ShimV4 HKCU\\Software\\ApplicationContainer\\Appsw64\\SetupServiceKey

Network

Base64 encoded PE files transferred over the wire

Samples

435ec42fefc05eba0a8005256c815979877d430a
693e681e7be554e50e4ff9bf7cbfe5aeab3fe91f
e22b404e1fec743f0795cdea8a95337660878860
dba1337a0a8293b721642b8b45a86352bcdfd04f
4d33425d7031284cf5ee323dc616d9f84987dc0d
17b74a4c3f43c21504b355b1ffc333280ef4cd74
7f58d22d9e95f65170acadd05e324ec2d8ef13f6
9be234bf2268f4e055ea59cf7bef76781a36c35c
19f481063ca956688824e3cc022b8eedb6dd0bea
4ae3ed6c1ab2fe41daf6f650a54dae63684d2064
30fd553dedfadc81522adf37e11dfc4039d4ea31

參考鏈接

  1. https://twitter.com/vk_intel/status/1207917643291910144

  2. https://en.wikipedia.org/wiki/ROT13

  3. http://prsecurity.org/2019-valak-c2.html

  4. https://www.zdnet.com/article/this-phishing-trick-steals-your-email-and-then-fools-your-friends-into-downloading-malware/

  5. https://app.any.run/tasks/8e5b6f19-c3e5-4c87-87ac-8c8e012cbb5f/

  6. https://www-cybereaso-com.cdn.ampproject.org/c/s/www.cybereason.com/blog/valak-more-than-meets-the-eye

  7. https://securityxploded.com/outlookpasswordsecrets.php

  8. https://www.webroot.com/blog/2019/04/03/hijacked-email-reply-chains/


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1246/