譯者:知道創宇404實驗室翻譯組
原文鏈接:https://www.ptsecurity.com/ww-en/analytics/pt-esc-threat-intelligence/incident-response-polar-ransomware-apt27/
前言
本次攻擊是一個著名的亞洲APT組織所為,該組織涉嫌對政府目標進行網絡間諜活動。在本文中,我們將分享這次攻擊的調查結果。
事件順序
對客戶基礎設施文件的大規模加密和贖金要求構成了調查的起點。大量損壞的文件本身就是一個非常明顯的攻擊指標,可以用來檢測入侵。分析顯示,客戶的基礎設施不是在三四天前(甚至在幾小時前,就像在大規模襲擊中經常發生的那樣)遭到破壞,而是在2018年初受到的攻擊。此外,攻擊者最初感染的是受害者的外國辦事處。隨后,總部也遭到了攻擊。
我們認為,外國辦事處網絡的最初入口點是網絡中的一個易受攻擊的服務器。2018年2月,在ChinaChopper和TwoFace web shell的幫助下,攻擊者獲得了最初的訪問權,并獲得了持久性。

攻擊者使用NBTScan進行網絡偵察,使用PsExec進行橫向移動。他們獲得了與Mimikatz合作的資格。在某些情況下,我們能夠檢測已存檔和上傳的lsass進程的內存轉儲。因為使用Mimikatz很可能被終端安全軟件阻止,攻擊者被迫運行bruteforcing offline。另一種方法是用SMBTouch掃描主機,尋找所謂的Eternal* SMB漏洞,然后在可能的情況下運利用EternalBlue漏洞并感染計算機。攻擊者在最感興趣的主機上安裝SysUpdate和HyperBro后門是為了持久性訪問。
外國辦事處和總部都在進行加密貨幣挖掘。這種活動在一年半的時間里沒有引起注意。在此期間,攻擊者僅通過定期獲取新賬戶或建立隧道鏈來維持他們的訪問能力。我們認為,到2020年初,攻擊者已經失去了訪問權限(原因我們不知道)。2020年2月9日,我們在國外辦事處的服務器上看到Web Shell的使用。通過使用前面描述的工具,攻擊者獲得了總部域管理機構的證書。這次,他們刪除了操作系統日志并停止了Shadow Copy服務,從而使后續的事件分析更加復雜。
最終,在2020年4月29日,被攻擊的域名管理員的賬戶被用來將Polar勒索軟件推送到電腦上并運行它,進行加密用戶文件并索要贖金。當我們的專家在2020年5月為客戶提供幫助時,攻擊者再次嘗試通過在總部和辦公室網絡上的Web Shell來重新控制基礎設施,但是這次沒有成功。
這里我們提供了一個時間線,以便更好地顯示事件的順序。

CSIRT的目標包括恢復客戶數據,其中包括屬于不同部門的關鍵信息。我們對加密惡意軟件進行了分析,從而可以恢復丟失的文件。
Polar勒索軟件
三個文件被發送到受害者的計算機:
- GDFInstall.exe(MD5:13435101240f78367123ef01a938c560)是由Ubisoft簽署的合法計算機游戲組件。

- GameuxInstallHelper.dll(MD5:1fd8402275d42e7389f0d28b9537db0f)是運行GDFInstall.exe時導入的.NET DLL庫(于2020年4月29日編譯)。

這個組件實際上不是合法的。在導出GameExplorerInstallW符號后,將執行攻擊者代碼。這種在合法應用程序上下文中加載惡意代碼的常用技術稱為DLL劫持。

讀取文件c:\programdata\Sysurl.Hex(如果不存在,則從c:\windows\system32\Sysurl.Hex復制),然后使用密鑰ABCSCDFRWFFSDJJHGYUOIj進行簡單的XOR解密。最后用Base64解碼,生成一個PE文件,該文件通過.NET加載并在內存中運行。有效負載和中間庫在完成之前被刪除。刪除以標準(不安全)方式發生,如果及時停止磁盤訪問并且信息未被覆蓋,則可以恢復數據。
- Sysurl.Hex是Polar勒索軟件的加密副本。
這種有效負載調用程序(合法應用程序在其中加載惡意庫,然后解密惡意組件并傳遞控制權)通常用于運行PlugX后門,在亞洲APT組織(如APT10,APT41,TA459和Bronze Union)中很常見。
我們更詳細地分析勒索軟件的解密和解碼版本(MD5:841980b4ae02a4e6520ab834deee241b)。
根據GameuxInstallHelper.dll的啟動方式,我們可以很快地猜出該文件也是使用.NET編譯的可執行文件。編譯日期為2020年4月9日。代碼入口點是Polar命名空間中Encode類的Actions方法。
該惡意軟件通過執行以下命令來刪除系統事件日志和Shadow Copy副本:
dism /online /enable-feature /featurename:NetFx3
vssadmin.exe Delete Shadows /All /Quiet
bcdedit /set {default} recoveryenabled no
wmic shadowcopy delete
wbadmin delete backup
wbadmin delete systemstatebackup -keepversions:0
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {default} recoveryenabled no
wevtutil.exe clear-log Application
wevtutil.exe clear-log Security
wevtutil.exe clear-log System
wbadmin delete catalog -quiet
wbadmin delete catalog -quiet
wbadmin delete systemstatebackup
然后,它查找并停止以下進程:

