病毒使用工具:
竊取自美國國家安全局的黑客工具EternalBlue(直譯:“永恒之藍”)
漏洞:
MS17-010漏洞
微軟https://support.microsoft.com/zh-cn/help/4012598/title
已在3月14日做了修補,但貌似只針對win10
好難貌似是個越界漏洞
漏洞分析:http://bobao.360.cn/learning/detail/3738.html
攻擊流程
漏洞感染==>執行Dll Payload==>釋放資源到mssecsvc.exe==>安裝服務mssecsvc2.0==>釋放敲詐者Dropper執行加密流程==>感染更多主機
mssecsvc.exe:之后它會創建mssecsvc2.0服務。該服務會使用與初次執行不同的入口點執行mssecsvc.exe文件。第二次執行會檢查被感染電腦的IP地址,并嘗試聯接到相同子網內每個IP地址的TCP 445端口
加密過程
整個加密過程采用RSA+AES的方式完成,其中RSA加密過程使用了微軟的CryptAPI,AES代碼靜態編譯到dll
程序執行==>使用CryptGenKey生成RSA2048 SesionKey==>導出SPUBKEY到文件0000000.pky,使用RPUBKEY加密SPIVKEY導出到文件00000000.eky==>遍歷文件==>使用CryptGenRandom生成FLEKEY 128bit==>使用SPUBKEY加密FILEKEY獲得ENOFLEKEY==>使用LEKEY初始化AES_OONTEXT==>清空內存中的FILEKEY==>使用AES_CONTEXT加密文件內容==>一次寫入WABAORY!標記ENOFILEKEY加密文件內容
Crypto:加密過程:獲取公鑰-->隨機生成對話對稱密鑰-->公鑰傳輸,私鑰獲取-->通過對話密鑰通信
CryptGenKey:生成隨機加密會話密鑰或公鑰、私鑰密鑰對。四個參數:創建CSP的句柄,要生成密鑰的算法的ALG_ID值,生成密鑰的類型,復制新生成的鍵的句柄的地址
CryptGenRandom:該函數生成的數據是密碼隨機的。它比典型隨機數生成器(如C編譯器附帶的數據)生成的數據更為隨機。三個參數:CSP的處理,生成字節數,填充緩沖區輔助隨機(可選)
密鑰概述
RPUBKEY:rsa 2048(公鑰) 硬編碼與程序中
RPIVKEY:rsa 2048(私鑰)
SPUBKEY:rsa 2048 會話密鑰(公鑰),由CryptGenKey隨機生成
SPIVKEYrsa 2048 會話密鑰(私鑰),由RPUBKEY加密保存
FILEKEY:aes 128 由CryptGenRandom隨機生成,一個文件一個
FILEKEY 由會話公鑰SPUBKEY將FILEKEY加密存儲在文件上
解密過程:(個人理解,八九不離十)
提供RPIVKEY,解密SPIVKEY,解密FILEKEY,解密文件
特例
在加密過程中,程序會隨機選取一部分文件使用內置的RSA公鑰來進行加密,這里的目的是解密程序提供的免費解密部分文件功能。
總結
這次勒索漏洞使用了雙rsa加aes,雙rsa很高效得提高了保密性,aes加密文件又能保證加密效率,騷的很。。
參考網站
http://bobao.360.cn/learning/detail/3853.html
http://www.chinablackhat.com/Article/201705/144767.html