网硕互联技术交流社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3462|回复: 0

一个利用'永恒之蓝'漏洞传播的挖矿程序分析

[复制链接]

主题

帖子

0

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
0
发表于 2017-9-12 13:44:26 | 显示全部楼层 |阅读模式

  背景介绍
  近日,渔村安全团队追踪到一个利用永恒之蓝漏洞传播的挖矿程序,其具备高度的模块化和较强的传播能力,在短短数日就感染了数万台用户电脑。针对该突发情况,渔村安全团队迅速组织应急工作,最终使得目前的感染情况受到控制,下文为样本分析。
  感染量
  从微软发布ms17-010(永恒之蓝漏洞)的修复补丁到现在已经过去四个月了,相继爆发的利用该漏洞传播的WannaCry,Petya勒索病毒更是给我们上了一课。但目前来看,还是有不少用户没有及时更新补丁或者做相应的缓解措施,同时Shadow Brokers把从Equation Group偷来的全套针对该漏洞的利用工具开源,这使得人人有了一套核武器,导致发动攻击的门槛极度降低。综合上述原因,可以推测该漏洞在很长一段时间之内,还会有不同程度的活跃。目前,根据全网监控数据可知,各地区感染该例样本量占比情况如下:

757314_zip53r3am8t1367.png


  样本分析
  1.感染症状
  该样本分为两个模块,分别为挖矿程序与永恒之蓝攻击程序,感染后的用户机器,通常会有如下症状:
  1.  监听26571端口

757314_ckzjynhec0lyl14.jpg


  2.存在C:\Windows\IME\Crypt文件夹

757314_ez7ohxb3utw9owl.jpg


  3.访问其他主机的445端口

757314_2p9qixskgtfdvbl.jpg


  2.传播方式

757314_kvfoudmgotfc0oz.png


  如上图所示,是整个样本的攻击流程图,受害者之间的样本投送分工为:
  ·         攻击方,挖矿程序搭建web服务器(端口26571),等待特定的GET请求
  ·         被攻击方,payload访问攻击方提供的web服务器,通过GET请求得到样本(含挖矿程序和永恒之蓝EXP程序)
  3.样本特性
  通过前文已知,该样本是分为挖矿程序与永恒之蓝攻击程序,下面针对不同模块进行分析。
  3.1挖矿程序
  挖矿程序的调用者是内核后门注入到lsass.exe中的payload所生成并调起的。3.1.1 创建计划任务程序在启动时,创建计划任务,达到开机自启动的目的,命令如下:
  schtasks.exe /create /TN \Microsoft\Windows\UPnP\Services /RU SYSTEM /TR %WinDir%\IME\Microsoft\svchost.exe /SC ONSTART

757314_sprvco8bmr0pscx.jpg


  3.1.2 释放挖矿程序创建线程,完成从资源bin中释放挖矿程序到系统根目录下功能,文件名称为ServicesHost.exe

757314_fazkssn10ml7cbf.jpg


  之后传递参数-o stratum+tcp://xmr.pool.minergate.com:45560 -u dashcoin@protonmail.com -t 1 --donate-level=1执行,同时尝试解析系统根目录下的settings7283.dat数据文件。
  3.1.3 开启WEB服务创建线程,搭建一个WEB服务器,提供文件下载功能,方便被攻击方快速下拉恶意代码

757314_6ui5eh0qhqq4lko.jpg


  其中,回调函数Url_parser只处理两种请求,分别为
  ·         POST方式接收到的Hell World?
  ·         GET方式接收到的/dnsclientprovider_userdata.mof
  当POST方法得到的请求数据是Hell World?,则当前挖矿进程会退出,逻辑如下:

757314_47btk24wa044sdn.jpg



757314_fka9c6zjlzxrfvz.jpg


  其中dnsclientprovider_userdata.mof文件目前没有捕获到,但根据之后的payload的请求数据来看,该文件是一个ZIP包,里面包含了挖矿程序和攻击程序,故达到了利用漏洞传播的效果。3.1.4 执行攻击程序攻击信息上报开启新线程,执行C:\Windows\IME\Microsoft\spoolsv.exe,实为payload从攻击方下拉后解压生成的攻击程序。开启新线程,每隔900s向服务器上报信息。

757314_aq38we3uyd44ikx.jpg


  3.2永恒之蓝攻击程序
  3.2.1 攻击流程攻击程序执行由挖矿程序进行调起,运行后,首先释放自身资源bin到%\\IME\\TMP20D1.TMP中,之后进行Unzip操作,解压缩完成后的文件列表如下:

757314_c1laxad33m0bq1u.jpg


  其中核心模块如下:
  文件名称
  功能说明
  svchost.exe
  永恒之蓝攻击程序(Eternalblue-2.2.0.exe)
  spoolsv.exe
  doublepulsar后门利用程序(Doublepulsar-1.3.1.exe)
  svchost.xml
  永恒之蓝攻击程序配置文件
  spoolsv.xml
  doublepulsar配置文件
  x64.dll
  64位Payload   DLL文件
  x86.dll
  32位Payload   DLL文件
  接下来,读取xml配置信息、Payload程序到内存,方便之后攻击时进行参数配置,然后扫描开放445端口,但未开放26571端口的机器(防止重复感染),如下:

757314_kvheq39vd648sj6.jpg


  得到扫描结果之后,格式化Eternalblue需要的xml配置信息(ip即可),之后创建进程,将Eternalblue执行结果重定向到stage1.txt中,方便stage2阶段的筛选。

757314_awn43laj79p91x7.jpg


  从stage1.txt中可以得到攻击是否成功,以及目标机器的CPU架构信息,通过查找指定关键字,得到需要的信息,例如:得到目标机器平台是否为x86(x64原理相同)

757314_vlhtzixacmwkjym.jpg


  实际stage1.txt的内容

757314_ffmd3g1336nhd8u.jpg


  当查找成功之后,构造Doublepulsar利用工具的xml信息spoolsv.xml,同时通过特征码定位payload中需要填写的配置参数(攻击方ip,payload通过该ip访问web服务,下拉样本程序)

757314_4087prpjh3r87yj.jpg


  所有工作完成之后,调用Doublepulsar执行后门利用(通过内核级注入payload到lsass.exe进程(默认进程名))

757314_h00bffnsn1qg9gx.jpg


  以上就是攻击程序的执行流程,接下来是payload的功能分析。3.2.2 payload功能payload分为x64.dll和x86.dll,完成功能相同,这里以x86.dll为例进行分析。其导出函数有Func1,Func2,代码相同,如下

757314_6jjdspd1w6o8pfp.jpg


  访问攻击端架设的WEB服务器,下载dnsclientprovider_userdata.mof(若本地系统根目录存在该文件,则先删除),然后进行解压,同时将解压后的下列文件移动到C:\Windows\IME\Microsoft\下

757314_uwgpagjm8x32g59.jpg


  最后,执行挖矿程序(此处svchost.exe是挖矿程序)

757314_8yjo6mz5fc2clwg.jpg


  至此,第二个用户已经完成感染。
  总结
  该样本所使用的绝大多数都是开源模块,其中WEB服务器使用开源项目mongoose,挖矿程序使用开源项目https://github.com/xmrig/xmrig,永恒之蓝漏洞利用工具地址https://github.com/Eitenne/EternalPulse
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|网硕互联技术交流社区

GMT+8, 2024-4-19 23:14 , Processed in 0.224836 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表