然后,該惡意軟件會獲取已連接磁盤的列表,并開始遞歸遍歷目錄,并跳過其中的一些:
- C:\Windows
- C:\Program Files
- C:\Program Files (x86)
- C:\ProgramData
- C:\Python
- $SysReset
- $Recycle.Bin
- $RECYCLE.BIN
它只關心具有以下擴展名的文件:

在開始加密之前,該惡意軟件會創建一個基本加密密鑰,該密鑰由以下字母表中隨機選擇的八個字符組成:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890*!=&?&/。
根據文件大小,使用兩種加密方法。每種方法都涉及不同的加密密鑰。但是,這兩種方法都使用基本加密密鑰。
首先,我們將研究小于64052000字節(約61MB)的文件的加密方法。中間密碼是基本加密密鑰的SHA-256哈希和。它對所有文件都是相同的,并與硬編碼的salt和1000次迭代一起使用,以生成加密密鑰和初始化向量。每個密鑰都用AES-CBC加密。.locked擴展名被添加到加密文件中。

較大的文件以不同的方式加密。在這種情況下,16字節的加密密鑰是通過從基本加密密鑰中獲取前8個字節和從附加的硬編碼數組中獲取剩余8個字節形成的。隨后是AES-ECB的自定義實現。16字節的塊被加密,接下來的12800字節被跳過。結果是只加密了文件的一小部分,而不是整個文件。選擇這種方法很可能是為了加快加密過程。加密文件的擴展名為.cryptd。

請注意,結果是創建一個新文件(在其中寫入加密流)。原始文件被不安全地刪除。因此,如果原始文件還沒有被新信息覆蓋,就不能從磁盤上恢復。

在每個包含加密文件的目錄中,將創建一個名為readme_contact_alex.dali@iran.ir.htm的文件,其內容如下:
Your companies cyber defense systems have been weighed, measured and have been found wanting!!!
The breach is a result of grave neglect of security protocols
All of your computers have been corrupted with Polar malware that has encrypted your files.
We ensure that the only way to retrieve your data swiftly and securely is with our software.
Restoration of your data requires a private key which only we possess
Don't waste your time and money purchasing third party software, without the private key they are useless.
It is critical that you don't restart or shutdown your computer.
This may lead to irreversible damage to your data and you may not be able to turn your computer back on.
To confirm that our software works email to us 2 files from random computers you will get them decrypted.
readme_contact_alex.dali@iran.ir.htm contain encrypted session keys we need in order to be able to decrypt your files.
The softwares price will include a guarantee that your company will never be inconvenienced by us.
You will also receive a consultation on how to improve your companies cyber security
If you want to purchase our software to restore your data contact us at:
Pt34Jarmys@protonmail.com
alex.dali@iran.ir
We can only show you the door. You're the one who has to walk through it.
Your personal installation key:*REDACTED*
勒索要求的文本與MegaCortex勒索軟件使用的文本相似。
勒索要求包含基本加密密鑰的修改版本。這個版本是通過使用RSA加密基本加密密鑰(使用硬編碼的1024字節公鑰)并在Base64中對其進行編碼而得到的。
文件加密完成后,惡意軟件將映像(包含在可執行文件資源中)寫入磁盤路徑c:\programdata\Rs.bmp,并將其設置為桌面背景。

隨后,該惡意軟件重復刪除系統事件日志和Shadow Copy副本的相同過程,該過程在開始時執行。然后它發送一個帶有受害者計算機名稱的HTTP POST請求到位于hxxp://www.therockbrazil.com.br/assinaturas/logs.php的服務器。

如何解密文件
跟蹤加密步驟的讀者可能已經注意到,整個加密系統的安全性取決于我們所稱的基本加密密鑰。它的值用RSA-1024加密并放入贖金請求中。目前,沒有既便宜又快速的方法來分解這樣大的密鑰。所以我們嘗試了另一種策略。
請記住,基本密鑰是從前面引用的字母表中隨機抽取8個字符生成的。以下是實現的方式:

隨機函數調用一次,不帶任何參數。該調用返回一個隨機數,該隨機數的種子是從Environment.TickCount變量的值獲取的。此變量為4個字節,存儲自操作系統啟動以來的毫秒數。

