技术分享-SSnatchLoader恶意软件更新分析

 

SnatchLoader是一种“downloader”类型的恶意软件专门用于将恶意软件分发(或加载)到受感染的计算机系统上。 我们在2017年1月左右发现了该恶意软件的网络攻击活动,该攻击活动一直持续了几个月的时间才慢慢消失。最近,我们的研究人员发现该恶意软件又开始发起新一轮的网络攻击活动了,在此次网络攻击活动中我们捕获到了该恶意软件的更新,并发现该恶意软件正被用于加载Ramnit银行特洛伊木马。此外,该恶意软件还使用了一个称为“地理IP阻止”的有趣功能,以使得只有某些地理区域的计算机才会被感染。到目前为止,我们已经能够确定,至少英国和意大利是该恶意软件攻击的目标,但美国,法国和香港目前还不是。

SnatchLoader命令和控制面板的登录页面

介绍

几个月前,有一个关于关于垃圾邮件广告的Twitter ,当时是一个未知的“downloader”恶意软件,该恶意软件专门用于将恶意软件分发(或加载)到受感染的计算机系统上。根据我们的分析,该“downloader”恶意软件是“SnatchLoader”恶意软件的更新程序,KernelMode.info论坛在2017年1月期间有对SnatchLoader进行简要讨论的相关帖子的。正如论坛上该帖子所述,尽管没有进行详细的代码比较,但SnatchLoader和H1N1 Loader的恶意软件家族似乎有一些相似之处。除此之外,目前我们还没有看到任何关于SnatchLoader恶意软件的进一步讨论,因此本文我们将对SnatchLoader最新版本更新进行分析。

样本

Twitter 中引用的示例在VirusTotal上可以找到。 然而,我们的大多数静态分析工作是在更新版本的“核心DLL”上执行的,该更新程序的最新编译日期为2017-10-04,该DLL在2017年10月11日首次被上传到了VirusTotal上。

Windows API调用

通过我们的分析发现,该恶意软件对Windows API的调用都是在运行时通过函数名哈希的方式进行的,散列算法是ROL和XOR运算的组合,在GitHub上可以找到该散列算法的一个Python代码实现。以下是一些API函数名称及其对应的哈希表:

  • RtlZeroMemory - > 0x6b6c652b
  • CreateMutexW - > 0x43725043
  • InternetConnectA - > 0x1d0c0b3e

静态配置

一个静态配置被加密存储在DLL的PE Section中,目前我们已经看到该Section的两个名称:.idata和.xdata .,具体如下图所示:

Section的第一个DWORD(上图中的0x99a8)用作密钥生成函数的种子,此功能的Python实现在GitHub上可以找到 ,使用RC4算法和生成的密钥可以解密剩余的数据。解密的配置可以分成两个块:第一个块是XML结构的配置数据,具体如下图所示(为了可读性添加了空格):

SRV是命令和控制(C2)服务器的URL,TIME是回连的轮询间隔(单位时间为分钟),NAME是一个活动标识符(02.10可能意味着10月2日),KEY用于加密回连通信。

第二个配置块是一个RSA证书,用于对下载的数据的执行签名检查。

命令与控制

到目前为止,我们观察到的所有C2 URL都是HTTPS的。 但是通过使用调试器,我们可以使用HTTP与服务器进行通信,并以明文方式查看回连的通信网络流量,具体如下图所示:

恶意软件对POST数据进行了四次加密操作:

1.RC4加密,KEY来源于配置文件

2.Base64编码

3.字符替换

4.使用“\ r \ n”分隔符把数据拆分成64字节的数据块

有三个字符被替换了,并且它们都是可逆的:

+ 到 -

/ 至 _

. 到 =

响应数据好像也被加密处理了,但并没有经过4次加密处理。

通信分为四种请求类型:

1.获取动态配置

2.发送系统信息

3.命令轮询

4.发送命令结果

获取动态配置请求

