目录
0x00 简介
勒索病毒“Bad Rabbit”采用水坑攻击的方式传播,通过伪装成Adobe flash player欺骗用户安装,感染后会在局域网内扩散。勒索病毒运行后会两次重启电脑,分别进行加密文档和锁定整个磁盘的操作。
0x01 样本概况
特征信息
样本的名称,大小和hash值如下表所示:
样本文件名称 | Install_flash_player.exe |
样本文件大小 | 441899 Bytes |
样本文件版本 | 27,0,0,170 |
MD5 | FBBDC39AF1139AEBBA4DA004475E8839 |
SHA1 | DE5C8D858E6E41DA715DCA1C019DF0BFB92D32C0 |
CRC32 | 5FA1C9A5 |
样本会伪装成正常的flash player安装程序:
查看样本的属性,有Symantec的数字签名:
测试环境及工具
- 测试环境:Win7 X86虚拟机
- 工具:OD,IDA,火绒剑
0x02 样本行为
病毒危害
加密计算机中的文件,修改MBR使计算机无法正常启动,只有通过比特币购买解锁密钥才能够解锁计算机
创建恶意文件
- C:\WINDOWS\infpub.dat
- C:\WINDOWS\cscc.dat
- %ALLUSERSPROFILE%\dispci.exe
- 注:(%ALLUSERSPROFILE% {所有用户文件目录 - C:\Documents and Settings\All Users})
- 释放恶意文件到局域网共享文件夹下
- 资源文件
1/2号资源对应tmp文件
7/8号资源对应cscc.dat
9号资源对应dispci.exe
加密文件
- 加密指定后缀的文件
注册表
- 设置注册表键值用于启动服务
端口通信
- 通过局域网利用139/445端口和其他计算机进行socket通信
修改MBR
修改MBR,并且创建关机任务,在重启之后用户无法正常开机,界面显示勒索信息
0x03 详细分析
病毒样本
创建文件
- 创建infpub.dat,并往里面写入数据
- 通过rundll32.exe执行infpub.dat
- 执行完infpub.dat之后退出进程
- 在C:\WINDOWS目录下找不到infpub.dat,因为在该文件执行完功能之后会被删除
infpub.dat
- 该文件由样本生成,执行完功能之后会自动删除,所以需要用OD单步调试得到文件
-
C:\Windows\system32\rundll32.exe C:\Windows\infpub.dat,#1 15
rundll32.exe调用了1号导出函数,参数为15
-
在IDA中查看,这个文件有两个导出函数,infpub_1和infpub_2
- 对自身进程进行提权操作
- 遍历进程
- 将自身拷贝到堆内存中并在堆中执行代码
- 获取主机名称生成字符串,并创建以此为名的互斥体
- 先判断cscc.dat是否存在,如果存在则退出当前进程;如果不存在,则创建cscc.dat,路径为C:\windows\cscc.dat
- 创建dispci.exe
- 利用schtasks.exe创建计划任务
- 释放文件到共享局域网下
- 局域网弱口令传播
- 用户名
- 密码
加载cscc.dat,创建服务,服务运行完成之后自动删除
- 私钥
- 公钥
- 遍历文件,并加密指定后缀文件
- 指定后缀
- 加密文件
- 在加密后的文件末尾加上了 encrypted
- 执行完加密操作后创建Readme.txt,并写入勒索信息
- 清除日志,关机
dispci.exe
- 主函数
- 加密MBR
- 关机
使用yarGen扫描样本
/*
YARA Rule Set
Author: yarGen Rule Generator
Date: 2018-11-25
Identifier: bad
Reference: https://github.com/Neo23x0/yarGen
*/
/* Rule Set ----------------------------------------------------------------- */
import "pe"
rule BadRabbit {
meta:
description = "bad - file BadRabbit.exe"
author = "yarGen Rule Generator"
reference = "https://github.com/Neo23x0/yarGen"
date = "2018-11-25"
hash1 = "630325cac09ac3fab908f903e3b00d0dadd5fdaa0875ed8496fcbb97a558d0da"
strings:
$s1 = "FlashUtil.exe" fullword wide
$s2 = "https://d.symcb.com/rpa06" fullword ascii
$s3 = "http://rb.symcb.com/rb.crt0" fullword ascii
$s4 = "http://sf.symcb.com/sf.crt0" fullword ascii
$s5 = "(Symantec SHA256 TimeStamping Signer - G2" fullword ascii
$s6 = "(Symantec SHA256 TimeStamping Signer - G20" fullword ascii
$s7 = "C:\\Windows\\infpub.dat" fullword wide
$s8 = "http://rb.symcd.com0&" fullword ascii
$s9 = "https://d.symcb.com/rpa0" fullword ascii
$s10 = "http://s.symcd.com0" fullword ascii
$s11 = "http://sf.symcb.com/sf.crl0W" fullword ascii
$s12 = "http://rb.symcb.com/rb.crl0W" fullword ascii
$s13 = "infpub.dat" fullword wide
$s14 = ",Symantec Class 3 SHA256 Code Signing CA - G2" fullword ascii
$s15 = ",Symantec Class 3 SHA256 Code Signing CA - G20" fullword ascii
$s16 = "%ws C:\\Windows\\%ws,#1 %ws" fullword wide
$s17 = ")))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" fullword ascii
$s18 = " 1996-2017 Adobe Systems Incorporated" fullword wide
$s19 = "1111111111111111111111111111111111111111111111111111111111111111111111111" ascii
$s20 = "))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))" fullword ascii
condition:
uint16(0) == 0x5a4d and filesize < 1000KB and
( pe.imphash() == "e3bda9df66f1f9b2b9b7b068518f2af1" or 8 of them )
}
防范措施
定期更新补丁
安装杀毒软件
重要资料备份
关闭139/445端口
搜索关注公众号[逆向小生],不定期更新逆向工程师需要掌握的技能,包括Windows和Android方面的逆向,还有作为一个逆向工程师的思维模式。