×

【安全课堂】勒索软件如何温柔地借刀杀人
  

深信服安全产品研发 9906

{{ttag.title}}
作者简介:甲鱼,千里目安全实验室成员




勒索软件如何温柔地借刀杀人


千里百科

2016 年 3 月底,一个名为PowerWare 的新型加密勒索软件通过钓鱼邮件袭击了一家医疗组织,被国外安全公司 Carbon Black 捕获。PowerWare最大的特点是核心的加密勒索功能由 Powershell 脚本实现,通过简单的社会工程学伎俩诱骗用户允许它的恶意动作,导致其调用 Windows 系统本地自带的 Powershell 框架执行加密勒索行为。

Windows PowerShell 是一种命令行外壳程序和脚本环境,它内置于 Windows 系统本地环境,需要 .NET 环境支持。类似 Linux 下的 Shell,命令行用户和脚本编写者可以通过Powershell 利用 .NET Framework 的强大功能,实现高效的文本处理、系统管理甚至编写脚本实现相当复杂的功能性程序。它引入了许多非常有用的新概念,从而很大程度上扩展了在 WindowsCmd 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”。


打赏鼓励作者,期待更多好文!

打赏
2人已打赏

Sangfor_闪电回_朱丽 发表于 2016-4-13 11:26
  
涨姿势~
黄官礼 发表于 2016-4-13 12:48
  
慢慢看
老眼 发表于 2016-4-14 15:45
  
围观
神样队员 发表于 2016-4-15 08:42
  
学到了
千里目_小齐子 发表于 2016-4-15 10:44
  
神一样的导师
maoxs 发表于 2016-4-16 18:44
  
是否可以直接在网关屏蔽 c&c服务器的地址,这样即使执行脚本也无法下载加密程序
Anony 发表于 2016-4-20 08:58
  
分析的不错,学习了
新手129367 发表于 2016-4-29 17:18
  
今天, 我的电脑中招了。所有 excel  文件都被加密了。炒蛋啊
小伙,不错 发表于 2016-5-19 08:09
  
活到老,学到老!
发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
技术笔记
【 社区to talk】
干货满满
每日一问
新版本体验
产品连连看
GIF动图学习
技术咨询
2023技术争霸赛专题
安装部署配置
功能体验
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
每周精选
深信服技术支持平台
POC测试案例
信服课堂视频
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人