以下是“获取动态配置”请求的纯文本请求数据:


  1. req=0&guid=FCD08AEE3C0E9409&name=02.10&trash=ulbncmamlxwjakbnbmaklvvhamathrgsfrpbsfrfqeqpatisgsfrqbtfrgqfrpbuithtisrctisgsfrqbujtiuistduith 

各个请求字段的含义分别是:

  • req:请求类型
  • guid:bot ID
  • name:来自静态配置的NAME
  • trash: 随机长度的随机字符

响应如下所示:


  1. SUCCESS|<CFG><SRV>https://lookmans[.]eu/css/order.php|https://vertasikupper[.]eu/css/order.php</SRV><TIME>120</TIME><NAME>02.10</NAME><KEY>547bnw47drtsb78d3</KEY></CFG>| 

该响应可以分为两个字段:状态字段和数据部分。这里的状态字段是“SUCCESS”,数据部分被封装在“<CFG>块”中,这个配置在代码中称为DYNAMIC配置。

发送系统信息请求

第二个回连请求发送一堆系统信息,如下所示:


  1. req=1&guid=FCD08AEE3C0E9409&name=02.10&win=9&x64=1&adm=1&det=0&def=0&nat=1&usrn=SYSTEM&cmpn=JOHN-PC&uagn=Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)&sftl=AddressBook|Connection Manager|DirectDrawEx|Fontcore|IE40|IE4Data|IE5BAKEX|IEData|MobileOptionPack|SchedulingAgent|WIC|&prcl=[System Process]\r\nSystem\r\nsmss.exe\r\ncsrss.exe\r\nwininit.exe\r\ncsrss.exe\r\nwinlogon.exe\r\nservices.exe\r\nlsass.exe\r\nlsm.exe\r\nsvchost.exe\r\nVBoxService.exe\r\nsvchost.exe\r\nsvchost.exe\r\nsvchost.exe\r\nsvchost.exe\r\naudiodg.exe\r\nsvchost.exe\r\nsvchost.exe\r\nspoolsv.exe\r\nsvchost.exe\r\ntaskhost.exe\r\nsvchost.exe\r\ndwm.exe\r\nexplorer.exe\r\nVBoxTray.exe\r\nSearchIndexer.exe\r\nwmpnetwk.exe\r\nsvchost.exe\r\nsppsvc.exe\r\nsvchost.exe\r\nmscorsvw.exe\r\nmscorsvw.exe\r\nSearchProtocolHost.exe\r\nmsiexec.exe\r\nsvchost.exe\r\nTrustedInstaller.exe\r\ntaskhost.exe\r\nSearchFilterHost.exe\r\nmsiexec.exe\r\ndllhost.exe\r\ndllhost.exe\r\nmsiexec.exe\r\nsvchost.exe\r\n&trash=ilnyyiittddnoyyiblambllvwgblalakjvufynamblcmambllwugxlwkwjvu\r\n 

req - 请求类型

guid - bot ID

name - 来自配置的NAME

win - Windows版本

x64 - 是64位架构

adm - 是管理员

det - 与反分析相关

def - 检测反分析过程名称

nat - 具有RFC1918 IP地址

usrn - 用户名

cmpn - 电脑名称

uagn - 用户代理

sftl - 从注册表中的Uninstall 键值中列举软件

prcl - 进程列表

垃圾 - 随机长度的随机字符

响应如下所示:

SUCCESS|

命令轮询请求

除了请求号是2之外,命令轮询请求看起来类似于“获取动态配置”请求,一个示例响应如下所示:

SUCCESS | <TASK> 20 | 1 | 2 || MZ ... \ X00 \ X00 </ TASK> |

该响应具有两个字段,第一个字段是状态字段,第二个字段是数据部分。这里的数据可以是零个或多个以下字段的TASK块:

任务ID

命令类型

命令arg1(例如文件类型)

命令arg2(例如哈希值)

命令数据(例如可执行文件或URL)

SnatchLoader的主要功能是下载并加载其他恶意软件系列,因此大多数命令类型和参数都支持以各种方式执行。在这个例子中,命令是首先提取嵌入的可执行文件然后执行提取到的可执行文件。其他一些支持的命令是:

