勒索病毒一個個沖著企業服務器來了,CSO們怕了么?
一、背景
近期,針對Windows服務器攻擊的勒索病毒持續傳播,尤其是2018年年初國內數家機構服務器被GlobeImpsoter勒索病毒攻擊,導致業務大面積癱瘓,這引起了大家對服務器安全的關注。
根據騰訊御見威脅情報中心監控,每周都有企業Windows服務器被勒索病毒攻擊,服務器上的數據文件被加密,嚴重影響公司業務運轉。對此,騰訊御見威脅情報中心對服務器勒索攻擊進行了深入分析。
針對服務器攻擊的勒索病毒主要有兩大家族,分別是GlobeImposter和Crysis。GlobeImposter是個勒索病毒的一個老家族,初期主要通過釣魚郵件針對個人用戶攻擊,現在為了獲得更高收益,已將重點攻擊目標轉向企業服務器。Crysis家族最早可以追溯到16年3月,2017年開始持續傳播,一直針對Windows服務器進行攻擊。
?? ??
二、攻擊影響
1.地域分布
統計受勒索病毒攻擊的企業地理分布,發現江蘇、廣東最多,其次是山東、北京。
2.行業分布
通過對受攻擊的企業用戶進行分析,遭到服務器勒索攻擊的行業主要為傳統行業,分別為政府機關(26%)、工業企業(15%)和醫療機構(13%)。相對于信息安全建設比較成熟的互聯網公司而言,這些偏傳統的機構在信息安全上往往投入較少,安全運維缺陷較多。例如服務器沒有及時修復高危漏洞,沒有良好的安全規范等。
?? 
3.傳播趨勢
?? 
服務器勒索病毒一直呈持續增長的傳播階段,Crysis家族和Globelmposter傳播均有上漲。尤其是進入了4月份之后,兩家族傳播均有明顯增長跡象。騰訊御見威脅情報中心統計發現,自4月1日到4月18日,企業服務器被這兩個勒索病毒攻擊的事件增長了34%。
一旦受害企業服務器數據被加密,業務將無法正常運轉,會更傾向于交付贖金。攻擊企業比攻擊普通網民的收益要高很多,因此,未來較長的時間里,針對企業服務器的勒索病毒傳播會是黑客攻擊的重點。
三、GlobeImposter樣本分析
1.勒索病毒整體加密過程
勒索病毒使用了RSA+AES加密方式,加密過程中涉及兩對RSA密鑰(分別為黑客公私鑰和用戶公私鑰,分別用hacker_rsa_xxx和user_rsa_xxx表示這兩對密鑰)和一對AES密鑰。黑客RSA密鑰用于加密用戶RSA密鑰,用戶RSA密鑰用于加密AES密鑰,AES密鑰用于加密文件內容。
具體的加密流程:
勒索病毒首先解碼出一個內置的RSA公鑰(hacker_rsa_pub),同時對每個受害用戶,使用RSA生成公私鑰(user_rsa_pub和user_rsa_pri),其中生成的密鑰信息使用內置的RSA公鑰(hacker_rsa_Public)進行加密后,做為用戶ID。
在遍歷系統文件,對符合加密要求的文件進行加密。對每個文件,通過CoCreateGuid生成一個唯一標識符,并由該唯一標識符最終生成AES密鑰(記為file_aes_key),對文件進行加密。在加密文件的過程中,該唯一標識符會通過RSA公鑰(user_rsa_pub)加密后保存到文件中。
黑客在收到贖金、用戶ID和文件后,通過自己的私鑰(hacker_rsa_pri)解密用戶ID,可以得到user_rsa_pri,使用user_rsa_pri解密文件,就可以得到文件的file_aes_key,進而可以通過AES算法解密出原始文件。
?? 
部分勒索病毒的加解密流程
下面對樣本中使用的一些技術手段進行分析。
2.加密字符解密算法
軟件中的字符及內置的公鑰等信息都以加密的方式保存,加密使用的為AES算法,函數00409392為解密算法函數,函數包含5個參數,每個參數的含義如下:
參數1:返回值,解密后的內容
參數2:返回值,解密后的內容的長度
參數3:解密key
參數4:解密key的長度
參數5:文件句柄,如果文件句柄不為空,就將解密后的內容寫入到該文件句柄對應的文件中
?? 
對aes_crypt函數,使用mbedtls_aes_crypt_ecb進行AES解密操作。
?? 
通過IDA的上下文交叉引用,看到共有七處調用了MyAESDecode函數進行解密內容,這七處調用功能解釋如下:
?? 
3.解碼排除文件夾與排除后綴名
惡意樣本在勒索過程中會繞過包含某些特殊字符的文件夾,這些特殊的字符解碼算法如下:
1)使用“CC0BE4F069F6AE6FFFCCBFD92CE736EE21792B858339D632F577268C2CDD384A”作為AESkey,解密00401158處硬編碼的0x210大小的數據內容,解密后的內容為硬編碼的RSA公鑰(hacker_rsa_pub)。
?? 
2)對上面解密出來的RSA公鑰(hacker_rsa_pub)計算SHA256,計算sha256的代碼片段如下:
?? 
3)使用sha256的值做為AESkey,再次利用解密算法,解密出字符串列表。
?? 
解密出的字符串列表:
?? 
4)用戶ID的生成
勒索病毒運行后,會在用戶機器上生成名為”60091F9FF415A9DD5FDFF0D880249E69F883A75D0242CE20D6E6A90CC5AEAFDE”的文件,此文件名為內置的公鑰的SHA256哈希值。該文件中保存了用戶ID信息。
用戶ID的生成算法為:勒索病毒首先通過RSA-1024生成用戶公私鑰(user_rsa_pub和user_rsa_pri),將生成的密鑰中的rsa.P與rsa.Q拼接上“.TRUE.HOWBACKFILE”等內容后,使用內置的公鑰(hacker_rsa_pub)加密,結果作為用戶ID,同時,生成的公鑰(user_rsa_pub)會做為后面遍歷文件系統時的加密key使用。
可見,該用戶ID也經過了RSA公鑰(hacker_rsa_pub)的加密,在沒有私鑰(hacker_rsa_pri)的情況下,很難還原出RSA-1024的密鑰內容。
?? 
5)文件加密過程
通過GetLogicalDrives得到盤符信息,對每個盤符開啟一個線程進行加密,每個線程函數的參數包含三部分內容:當前盤符路徑,加密key(user_rsa_pub),用戶ID。
?? 
判斷文件路徑是不是屬于排除路徑:
?? 
函數sub_4094D9會實現對文件的加密,對文件的加密使用的是AES加密算法。下面將詳細介紹該函數的過程。
AES加密的KEY通過CoCreateGuid生成,CoCreateGuid函數功能為生成全局唯一標識符,勒索病毒使用該全局唯一標識符做為secret_key,secret_key用來生成AES的加密key.。
?? 
AES加密時的IV參數由當前文件的大小和文件路徑共同生成。IV參數將MD(filesize||filename)后取前16位。
?? 
將IV和secretkey使用MBEDTLS_MD_SHA256計算8192次HASH,并將HASH結果做為AES加密的KEY
?? 
隨后,使用內置的RSA公鑰將guid進行加密,并將加密過的guid及用戶ID寫入到當前文件中。
?? 
最后,使用AES算法將文件內容加密。
?? 
AES加密算法過程如下:
?? 
6)自啟動
勒索病毒通過在RunOnce注冊表下新建名為BrowserUpdateCheck的鍵值,達到開機自啟動的目的。部分代碼如下
?? 
7)自刪除
通過調用CMD/cdel來實現自刪除,部分代碼如下
?? 
8)刪除遠程桌面連接信息及事件日志
解密bat文件后釋放到臨時目錄下,并加載運行
?? 
解密出來的bat文件內容如下
?? 
Bat會刪除遠程桌面連接信息文件default.rdp,并通過wevtutil.execl命令刪除日志信息
四、Crysis樣本分析
1.病毒通過自建IAT的方式,運行后首先解密需要使用的動態庫,API字串,隨后通過LoadLibraryA,GetProcAddress循環遍歷來動態獲取解析使用的API,獲取函數地址后填充IAT表,隨后病毒所有的API調用均使用:
MOVEAX,[IAT-FUN-ADDR]
jmp004066c0
004066c0:CallEAX
的方式來間接調用,這樣做也導致了靜態分析情況下導入表中無法看到病毒調用相關敏感Api。
?? 
?? 
?? 
2.運行后的病毒首先會關閉以下大量服務,來確保待加密文件不被占用,加密文件時不會產生異常。
?? 
3.同時結束下列進程,主要為數據庫相關進程,其目的也是為了防止加密文件被占用,從關閉的進程列表也可看出,病毒主要攻擊使用sqlserver,mysql數據庫的服務器。
?? 
4.病毒不僅會加密磁盤本地文件,還會嘗試遍歷網絡共享目錄下的文件來進行加密。
?? 
5.通過在內存中解密出加密文件類型后綴可知,病毒加密了以下340余種文件類型。
?? 
病毒會加密的340種文件類型如下:
6.為了不影響系統正常運行,病毒加密文件的時候,還會避開以下系統文件不加密,避免因為加密系統文件后產生系統異常。
?? 
7.加密文件完成后的病毒會運行釋放在自身目錄下Info.exe文件來顯示勒索信息,病毒作者要求受害者24小時內聯系郵箱badfile@qq.com,進一步通過支付比特幣的方式繳納解密文件贖金。并且病毒作者聲稱解密文件所需支付的比特幣數量取決于受害者寫郵件的速度,從而威脅受害者盡快與病毒作者聯系。
?? 
五、服務器勒索病毒的傳播渠道
針對服務器攻擊的勒索病毒,黑客首先會利用弱口令漏洞、系統漏洞等方式獲得遠程登錄用戶名和密碼,之后通過RDP(遠程桌面協議)遠程登錄服務器來傳播勒索病毒。黑客一旦能夠成功登錄服務器,則可以在服務器上為所欲為,這也就導致了即使服務器上安裝了安全軟件也無濟于事。
以某公司的服務器為例,通過系統安全日志可以看到,該服務器平均每隔幾秒就會被嘗試登錄一次
?? 
通過詳細信息可以看到,最終被俄羅斯的一個IP成功遠程登錄
?? 
同時,黑客成功入侵了一臺服務器后,往往會進一步進行內網滲透,攻陷很多的服務器,有些黑客甚至還會留下遠控木馬,最終服務器淪為肉雞。
?? 
六、解決方案
通過對多起服務器勒索攻擊的分析,發現該類勒索攻擊大多通過弱口令爆破后,利用RDP協議遠程登錄目標服務器運行勒索病毒。這也就導致了,及時服務器上安裝了安全軟件也會被黑客手動退出,進而對勒索病毒毫無防御能力。
























