近期我在整理和学习2022-2023年期间国内外发生的高频勒索攻击案例,发现Royal勒索软件在国内成功勒索用户的比重比较大,所以今天想对此进行一下分析,并找到检测它的方法,以及探索对未知勒索软件的检测。
勒索样本分析
我更关注于在行为方向的检测,所以针对这个样本,经过分析感觉整体代码逻辑普通,并没有太多的技巧或者独特方式。但不得不深思的是勒索软件的核心是加密数据并实现快速的传播,某个样本单体的简单反而在分析聚合方面不容易从告警中捞取出来,越是借助复杂攻击技术的勒索软件反而越好检测,当然该样本行为特征处用了最通常的方式也容易检测,不知道为何该样本在国内大面积成功进行了勒索。
这个样本的代码逻辑如下:
1. 首先是通过命令行参数选择功能
2. 如果命令行参数过关了则删除卷影副本
3. 本地文件加密
该部分通过创建线程的方式实现加密,嵌入RSA公钥到文件本身,更改被加密文件后缀为.royal_w 后缀。
4. 共享文件加密
通过分析可以发现勒索软件大多通过GetIpAddrTable 检索目标机器的不同 IP 地址,在获得域控凭证的基础上可以利用wmic/psexec等快速的实现横向移动完成勒索,该样本对遍历得到的 IP 地址尝试使用 SMB 协议进行访问,从而加密共享文件。
5. 创建线程写入勒索信
我们可以看到该样本通过创建线程实现加密,同时也通过创建线程实现勒索信的写入
勒索信内容
整体这个样本的逻辑就是这样,没有什么很神秘的地方,当然这只是整体勒索攻击中对于勒索样本的分析,勒索攻击也不仅仅是勒索样本。
勒索检测方法
我分析恶意攻击、恶意样本,都是为了做反APT检测,下面是能检测这个样本的方法:
在行为检测方面只需要监控vssadmin.exe delete shadows /all /quiet这一句命令行即可提前阻断勒索,如果这个样本使用了命令行欺骗技术,以当前网上流行的代码来看只需要在vssadmin.exe退出的时候检测命令行即可。(企业普通用户电脑应该很难有这个操作出现,误报这块宁报不漏,to c用户可以结合数据量看是否增加黑白鉴定)。
引申一下卷影删除的技巧
1.借助wmi也可以实现卷影删除,
wmic shadowcopy delete /nointeractive
2.借助vssadmin调整大小
vssadmin resize shadowstorage /for=/on=/maxsize=
3.powershell
Get-WmiObject Win32_ShadowCopy| % { $_.Delete() } 2.Get-WmiObject Win32_ShadowCopy| Remove-WmiObject
4.vssadmin.exe实现的卷影删除实际上是借助一个com接口实现的删除(它使用VSSCoordinatorCOM类与IVssCoordinator接口来向VSS服务发出删除请求),如果该样本是基于该com接口而非vssadmin.exe实现删除卷影则得多考虑相关的hook检测,这种手法目前市面勒索软件用的很少,而在该处的去做hook检测反而是最通用的,但是又得考虑另外一个问题,被解hook或者绕过hook了怎么办? 被解hook有没有可能需要定时扫描有没有被解hook,如果对方是利用漏洞提权去杀死edr怎么办, RunasPPL安全研究员都找到方法绕过,更何况流行这么多年的杀死EDR驱动回调,和近几年的禁用ETW,更何况github这样的代码一堆。所以是不是得提前检测到漏洞攻击?不得不看到EDR在这里的检测必须是提前的且是环环相扣的。我看了一些零信任的演讲、书本、开源代码,不得不想到零信任火热的当下,零信任方案又带着EDR,那一个钓鱼邮件过去下发一个勒索软件可以检测吗?是不是检测到了才能说设备不可信,才能阻止数据访问。进行了一波举一反三,可能有说的不对,我们可以一起再讨论。
5.volsnap.sys提供了最终的卷影删除的能力,有能力拦截这块的ioctl就整一个吊方案吧。
静态已知检测方面,可以通过比较md5,内嵌的RSA公钥或者勒索信内容或者其他字符串特征实现检测阻止。
现在的很多勒索软件一些行为是明牌,所以我们需要重点关注这些行为侧,而这也只是针对勒索软件的检测,勒索攻击中勒索软件只是其中一环,我们在做好勒索软件检测的同时也更应该深入研究勒索攻击,尤其是未知勒索软件的攻击,现在开源勒索代码泛滥下谁还不会开发个勒索软件呢?
推荐阅读:
扫码关注
微信号|HiluSmile
推特|Xiaoliang Liu
(@flame36987044)
原文始发于微信公众号(xiaoliangliu):勒索软件之Royal勒索软件分析与检测
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论