插件功能

更新配置

更新程序

发送命令结果

最后一个回连类型用于发送命令的结果:


  1. req=3&guid=FCD08AEE3C0E9409&name=02.10&results=&trash=pffebxmawlawigdawkifcymbxmawlgebxlawkifcymbxmhebymbxlawkifcy 

除了请求号是3之外,该请求类似于“命令轮询”的请求,并且添加了一个附加参数(results)。 对于此请求,C2没有任何的响应内容。

地理阻止和当前有效载荷

到目前为止,我们发现了该C2服务器的一个有趣的特征,它们似乎正在基于源IP地址执行某种地理阻塞操作。当我们尝试通过美国,法国或香港的TOR或VPN节点与C2服务器进行互动时,服务器会响应“404 Not found”错误。但是,如果我们尝试使用英国和意大利的VPN节点,C2服务器则会对请求进行回应。一般来说,地理阻挡不是一个新的特征,但并不是特别常见的。

在撰写本文时,SnatchLoader僵尸网络正在分发Ramnit恶意软件(一个银行恶意软件),该银行恶意软件的编译日期为2017年10月13日,该样本可在VirusTotal上获得 。

结论

在这篇文章里,我们对SnatchLoader下载器恶意软件进行了研究和分析,该恶意软件最早我们可以追溯到2017年1月,并且在上周我们发现了该恶意软件的更新。目前,该恶意软件正在通过垃圾邮件广告进行传播,并根据地理位置封锁功能对某些特定的地理区域发起网络攻击。在撰写本文时,SnatchLoader正在将Ramnit恶意软件在英国和意大利这两个国家内进行传播。

原文发布时间为:2017-11-06

本文作者:佚名

本文来自合作伙伴51CTO,了解相关信息可以关注51CTO。

时间: 2024-10-26 05:52:28

技术分享-SSnatchLoader恶意软件更新分析的相关文章

2016年手机恶意软件演变分析报告(二)

本文讲的是2016年手机恶意软件演变分析报告(二), 统计 在2016年,手机恶意安装软件包数量大幅增长,达到8,526,221个--是上一年的三倍.作为比较,从2004年到2013年,我们检测到超过一千万个恶意安装软件包;而在2014年,这个数字是近250万个. 从1月初到2016年12月底,卡巴斯基实验室记录了近4000万次的手机恶意软件攻击,并保护了4,018,234个用户的Android设备(2015年为260万). 2016年卡巴斯基实验室解决方案阻止攻击的数量 2016年卡巴斯基实验

2016年手机恶意软件演变分析报告(一)

本文讲的是2016年手机恶意软件演变分析报告(一), 2016年的几个数字 在2016年,卡巴斯基实验室检测到以下内容: 8,526,221个恶意安装包 128,886个手机银行木马 261,214个移动勒索软件木马 2016年的演变趋势 使用超级用户权限的恶意程序的流行度有所增长,主要是广告木马. 恶意软件通过Google Play和广告服务进行分发. 出现了绕过Android保护机制的新方法. 手机勒索软件的数量有所增长. 网络犯罪分子活跃于开发手机银行木马. 使用超级用户权限的恶意程序 今

【视觉目标跟踪最高峰】VOT Challenge 2017 亚军北邮团队技术分享(附代码)

视觉跟踪领域国际顶级赛事 Visual-Object-Tracking Challenge (VOT) 2017年结果出炉,结合传统滤波及深度学习的方案取得最佳成绩.本文是第二名北京邮电大学代表团队的技术分享.他们基于滤波的框架,抛弃传统特征,只使用CNN特征,减少了特征冗余,缓解了模型过拟合,使追踪器在速度和精度上都有不小的提高.代码分享链接:https://github.com/he010103/CFWCR.git 随着深度学习在计算机视觉方面大放异彩,近几年物体追踪也得到了飞速的发展.物体

「感知开源的力量」-APICloud Studio开源技术分享会

