病毒使用工具:
窃取自美国国家安全局的黑客工具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