病毒介紹
前段時間,Crysis敲詐者的同門——XTBL木馬在伺服器上的敲詐風波剛剛平息,新的一波Wallet伺服器敲詐又再起波瀾。Wallet木馬最早出現在11月末,雖爆發規模不算大,但是由於是針對伺服器的攻擊,造成用戶的損失著實不可估計。根據網際網路安全中心的分析發現,這次的Wallet雖然也是通過伺服器傳播,但是入侵者採用了更多樣的手法——不再僅僅是對3389連線埠的簡單掃描了,而是更有針對性的對伺服器進行系統性攻擊。
樣本分析
0x01 多樣的加密方式
首先,Wallet在加密檔案的時候還是採用了SHA1算法。下圖是SHA1算法的4輪20次循環——比較有代表性。
圖1.SHA1算法
不同的是Wallet不僅使用了RC4——還使用了RC4的變形——用來解密字元串和生成密鑰。依然是RC4標準初始化方法,但加密的時的算法卻有所異同,整體過程變得更為複雜。
圖2.RC4與RC4變形
中間還夾雜了一些簡單的異或和移位進行字元串變換,如下:
圖3.異或移位
0x02 加密本地和網路資源
對網路資源,木馬創建了一個單獨的執行緒來枚舉網路資源並對網路資源進行加密。
圖4.加密網路資源
值得一提的是:Wallet加密網路資源和加密本地資源的時候,採用了相同的密鑰。
圖5.相同密鑰
本地和網路採用的解密手法是一樣的,先通過函式解密得到加密檔案的後綴、敲詐信息文檔等。然後生成密鑰塊,然後通過創建執行緒來加密檔案。
圖6加密檔案
在對檔案進行加密的時候,還是保留了以前的同時創建四個執行緒。來保證加密檔案的效率和成功率、從而避免一個執行緒出現加密檔案失敗的情況導致程式不能完整的跑起來。
圖7 多執行緒
和XTBL不同的是變種Wallet在循環創建的四個執行緒下還新增加了一個執行緒,經過分析該線的主要作用遍歷資料夾。遍歷資料夾用一個單獨的執行緒來做,提高了效率:
圖8.遍歷資料夾
0x03 密鑰塊的生成
Wallet增強了密鑰的強度,通過兩次獲取時間來得到隨機數,兩次得到的隨機數分別與423C28處的數據進行異或,然後用SHA1算的其HASH值,並將該HASH值作為RC4的參數來算的加密檔案的密鑰。採用兩次通過獲取時間來算取隨機數,在本來密鑰相同機率極低的情況下變的更加的低了。
圖9 獲取密鑰
密鑰塊在原本184位元組大小上增加了6個位元組,在其末尾增加了標識位,信箱,加密後檔案的後綴等的地址。
圖10.密鑰塊
0x04 其他細節
1.動態獲取函式地址
圖11.獲取函式
2.刪除卷影副卷
用RC4變形來對字元串進行解密得到cmd.exe的環境變數以及獲取到刪除卷影副卷的命令。然後通過創建管道來向進程cmd中寫入命令來執行。不過大部分人都沒有給自己的作業系統做備份習慣。所以感覺刪除不刪除其實影響不大。
圖12.刪除卷影副卷
3.關閉指定服務和結束指定進程
對通過解密獲取到的服務名和進程名進行查找,如果找到就結束進程和關閉服務。
圖13.關閉特定服務和進程
4.開機啟動
用了兩種方法來寫啟動項,但是都是特別直接的方法,第一種是將它直接寫在了開啟自啟動的資料夾下,還有一種方法是寫註冊表。
0x05 加密更多類型的檔案
被加密的檔案的種類也是琳琅滿目的。各種格式都有隻有你想不到,沒有他做不到。Wallet能加密的檔案多達到324中,下圖是該敲詐者能加密的檔案後綴類型:
圖14.被加密檔案
0x06 被加密後的伺服器
檔案全部被加密,有的程式都不能正常使用。被加密的檔案名稱被修改成原始檔案名稱加上敲詐者的聯繫信箱,後綴全部被修改為.wallet。和寫註冊表一樣來的直接。
被加密後的桌面背景變成藍色,桌面顯示出一個Good morning ,可是大早上的看到這的真的好么?可想而知他們也是半夜偷偷的搞。
總結
之前國外公布了一批Crysis和XTBL用於解密的私鑰,導致很多被中兩類敲詐者加密的檔案最終都使用安全廠商提供的工具成功解密了。而此次的Wallet木馬卻顯得更加嚴防死守,截止到發稿時,還沒有任何私鑰流出的訊息——也就是說,一旦中招就只能老老實實的交付贖金。
這也引發了我們對於伺服器安全的深思:從數量上來說,伺服器的數量可能沒有個人電腦那么多;從木馬傳播量來看,XTBL家族的傳播量也遠不及同為敲詐者卻主攻個人用戶的Cerber家族來的泛濫。但伺服器是用於公共服務的網際網路技術設施,牽一髮而動全身的位置——一旦陷落,損失將無法估量。從XTBL到Wallet,都一次次的給所有的伺服器管理員和提供網際網路服務的企業管理者敲響了警鐘——安全,是網際網路穩定運行的根本前提。