BadRabbit勒索病毒分析报告

近日一种新型勒索软件BadRabbit给多个东欧国家造成损害,同时影响200多个政府机构和私营企业。截至目前,俄罗斯、保加利亚和土耳其均遭受攻击。已证实的受害者包括乌克兰敖德萨机场、乌克兰基辅地铁系统、乌克兰基础设施部、三个俄罗斯新闻机构。乌克兰CERT团队已发布报告,警告乌克兰企业警惕此次攻击。以下是详细的技术分析。
病毒采用水坑攻击的方式传播,受害者下载虚假的flash安装更新包并启动后勒索病毒就开始执行。
BadRabbit勒索病毒分析报告_第1张图片
BadRabbit勒索病毒分析报告_第2张图片
程序具有伪造的赛门铁克的数字签名。
BadRabbit勒索病毒分析报告_第3张图片
首先使用rundll32启动infpub.dat。
BadRabbit勒索病毒分析报告_第4张图片
从字符串来看疑似使用zlib1.2.8压缩算法。
BadRabbit勒索病毒分析报告_第5张图片
infpub.dat同样具有伪造的赛门铁克的数字签名。它有5个资源文件,资源文件1/2是类似于mimikatz的64位/32位版本,具有伪造的微软的数字签名;资源文件7/8是diskcryptor中的64位/32位驱动文件,具有真实有效的数字签名;资源9是主要用来加密的程序。
BadRabbit勒索病毒分析报告_第6张图片
首先根据相关权限是否提升和运行中的进程名的hash来设置两个感染标志位。
BadRabbit勒索病毒分析报告_第7张图片
BadRabbit勒索病毒分析报告_第8张图片
对应的进程名如下[1]。
BadRabbit勒索病毒分析报告_第9张图片
把自己加载到内存中运行。
BadRabbit勒索病毒分析报告_第10张图片
收集计算机名,加密之后创建互斥量。
BadRabbit勒索病毒分析报告_第11张图片
释放cscc.dat(资源7或8),创建ServiceName为cscc,DisplayName为Windows Client Side Caching DDriver的服务。
BadRabbit勒索病毒分析报告_第12张图片
并将SYSTEM\CurrentControlSet\services\cdfs中的ImagePath修改为cscc.dat。
BadRabbit勒索病毒分析报告_第13张图片
设置如下注册表项。
BadRabbit勒索病毒分析报告_第14张图片
使用CryptGenRandom生成随机数。
BadRabbit勒索病毒分析报告_第15张图片
释放dispci.exe(资源9),并创建名为rhaegal的计划任务启动dispci.exe,将随机数作为参数传递。
BadRabbit勒索病毒分析报告_第16张图片
创建名为drogon定时关机的计划任务。
BadRabbit勒索病毒分析报告_第17张图片
创建线程尝试获取可攻击的IP地址列表,依次获取已建立TCP连接的IP,本地ARP缓存的IP和局域网内的服务器IP地址。
BadRabbit勒索病毒分析报告_第18张图片
释放xxxx.tmp(资源1或2),使用命名管道通信。
BadRabbit勒索病毒分析报告_第19张图片
程序硬编码了一些登录名和密码爆破NTLM。
BadRabbit勒索病毒分析报告_第20张图片
BadRabbit勒索病毒分析报告_第21张图片
并且还会尝试通过IPC$admin$加密。
硬编码的管道名:
BadRabbit勒索病毒分析报告_第22张图片
BadRabbit勒索病毒分析报告_第23张图片
枚举筛选类型为TERMSRV/的凭据:
BadRabbit勒索病毒分析报告_第24张图片
连接网络资源:
BadRabbit勒索病毒分析报告_第25张图片
使用wmic执行远程命令:
BadRabbit勒索病毒分析报告_第26张图片
BadRabbit勒索病毒分析报告_第27张图片
最开始各家安全公司都没有发现BadRabbit有像NotPetya一样使用系统漏洞传播,但是随后思科Talos团队[2]发现BadRabbit还利用了EternalRomance漏洞传播。与之前NotPetya使用shadowbrokers中的shellcode不同,BadRabbit中的利用疑似根据github[3]上公布的python漏洞利用脚本修改而来。
BadRabbit勒索病毒分析报告_第28张图片
程序的数据段中的部分内容经过按位取反后和python脚本中定义的结构体相同。
BadRabbit勒索病毒分析报告_第29张图片
BadRabbit勒索病毒分析报告_第30张图片
同样都解析SMB响应中包含的泄漏出的Frag Pool结构。
BadRabbit勒索病毒分析报告_第31张图片
BadRabbit勒索病毒分析报告_第32张图片
同样都在尝试修改另一个Transaction的数据之后检查NT status code。
BadRabbit勒索病毒分析报告_第33张图片
BadRabbit勒索病毒分析报告_第34张图片
使用不同的MultiplexID值发送nt_trans_secondary,类似于python脚本中的write_data()函数。
BadRabbit勒索病毒分析报告_第35张图片
BadRabbit勒索病毒分析报告_第36张图片
总结病毒一共使用了以下手段传播:SMB,NTLM,WMI以及EternalRomance。
开始加密,将随机数和硬编码的公钥传递给加密函数。
BadRabbit勒索病毒分析报告_第37张图片
\Windows,\Program Files,\ProgramData,\AppData目录不会被加密。
BadRabbit勒索病毒分析报告_第38张图片
显示的Readme.txt如下。
BadRabbit勒索病毒分析报告_第39张图片
加密文件的后缀名如下。
BadRabbit勒索病毒分析报告_第40张图片
最后创建线程删除日志文件和名为drogon的计划任务并重启。
BadRabbit勒索病毒分析报告_第41张图片
BadRabbit勒索病毒分析报告_第42张图片
dispci.exe有三个资源文件,第一个是一个bootloader,另外两个是恶意的内核代码。
BadRabbit勒索病毒分析报告_第43张图片
与之前释放的驱动通信以使用diskcryptor中的功能。
BadRabbit勒索病毒分析报告_第44张图片
重启之后显示的界面和TOR页面如下。
BadRabbit勒索病毒分析报告_第45张图片
BadRabbit勒索病毒分析报告_第46张图片
根据对比[4],BadRabbit的代码有13.3%来自NotPetya,4.24%来自zlib。
BadRabbit勒索病毒分析报告_第47张图片
整个流程如下所示[5]。根据作者起的这些名字可以看出他还是个权游爱好者。
BadRabbit勒索病毒分析报告_第48张图片
BadRabbit的代码和NotPetya相比细节上有很多相同之处,各家安全公司基本都认为很可能是相同的攻击者所为。对比表格如下[6]。
BadRabbit勒索病毒分析报告_第49张图片
参考资料:
1.Bad Rabbit ransomware
2.Threat Spotlight: Follow the Bad Rabbit
3.https://github.com/worawit/MS17-010/blob/master/zzz_exploit.py
4.https://analyze.intezer.com/#/analyses/d41e8a98-a106-4b4f-9b7c-fd9e2c80ca7d
5.https://twitter.com/ItsReallyNick/status/923047413618790400
6.Comparing EternalPetya and BadRabbit
7.BadRabbit Technical Analysis
8.BadRabbit: a closer look at the new version of Petya/NotPetya

你可能感兴趣的:(桌面安全)