知己知彼之新型勒索Viro Botnet Ransomware的功能分析
*本文原創作者:si1ence,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載
0×0 背景
最近發現一個偽裝成Office Update的勒索軟體差一點手抖就雙擊點選運行了,上網一查發現還是個新的樣本叫VIBOROT,就簡單的看了一下相關介紹與功能。
Viro殭屍網路與任何已知的勒索軟體系列無關。在我們分析了一個類似locky勒索軟體變種的7天后,Viro殭屍網路首次在2018年9月17日被觀察到,將Viro殭屍網路下載到計算機後,它將檢查是否存在登錄檔項(計算機GUID和產品金鑰),以確定系統是否應加密。該病毒具有勒索軟體和殭屍網路功能影響了較多美國網際網路使用者, 一旦Viro殭屍網路感染機器,它也會成為垃圾郵件殭屍網路的一部分,該殭屍網路將勒索軟體分發給更多的受害者。
連結如下: ofollow,noindex" target="_blank">https://blog.trendmicro.com/trendlabs-security-intelligence/virobot-ransomware-with-botnet-capability-breaks-through/
0×1 程式主體
偽裝成Office Updater整體的功能分部大致如下,主要功能包括勒索的加密與解密、殭屍網路、獲取主機資訊、鍵盤記錄、程序建立、惡意檔案下載等功能。
0×2 勒索模組
加密演算法主要使用了AES+RSA加密演算法,採用256位的金鑰、128位的分組大小同時使用了CBC模式(密碼分組連結Cipher-block chaining),之後再使用RSA演算法進行非對稱加密。
呼叫函式RNGCryptoServiceProvider 生成隨機的32位的密碼
讀取RindaelManaged的向量和經過RSA加密後的密文長度,轉化成32 位無符號的整數值。同時呼叫 CryptoStream、FileStream函式生成檔案資料流與加密資料流,最後生成經過AES與RSA加密後的.enc的檔案。
加密完成之後同時在跟目錄下面生成readme.txt檔案
源語言為法語,經過翻譯之後如下圖
使用遞迴函式對目錄進行迴圈的加密
主要加密的檔案型別如下
0×3 命令執行
本地的命令執行有三種實現方式依次為Cmd、Powershell、CSharp(C#)
新建了一個Process程序設定為隱藏屬性,將命令儲存在stringReader裡通過方法StandardInput.WriteLine進行執行
將返回結果傳回C2伺服器
0×4 鍵盤記錄
使用windows鉤子(Hook)抓取鍵盤訊息
新建一個WebClient將本地抓取到的鍵盤記錄上傳到C2伺服器上( https://viro.mleydier.fr )
0×5 程序操作
依次呼叫系統函式CreateProcess、VirtualAlloc、WriteVirualMemory分配虛擬記憶體,,然後在該塊記憶體中寫入程式碼可以執行程式碼
依次呼叫系統函式NtGetContextThread、NtWriteVirtualMemory、NtSetContextThread、NtResumeThread實現程序注入。
0×6 總結
病毒主要通過釣魚郵件進行傳播,對於陌生郵件的附件或者來路不明的檔案一定要警惕。
*本文原創作者:si1ence,本文屬FreeBuf原創獎勵計劃,未經許可禁止轉載