图片来源: Carbon Black
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$:
样本 | Hash |
---|---|
Word 文档 | MD5 : 063394a08bb3eec2680a30939e906343 SHA1 : 9abeef3ed793f28a24562c3e5c3104eee99daa1c SHA256 : 69ee6349739643538dd7eb60e92368f209e12a366f00a7b80000ba02307c9bdf |
Powershell 脚本 | MD5 : 4564d49eda7a048f301b1f87f9da3c62 SHA1 : 8a26892a7949c6a29d9d620c2ffd4c58921d6736 SHA256 : 02beca974ecc4f871d8d42462ef305ae595fb6906ad764e6e5b6effe5ff05f29 |
PowerWare 可加密的文件格式:
1、谨慎打开来历不明的可疑邮件,尽量不打开可疑链接、不明附件;
2、禁用 Office 宏功能;
3、定期备份重要数据,通过不同的媒介存储;
4、安装可信的反病毒软件,及时更新特征库;
5、修改 Powershell 的脚本执行权限,禁止 Powershell 执行 *.ps1 脚本:首先用管理员权限打开 Powershell 终端,然后敲入命令 “Set-ExecutionPolicy Restricted”,最后在确认选项中敲入字母 “Y” 。
https://www.carbonblack.com/2016/03/25/threat-alert-powerware-new-ransomware-written-in-powershell-targets-organizations-via-microsoft-word/
http://blog.trendmicro.com/trendlabs-security-intelligence/tax-day-extortion-powerware-crypto-ransomware-targets-tax-files/
https://threatpost.com/fileless-powerware-ransomware-found-on-healthcare-network/116998/
* 原创作者:千里目安全实验室,本文属FreeBuf原创奖励计划文章,未经许可禁止转载