所以要解碼這些文件,我們只需要知道勒索軟件運行時的正常運行時間(計算機開機的時間)。
大多數受影響的計算機不僅與公司網絡斷開了連接,而且關閉了以分析硬盤內容。因此,無法知道計算機的正常運行時間。操作系統日志包含關機和開機的時間。但在這種情況下,勒索軟件會兩次銷毀這些日志。因此,我們無法找到任何線索表明受影響計算機本身的正常運行時間的可能值。
然而,幸運的是,SCCM被用于客戶端基礎設施,客戶端代理運行在所有加密的計算機上。我們需要的信息被集中存儲,并且沒有被篡改:我們所需要的只是反復試驗以選擇正確的值。

現在我們有了相對精確的正常運行時間值,我們需要確定勒索軟件的運行時間。在最后,惡意軟件會刪除中間DLL庫和加密勒索軟件,但不會刪除其進程用于執行惡意操作的合法可執行文件。換句話說,這個文件出現在系統上的時間應該是勒索軟件運行的大概時間,大約在幾秒鐘之內。我們在一個普通的工作站上大約一分鐘內成功地破解了基本加密密鑰的精確值(大約幾萬次迭代)。然后我們可以解密剩下的文件。在一些情況下,我們在一開始就很難用暴力破解密鑰。原因是時區設置不正確。
歸因
我們提到了攻擊者工具包中的SysUpdate和HyperBro后門。這些是APT27組織(也稱為Bronze Union、LuckyMouse、emissurary Panda或Iron Tiger)使用的一些神秘的遠程訪問木馬程序。該組織至少在2010年就開始活動。他們將注意力集中在國防和能源工業以及航空航天和制造業的政府目標上。最常見的是,原始攻擊是通過利用漏洞,暴力破解憑據或利用Web服務器錯誤配置來破壞受害者的Web服務器的。盡管在戰術、技術和程序(TTPs)以及泄密工具的使用上都有相似之處,但該團隊的一些研究人員對將這些攻擊歸因于APT27持懷疑態度。
1.目標選擇
媒體公司從未對APT27感興趣。這與我們調查的結果是一致的:攻擊者沒有試圖訪問目標基礎設施上的私人信息,而是運行軟件以獲取直接的經濟利益。
2.加密貨幣挖掘和勒索軟件
這是非典型的,不合適的軟件,它可以迅速吸引人們的注意,破壞任何長期網絡間諜計劃。勒索軟件在完成工作后“phones home”的URL地址與APT27網絡基礎設施沒有任何共同之處。當然,有些組織(如Lazarus和Winnti)將網絡間諜與直接的財務動機相結合。因此,也許APT27正在擴大興趣范圍。或者,作為替代方案,該組織已經與其他攻擊者達成協議,使用他們的軟件來換取部分收益。為了便于將Polar歸因于APT27,我們可以注意到有效負載、執行和命名的順序:以類似的方式,加密的SysUpdate后門通常稱為sys.bin.url,Polar勒索軟件則稱為Sysurl.Hex。然而,這也可能是一個錯誤的標志。
3.2018年和2020年的自動化
以下是2018年用于在計算機列表上自動安裝加密貨幣礦工的腳本:
@echo off
for /f %%i in (c:\programdata\list.txt) do (
net use \\%%i\c$ "*" /u:*\administrator
copy c:\programdata\vmnat.exe \\%%i\c$\windows\system32\vmnat.exe
SCHTASKS /Create /S %%i /u *\administrator /p "*" /tn * /tr "cmd.exe /c start c:\windows\system32\vmnat.exe" /sc onstart /RU SYSTEM
schtasks /run /S %%i /u *\administrator /p "*" /tn *
net use \\%%i\c$ /del
net use * /del /Y
)
del vmnat.exe
del list.txt
del work.bat
這是用于在2020年從計算機列表中自動刪除勒索軟件的腳本:
@echo off
for /f %%i in (c:\programdata\list.txt) do (
net use \\%%i\c$ "*" /u:*\*
if not errorlevel 1 (
del \\%%i\c$\programdata\GameuxInstallHelper.dll
del \\%%i\c$\programdata\GDFInstall.exe
del \\%%i\c$\programdata\Sysurl.Hex
net use \\%%i\c$ /del
)ELSE (
echo not access %%i >> c:\programdata\no_access.txt
)
)
(我們將敏感信息替換為“*”)
這些腳本在結構上顯示出某些相似之處,并且在同一路徑上具有相同的文件行循環。另一方面,縮進、腳本任務和文件命名是不同的。有些命令過于籠統,無法分辨,因為它們可以在在線搜索結果中找到并重新使用。
4.SysUpdate和hyperro后門的主體
在某些情況下,我們無法根據木馬本身來確認特定后門的存在。我們根據獨特的文件名和其他已確認的工具,確定了已在2018年使用的Superpro后門。我們通過查看進程轉儲內存中的C2地址和后門,確認了2020年使用的SysUpdate后門,這些地址和后門是在調查期間從一個與我們的客戶無關的組織上傳到VirusTotal的。
綜上所述,這些相似之處可以指定APT27是罪魁禍首,但并不完全絕對。
結論
在本文中,我們描述了針對一家媒體公司的APT27攻擊。這些網絡犯罪分子通過在外國的一個辦公室進入了該公司的總部。他們對基礎設施的控制維持了兩年。他們使用了曾經見過的公開可用和定制開發的工具。黑客們雖然沒有改變他們的TTP,卻選擇了相當不尋常的軟件來獲利。用戶數據被加密后,贖金要求被提出。勒索軟件加密算法中的一個錯誤使我們得以恢復加密的文件。據我們所知,攻擊者沒有獲得任何有價值的信息。
MITRE TTPs
| Tactic | ID | Name |
|---|---|---|
| Initial Access | T1190 | Exploit Public-Facing Application |
| T1199 | Trusted Relationship | |
| Execution | T1059 | Command and Scripting Interpreter: Windows Command Shell |
| T1053 | Scheduled Task/Job: Scheduled Task | |
| T1047 | Windows Management Instrumentation | |
| Persistence | T1547 | Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder |
| T1574 | Hijack Execution Flow: DLL Search Order Hijacking | |
| T1053 | Scheduled Task/Job: Scheduled Task | |
| T1078 | Valid Accounts: Domain Accounts | |
| T1078 | Valid Accounts: Default Accounts | |
| Privilege Escalation | T1068 | Exploitation for Privilege Escalation |
| Defense Evasion | T1140 | Deobfuscate/Decode Files or Information |
| T1070 | Indicator Removal on Host: Clear Windows Event Logs | |
| T1070 | Indicator Removal on Host: File Deletion | |
| T1070 | Indicator Removal on Host: Timestomp | |
| Credential Access | T1003 | OS Credential Dumping: LSASS Memory |
| Discovery | T1087 | Account Discovery: Domain Account |
| T1082 | System Information Discovery | |
| T1049 | System Network Connections Discovery | |
| Lateral Movement | T1210 | Exploitation of Remote Services |
| T1570 | Lateral Tool Transfer | |
| T1021 | Remote Services: SMB/Windows Admin Shares | |
| Collection | T1560 | Archive Collected Data: Archive via Utility |
| T1005 | Data from Local System | |
| T1119 | Automated Collection | |
| T1039 | Data from Network Shared Drive | |
| Command and Control | T1071 | Application Layer Protocol: Web Protocols |
| T1132 | Data Encoding: Standard Encoding | |
| T1573 | Encrypted Channel: Symmetric Cryptography | |
| Exfiltration | T1020 | Automated Exfiltration |
| T1041 | Exfiltration Over C2 Channel | |
| Impact | T1486 | Data Encrypted for Impact |
IOCs
ChinaChopper:
2ce60073c09887f9e3a482097294e17d
5bc0d6918e03a92f04b3dfc21b619c7f
73717a2f9bfe19ccdad541bec1fa2b69
82a8470534d74c9c5c0d84071eb0a703
b89e96e2ea8dd6fdb438f7d5b8ecf60c
TwoFace:
581c331d41ef5f5df99ae0d16b2cebf0
ff2693903a1049984745e79381e9ed7e
SysUpdate:
3c1981991cce3b329902288bb2354728
43a2c2fb8d52dc1835ac18516b13aff1
4b5484e3de5c5a2e60fcee50d04183d6
SysUpdate C&C:
103.59.144[.]183(ZoomEye搜索結果)
95.179.189[.]33(ZoomEye搜索結果)
NBTScan:
f01a9a2d1e31332ed36c1a4d2839f412
SMBTouch:
b50fff074764b3a29a00b245e4d0c863
PsExec:
aeee996fd3484f28e5cd85fe26b6bdcd
Termite:
dc92496358b8e67568a35b861ba1804e39e3d36b
Dsquery:
3583d7c971de148a1ffb3302d1510ef1
EternalBlue:
8c80dd97c37525927c1e549cb59bcbf3
frsocks:
da0c13d834cafc010bec1afa2d76196ced71e661
Mimikatz:
449da3d7405c2c79fa55bd7973096e28
0078ff05c20689f40ea9cb8c47fcfb2e52cdc3a9
BitMiner:
5430039162e58c44f9a5941295b55fba
Polar:
841980b4ae02a4e6520ab834deee241b
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1414/