anatova勒索軟體來襲
在不斷尋找新威脅期間,我們發現了一個新的勒索軟體系列,稱之為Anatova(基於贖金條的名稱)。Anatova是在一個私有的點對點(p2p)網路中被發現的。經過初步分析,為確保我們的客戶受到保護,我們決定將此發現公之於眾。
儘管Anatova相對較新,但我們已在全球範圍內發現都檢測到
我們認為Anatova可能成為一個嚴重的威脅,因為它的程式碼是為模組化擴充套件做準備的。
此外,它還將檢查網路共享是否已連線,並將加密這些共享上的檔案。根據我們的評估,Anatova背後的開發人員/攻擊者是熟練的惡意軟體作者。我們得出這個結論,是因為每個樣本都有自己獨特的金鑰,以及我們在勒索軟體系列中經常看不到一些功能。
本文將解釋Anatova的技術細節,以及關於這個新的勒索軟體家族的一些有趣的事情。
在分析中我們使用了這個特定的雜湊值:170fb7438316f7335f34fa1a431afc1676a786f1ad9dee63d78c3f5efd3a0ac0
Anatova的主要目標是在受害者付款之前加密所有檔案。
一、Anatova簡介
Anatova通常使用遊戲或應用程式的圖示來欺騙使用者下載。它有一個清單來請求管理員許可權。
二進位制檔案資訊
Anatova勒索軟體是一個64位應用程式,編譯日期為2019年1月1日。此特定雜湊的檔案大小為307kb,但由於樣本中使用的資源量,可能會發生變化。如果我們刪除所有這些資源,大小為32kb;一個非常小的程式,裡面有一個強大的機制。
Anatova有一些強大的靜態分析保護技術,這讓事情變得有些棘手:
· 大多數字符串都是加密的(Unicode和Ascii),使用不同的金鑰對它們進行解密,嵌入在可執行檔案中。
·90%的呼叫是動態的;它們僅使用以下非可疑的Windows API和C程式語言的標準庫:GetModuleHandleW,LoadLibraryW,GetProcAddress,ExitProcess和MessageBoxA。
·當我們在IDA Pro中開啟二進位制檔案(包括最新版本的IDA)時,檢測到的函式很差,並且在3個操作碼後就完成了處理。我們不確定這是IDA Pro中的bug,或者是惡意軟體作者故意造成的(我們懷疑)。
IDA Pro 7.2最新版本中的問題
二、初始感染向量
目前,我們不知道Anatova正在使用或將要使用的感染向量。我們最初的發現位置是私人p2p。
與其他勒索軟體系列一樣,Anatova的目標是加密受感染系統上的所有或多個檔案,並要求付款以解鎖它們。該攻擊者要求以10 DASH的加密貨幣支付贖金 – 目前價值約700美元,與其他勒索軟體家族相比而言比較高。
三、版本1.0的亮點
由於這是一個新的系列,在程式碼中找不到任何版本號,我們稱之為1.0版本。
惡意軟體執行的第一個操作是獲取“kernel32.dll”庫的模組控制代碼,並使用“GetProcAddress”從中獲取29個函式。
解密字串後獲取kernel32中的函式
如果惡意軟體無法獲取kernel32的模組控制代碼,或者找不到某些函式,它將退出而不執行任何加密。
稍後,惡意軟體將嘗試建立具有硬編碼名稱的互斥體(在本例中為:6a8c9937zFIwHPZ309UZMZYVnwScPB2pR2MEx5SY7B1xgbruoO),但每個樣本中的互斥體名稱都會更改。如果建立了互斥體並獲取了控制代碼,它將呼叫“GetLastError”函式並檢視上一個錯誤是ERROR_ALREADY_EXISTS還是ERROR_ACCESS_DENIED。這兩個錯誤都意味著存在此互斥物件的例項。如果發生這種情況,惡意軟體將進入清理記憶體流程(我們將在本文稍後解釋)並結束。
檢查互斥體
在此檢查之後,Anatova將使用與kernel 相同的流程從“advapi32.dll”,“Crypt32.dll”和“Shell32.dll”庫中獲取一些函式。所有文字都經過加密和解密,獲取函式,釋放記憶體,然後繼續下一個。
如果它無法獲得一些這些模組或它需要的一些函式,它將轉到清理工具流程並退出。
我們發現的一個有趣的功能是Anatova將檢索登入和/或活動使用者的使用者名稱,並與加密的名稱列表進行比較。如果檢測到其中一個名稱,它將進入清理流程並退出。
搜尋的使用者列表是:
·LaVirulera
·tester
·Tester
·analyst
·Analyst
· lab
· Lab
· Malware
· malware
某些分析人員或虛擬機器/沙箱在其設定中使用這些預設使用者名稱,這意味著勒索軟體無法在這些計算機/沙箱上執行。
在使用者檢查之後,Anatova將檢查系統的語言。當用戶安裝Windows作業系統時,他們會選擇一種語言來安裝(雖然以後使用者可以安裝不同的語言)。Anatova會檢查系統上第一個安裝的語言,確保使用者無法安裝這些列入黑名單的語言之一從而避免加密檔案。
Anatova不影響的國家名單如下:
· 所有獨聯體國家
· 敘利亞
· 埃及
· 摩洛哥
· 伊拉克
· 印度
看到獨聯體國家被排除在執行之外,通常表明作者可能來自其中一個國家,這是很正常的。本案例中,看到其他國家被提及是令人驚訝的。我們沒有明確假設為什麼這些國家被排除在外。
檢查系統語言
在語言檢查之後,Anatova會查詢一個標誌,在我們檢視的所有樣本中,該值都為0,但如果此標誌將更改為值1(當前惡意軟體樣本永遠不會更改該值),則會載入兩個DLL,其名稱(解密後)為“extra1.dll”和“extra2.dll”。這可能表明Anatova準備模組化或在不久的將來擴充套件其功能。
載入額外的模組
在此之後,惡意軟體列舉系統中的所有程序並將它們與大型列表進行比較,例如“steam.exe”,“sqlserver.exe”等。如果發現其中一些程序,惡意軟體將開啟並且終止他們。此操作是典型的勒索軟體,它試圖解鎖稍後將被加密的檔案,例如資料庫檔案、遊戲檔案、Office相關檔案等。
下一步操作是使用crypto API建立一對RSA金鑰,用來加密所有字串。此功能與其他勒索軟體系列相同,例如GandCrab或Crysis。它確保將使用的金鑰是因使用者和執行次數而異。
如果惡意軟體無法建立金鑰,它將轉到清理流程並退出。
在此之後,Anatova將使用crypto API “CryptGenRandom”函式生成32位的隨機金鑰和8位元組的另一個值,以在執行時使用Salsa20演算法和私有的blob金鑰進行加密。
在檔案加密過程中,它將解密2層加密樣本的主RSA公鑰,第一個是值為0x55的XOR,第二個是使用硬編碼金鑰和IV解密使用Salsa20演算法的樣本。
從第一層解密樣本的主RSA公鑰
在此之後,匯入公鑰並使用它加密Salsa20金鑰和IV,這兩個引數用於在執行時加密RSA私鑰。
下一步是準備一個記憶體緩衝區並加密所有資訊(Salsa20金鑰,Salsa20 IV和RSA私鑰)。它使用函式“CryptBinaryToStringA”在BASE64中建立一個大字串。勒索軟體稍後將清除計算機記憶體中的金鑰、IV和RSA私鑰,防止任何人從記憶體中轉儲此資訊並建立解密器。
這個BASE64字串將在稍後的贖金票據中寫出。只有惡意軟體作者才能解密Salsa20金鑰和IV以及使用者解密檔案所需的RSA私鑰。
如果不起作用的話,Anatova將自行刪除,進入清理流程並退出。
當金鑰在記憶體緩衝區中加密時,Anatova將列舉所有邏輯單元,並將搜尋DRIVE_FIXED型別的所有現有例項(例如普通硬碟)或DRIVE_REMOTE(用於安裝的遠端網路共享)。Anatova將嘗試加密每個位置上的檔案。這意味著當網路共享上的檔案被加密時,公司受害者可能會導致重大事故。
檢查所有邏輯單元
對於每個已安裝的驅動器(硬碟或遠端共享),Anatova將獲取所有檔案和資料夾。稍後會檢查它是否是一個資料夾,如果是,將檢查資料夾名是否為“.”和“..”,以避免同一目錄和上一個目錄。
在收集的資料夾名列表中,Anatova會檢查列入黑名單的名稱,例如“Windows”,“Program Files”,“Program Files(x86)”等。這在許多勒索軟體系列中都很常見,因為作者希望避免破壞作業系統,轉而瞄準高價值檔案。Anatova對副檔名.exe,.dll和.sys也是如此,這些檔案對作業系統也很重要。
檢查檔名和副檔名
如果通過此檢查,Anatova將開啟該檔案並獲取大小,並將其與1 MB進行比較。 Anatova只會加密1MB或更小的檔案,以避免在大檔案上浪費時間;它想要快速加密。通過在加密檔案的末尾設定指標,Anatova確保它不會加密已加密的檔案。
接下來,Anatova將建立一個32位的隨機值作為Salsa20演算法的金鑰,另一個值為8位元組,將用作Salsa20的IV。
使用這些值,它將讀取記憶體中的所有檔案或最大大小為1MB的檔案,並使用Salsa20演算法使用金鑰和IV加密此資訊(這是最近非常流行的,因為它是一種非常快速的演算法並且具有開源實現)。
加密檔案函式
它將匯入在執行時建立的RSA公鑰,並使用它加密用於加密檔案的金鑰和IV。接下來,它從檔案的開頭將加密的內容寫入同一檔案中,然後將指標指向檔案的末尾並寫入如下內容:
· 使用RSA公鑰加密的Salsa20金鑰。
· 使用RSA公鑰加密的Salsa20 IV。
·檔案大小(小於1 MB)。
·出現在贖金票據中的每個樣本的特殊硬編碼值。
· 樣本中的特殊硬編碼值,它是之前檢查的感染標記,以避免兩次加密同一檔案。
完成後,Anatova將在同一資料夾中寫入贖金票據。因此,如果Anatova無法對資料夾中的某些內容進行加密,則不會在此資料夾中建立贖金票據,贖金條僅在受影響的資料夾中出現。
此行為與在所有資料夾中均寫入勒索資訊的其他勒索軟體系列不同。
贖金票據文字完全加密,但聯絡作者的郵件地址和要支付的地址除外。
Anatova不會覆蓋贖金票據,如果它已存在於資料夾中,這可節省時間。贖金票據包含base64塊,其中包含解密以字串“ – KEY–”開頭的塊中的檔案所需的所有加密資訊,以及id。
然後允許響應的受害者免費解密一個最大大小為200kb的.jpg檔案,作為他們可以獲取解密檔案的證據。
贖金票據樣例
完成所有這些後,Anatova將非常快速地破壞Volume Shadow副本10次。與大多數勒索軟體系列一樣,它使用vssadmin程式(需要管理員許可權)來執行和刪除Volume Shadow副本。
刪除Volume Shadow 10次
最後,當所有步驟完成後,勒索軟體將遵循清理流程,如前所述,主要是為了防止轉儲可能有助於建立解密工具的記憶體程式碼。
四、覆蓋範圍
McAfee閘道器和端點產品的客戶受此版本保護。檢測名稱包括Ransom-Anatova![partialhash]。
IoC
樣本使用以下MITRE ATT&CK™技術:
· 通過API執行
· 應用程式程序發現
·檔案和目錄發現:搜尋要加密的檔案
· 加密檔案
·程序發現:列舉終端上的所有程序以殺死一些特殊程序
·建立檔案
·提升許可權:請求執行。
·建立互斥體
Hashes:
·2a0da563f5b88c4d630aefbcd212a35e
·366770ebfd096b69e5017a3e33577a94
·9d844d5480eec1715b18e3f6472618aa
·61139db0bbe4937cd1afc0b818049891
·596ebe227dcd03863e0a740b6c605924