近日,安天CERT发现一种将恶意ShellCode嵌入到BMP图像文件中的ProLock勒索软件,它通过混淆的PowerShell代码加载以躲避安全软件查杀。
ProLock勒索软件将代码嵌入到名为“WinMgr.bmp”的BMP图像中,通过混淆的PowerShell代码将图像中的代码直接注入到内存中运行,达到可执行文件不落地的目的。勒索软件执行后,加密计算机上的文件,在原文件名后追加名为“.proLock”的后缀。安天CERT通过关联分析,认为该勒索软件是安天曾分析过的PwndLocker勒索软件的变种[2]。PwndLocker勒索软件此前曾尝试将ShellCode嵌入伪造的AVI视频文件中,但由于使用的加密方法存在缺陷,被加密的文件存在恢复的可能。近期,攻击者已修复了之前版本的缺陷,目前被ProLock勒索软件加密的文件在未得到密钥前暂时无法解密。
近几年,无文件攻击手段颇受攻击者的青睐,逐渐成为主流网络攻击方式之一。通过无文件攻击方式避免在受害者主机上留下痕迹,恶意文件不在磁盘上驻留,以躲避安全软件的文件查杀。此前,勒索软件也出现过无文件攻击手段,例如安天曾经分析过的FTCode勒索软件[3],该勒索软件采用带有恶意宏代码的Office文档,通过宏调用Powershell代码执行勒索加密。由于使用ShellCode开发的勒索软件具有更难被安全软件识别的特点,未来可能会成为更多勒索软件开发者的选择,用户需及时针对此类攻击手段做好有效的防范措施。
该勒索软件技术特点分布图:
图 2-1 该勒索软件技术特点的ATT&CK的映射
具体ATT&CK技术行为描述表:
表 2-1具体技术行为描述表
ATT&CK阶段/类别 |
具体行为 |
|
执行 |
使用脚本 |
使用PowerShell脚本 |
利用PowerShell |
利用PowerShell脚本将ShellCode注入内存中 |
|
使用命令行 |
使用cmd命令行关闭大量服务 |
|
防御规避 |
填充二进制文件 |
将ShellCode代码填充到BMP图像文件中 |
使用脚本 |
使用PowerShell脚本 |
|
混淆文件或信息 |
混淆PowerShell脚本 |
|
发现 |
发现文件和目录 |
枚举系统内文件和目录,对特定文件格式和目录进行跳过,不对其内容进行加密 |
影响 |
造成恶劣影响的数据加密 |
对大量文件进行加密,导致文件无法正常使用 |
禁止系统恢复 |
删除磁盘卷影,禁止通过系统恢复的方式来还原文件 |
|
禁用服务 |
禁用指定服务,以达到顺利加密文件的目的 |
针对该勒索软件安天建议个人及企业采取如下防护措施:
(1) 安装终端防护:安装反病毒软件。建议安天智甲用户开启勒索病毒防御工具模块(默认开启);
(2) 加强口令强度:避免使用弱口令,建议使用16位或更长的密码,包括大小写字母、数字和符号在内的组合,同时避免多个服务器使用相同口令;
(3) 及时更新补丁:建议开启自动更新功能安装系统补丁,服务器应及时更新系统补丁;
(4) 关闭高危端口:关闭3389、445、139、135等不用的高危端口;
(5) 关闭PowerShell:如不使用PowerShell命令行工具,建议将其关闭;
(6) 定期数据备份:定期对重要文件进行数据备份,备份数据应与主机隔离;
(1) 开启日志:开启关键日志收集功能(安全日志、系统日志、PowerShell日志、IIS日志、错误日志、访问日志、传输日志和Cookie日志),为安全事件的追踪溯源提供基础;
(2) 设置IP白名单规则:配置高级安全Windows防火墙,设置远程桌面连接的入站规则,将使用的IP地址或IP地址范围加入规则中,阻止规则外IP进行暴力破解;
(3) 主机加固:对系统进行渗透测试及安全加固;
(4) 部署入侵检测系统(IDS):部署流量监控类软件或设备,便于对勒索软件的发现与追踪溯源。
(5) 灾备预案:建立安全灾备预案,确保备份业务系统可以快速启用;
表 4-1 ProLock勒索软件概览
加密文件命名方式 |
<原文件名>+<原文件后缀名>+.proLock |
联系方式 |
Tor付款站点 |
加密文件类型 |
加密指定文件格式外所有文件 |
勒索币种与金额 |
比特币(实际金额通过邮箱与攻击者沟通后得知) |
是否有针对性 |
否 |
能否解密 |
暂时不能解密 |
是否内网传播 |
否 |
勒索信界面 |
表 5-1 WinMgr.bmp图片基本信息
病毒名称 |
Trojan[Ransom]/Win32.Pwnd |
原始文件名 |
WinMgr.bmp |
MD5 |
C579341F86F7E962719C7113943BB6E4 |
文件格式 |
Picture/Microsoft.BMP |
文件大小 |
70.03 KB (71,712 字节) |
VT首次上传时间 |
2020-03-18 10:44:43 |
VT检测结果 |
18 / 59 |
ProLock勒索软件作者将代码嵌入一个名为“WinMgr.bmp”的BMP图像中,ShellCode代码片段如下:
图 5-1 WinMgr.bmp中嵌入的ShellCode
PowerShell脚本解混淆后,将ShellCode直接注入内存中运行。
图 5-2 PowerShell脚本
ShellCode注入到内存中的代码。
图 5-3 注入到内存中的ShellCode代码
ProLock勒索软件为了能够顺利加密文件,会调用cmd执行命令停止大量服务。这些服务包括数据库相关服务、数据备份相关服务、安全软件相关服务,如下所示:
图 5-4 cmd命令
在加密文件的过程中,ProLock勒索软件不会加密操作系统和常见应用程序文件夹中具有以下扩展名的文件:
表 5-2 不加密的文件扩展名
.exe |
.dll |
.lnk |
.ico |
.ini |
.msi |
.chm |
.sys |
.hlf |
.lng |
.win |
.inf |
.ttf |
.cmd |
.bat |
.vhd |
.bac |
.bak |
.wbc |
.bkf |
.set |
.dsk |
ProLock勒索软件执行后,加密计算机中的文件,在原文件名后追加名为“.proLock”的后缀。
图 5-5 加密后的文件
ProLock勒索软件执行后在计算机非系统目录下创建名为“[HOW TO RECOVER FILES].TXT”的勒索信,勒索信内容包含勒索说明、联系方式和交付赎金的方法等信息。
图 5-6 勒索信
ProLock勒索软件使用“AES+RSA”加密算法加密文件,调用命令行命令来防止受害者恢复已加密的文件,具体操作为删除卷影副本。目前,被加密的文件在未得到密钥前暂时无法解密。
本文作者:AntiyLabs
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/128807.html