简介2016 年 3 月底,一个名为 PowerWare 的新型加密勒索软件通过钓鱼邮件袭击了一家医疗组织,被国外安全公司 Carbon Black 捕获。PowerWare 最大的特点是核心的加密勒索功能由 Powershell 脚本实现,通过简单的社会工程学伎俩诱骗用户允许它的恶意动作,导致其调用 Windows 系统本地自带的 Powershell 框架执行加密勒索行为。 Windows PowerShell 是一种命令行外壳程序和脚本环境,它内置于 Windows 系统本地环境,需要 .NET 环境支持。类似 Linux 下的 Shell,命令行用户和脚本编写者可以通过 Powershell 利用 .NET Framework 的强大功能,实现高效的文本处理、系统管理甚至编写脚本实现相当复杂的功能性程序。它引入了许多非常有用的新概念,从而很大程度上扩展了在 Windows Cmd和 Windows Script Host 环境中获得的功能。 PowerWare 的核心技术原理,可以类比为“借受害用户之刀(Powershell),伤用户自己”。 传播方式PowerWare 通过钓鱼邮件传播。其传播载体是一份带有宏脚本的恶意 Word 文档,当受害用户打开恶意文档的时候,如果 Office 软件没有启用宏功能,该文档会提示需要开启宏功能允许脚本执行,诱导受害用户启用宏功能;如果 Office 软件已经开启了宏功能,该文档中的恶意宏脚本会直接执行。
传播 PowerWare 的恶意 Word 文档 一旦经过用户允许,宏脚本会请求 C&C 服务器,将一份后缀为 *.ps1 ( Powershell 脚本文件)的恶意脚本下载到当前用户的临时文件目录下面,然后执行 *.ps1 脚本,以下是我们从 Word 文档里提取出的 VBS 脚本:
恶意宏脚本 综上所述, PowerWare 的传播和执行流程如下图所示:
特性概要千里目实验室拿到勒索软件的样本之后,对其进行了详细分析。分析结果显示相比勒索软件的“前辈”们(CryptoLocker/Locky/TeslaCrypt/CTB-Locker/Petya……), PowerWare 尽管传播方式比较传统、恶意行为相对简单,仍然有一些新颖之处。以下是 PowerWare 的主要特性: 1.通过 Word 文档里的宏脚本执行恶意行为,调用 Cmd 执行命令,向C&C 服务器请求恶意 Powershell 脚本并执行; 2.不向本地磁盘写入恶意 二进制可执行文件, 只执行简单的脚本代码; 3.调用系统自身框架 Powershell 执行恶意脚本、实施恶意行为; 4.本地生成加密密钥,然后向 C&C 上传密钥和受害者唯一身份标识ID; 5. 不加密体积小于 2KB 的文件,对于体积大于 2KB 的文件在,只加密文件的前 2KB 数据; 6. 声称自己用了 RSA-2048 加密,实则用了 AES-256 加密; 7. 在每一个被它加密过的目录下,生成一个 FILES_ENCRYPTED-READE_ME.HTML 文件,里面有勒索和解密相关的信息; 8. 加密针对的文件格式众多,经过统计,该勒索软件加密的文件格式多达 447 种。 加密过程和原理详解PowerWare 脚本最初就随机生成 3 串字符,前 2 串字符用来生成加密密钥,第 3 串字符用来标识受害者身份( uuid )。随后将生成的 3 串字符通过 HTTP POST 请求上传到 C&C 服务器:
然后 PowerWare 就直接根据上面的字串生成加密句柄,由下图相关代码可以看出其加密方式是 CBC 模式的 AES-256 加密:
接下来全盘遍历文件,针对具体类型进行加密:
体积小于 2048 字节的文件直接忽略,大于 2048 字节的文件只取前 2048 字节进行加密:
最后会在每一个目录下面生成关于解密信息的 HTML 文档,HTML 源码从自身携带的 Base64 字符串中提取,并用最开始生成的 uuid 字符串(脚本最开始随机生成的 3 个字符串中的最后一个)填充:
在 Powershell 的命令窗口里手动执行 PowerWare 的恶意脚本,会看到每一步详细的加密过程:
在系统桌面上放置一个自定义的足够体积的文本文件,如下:
文件被加密之前打开,内容是全部可阅读的纯文本:
文件被加密之后,打开文本会发现文件前面一些数据被加密:
此时桌面上已经生成了一个 FILES_ENCRYPTED-READE_ME.HTML 文件,浏览器打开之后会显示解密数据相关的提示步骤,并且赎金会随着解密时间的拖延从 500$ 上升到 1000$:
样本信息
PowerWare 可加密的文件格式: 防范建议1、谨慎打开来历不明的可疑邮件,尽量不打开可疑链接、不明附件; 2、禁用 Office 宏功能; 3、定期备份重要数据,通过不同的媒介存储; 4、安装可信的反病毒软件,及时更新特征库; 5、修改 Powershell 的脚本执行权限,禁止 Powershell 执行 *.ps1 脚本:首先用管理员权限打开 Powershell 终端,然后敲入命令 “Set-ExecutionPolicy Restricted”,最后在确认选项中敲入字母 “Y” 。 参考资料:https://threatpost.com/fileless-powerware-ransomware-found-on-healthcare-network/116998/ * 原创作者:千里目安全实验室,本文属FreeBuf原创奖励计划文章,未经许可禁止转载 | ||||||
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|