问题描述 2014.9.15中国领先的"云端一体"移动应用云服务提供商APICloud正式发布2015.9.15,APICloud上线一周年,迎来第一个生日这一天,APICloud举办APICloudStudio开源技术分享会我们将对APICloudStudio进行技术开源的全面解析,APICloudStudio遵循Aptana3.0GPL开源协议,源代码以无条件继承GPL开源协议的方式贡献给业界.我们相信,通过开源技术分享,我们将和广大开发者一起,不断扩展主流HTML开发工具Apta

通用社区登陆组件技术分享(开源)中篇:OAuth 登陆组件流程及组件集成方法

上节内容:通用社区登陆组件技术分享(开源)上篇:OAuth 授权登陆介绍   本节包括以下内容: 1:第三方社区账号登陆的授权流程 2:OAuth2 组件的下载及web.config配置 3:OAuth2 组件的5行代码编写流程 4 :总结与下节内容预告     一: 第三方社区账号登陆的授权流程 1:首先从这里开始:用户进入登陆界面   2:用户点击用新浪微博或QQ登陆,系统跳到第三方授权页面,(QQ示例授权界面) 3:确定授权后,第三方跳转返回你的回调页(在应用里设置),通常仍是系统登陆页面

DataV 2015双十一媒体大屏回顾&amp;技术分享

今年在多个部门共同努力下,阿里集团在2015水立方双十一媒体中心立起了一块宽21米,高10米的LED大屏.DataV 数据可视化小组有幸在这么大一块画布上尽兴创作,并且在这个项目中小组第一次尝试使用了DataV数据可视化引擎来搭建所负责场景,这样的机会实属不易,所以想把其中的点点滴滴和大家分享. 背景简介 先呈上现场效果的几段视频,热个身. 今年的媒体大屏幕分为三大板块,分别是总览大屏,全球大屏,城市大屏.每一个大屏幕都有自己的主题,总览大屏保留了2014年基本的信息点,全球屏是对于今年全球狂欢

价值1207亿的技术分享,你不能错过“2016双11技术创新”的九大理由!

双11的剁手党们.阿里的粉们以及广大的技术精英爱好者们,你们必须知道阿里又要"发车"了: 本次技术论坛是一场全面解读双11背后技术创新的饕餮盛宴,特别邀请了亲历2016年双11的8位阿里技术大V:从承载亿级用户大流量的网络自动化技术,到资源充分利用的超大规模Docker化:从支撑最大规模在线交易的实时和离线计算能力,到人工智能在搜索和推荐场景下的创新应用:从颠覆购物体验的VR互动,到背后千人千面的商铺个性化:从应对前端极限挑战的"秒开项目",到绚烂媒体大屏背后全面的

大牛讲堂 | 深度学习Sequence Learning技术分享

雷锋网按:本文作者都大龙,2011年7月毕业于中科院计算技术研究所:曾任百度深度学习研究院(IDL)资深研发工程师,并连续两次获得百度最高奖-百万美金大奖:现在Horizon Robotics负责自主服务机器人.智能家居以及玩具方向的算法研究与开发,涉及深度学习.计算机视觉.人机交互.SLAM.机器人规划控制等多个领域. 深度学习独领风骚 人工智能领域深度学习独领风骚自2006 年Geoffery Hinton等在<科学>( Science) 杂志发表那篇著名的论文开始, 深度学习的热潮从学术

DockOne技术分享(一二五):深信服容器云的负载均衡实现

本文讲的是DockOne技术分享(一二五):深信服容器云的负载均衡实现[编者的话]此次重点讲的是在深信服容器云项目中的负载均衡方案的原理与实现.同时,因为我们投入的人力有限,人员的水平也有不足,但是借助Docker与Kubernetes等开源技术的发展,我们基本上达到了容器云平台中应用服务的负载均衡. [3 天烧脑式 Docker 训练营 | 上海站]随着Docker技术被越来越多的人所认可,其应用的范围也越来越广泛.本次培训我们理论结合实践,从Docker应该场景.持续部署与交付.如何提升测试