SSnatchLoader恶意软件更新分析

VSole2017-11-06 21:55:44

SnatchLoader是一种“downloader”类型的恶意软件专门用于将恶意软件分发(或加载)到受感染的计算机系统上。

 

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恶意软件在英国和意大利这两个国家内进行传播。

downloader
本作品采用《CC 协议》,转载必须注明作者和本文链接
SnatchLoader是一种“downloader”类型的恶意软件专门用于将恶意软件分发(或加载)到受感染的计算机系统上。我们在2017年1月左右发现了该恶意软件的网络攻击活动,该攻击活动一直持续了几个月的时间才慢慢消失。最近,我们的研究人员发现该恶意软件又开始发起新一轮的网络攻击活动了,在此次网络攻击活动中我们捕获到了该恶意软件的更新,并发现该恶意软件正被用于加载Ramnit银行特洛伊木马。此
MHDDoS是一款功能强大的DDoS服务器/站点安全测试工具,该工具包含56种技术,可以帮助广大研究人员对自己的服务器或网站执行DDoS安全测试。?源码安装该工具基于Python开发,因此我们首先需要在本地设备上安装并配置好Python环境。
奇安信威胁情报中心在日常威胁发现过程中发现一个专门针对金融、证券、软件、游戏等行业进行攻击的APT团伙,主要目的为敛财和发起供应链打击,盗用了大量的证券服务和软件公司的白证书,样本较为轻量化,外加带有窃取而来的白签名,免杀效果极好,较难发现。
今年 9 月开始传播的 DarkGate 恶意软件已经发展成为世界上最先进的网络钓鱼攻击行动之一。
可扩展和语义保持的反病毒引擎标签挖掘
「二维码 生成器」在线的二维码生成器。最方便的用法是把当前的页面生成二维码,方便手机扫码快速访问。「Github 加速器」一键加速 Github 访问速度,当 Github 访问慢的时候点击右键直加速,同时支持多个加速镜像。「crxMouse Chrome Gestures」对于国产浏览器自带鼠标手势的功能,真觉得很方便!「Clear Cache」点击图标即可清除缓存、cookie 等,开发必备!「Postman」相信开发者朋友一定知道这款插件,非常方便的调用和调试 API 接口。
完成前2步还不够,病毒一般会通过一些自启动项及守护程序进行重复感染,所以我们要执行闭环兜底确保病毒不再被创建。将主机上的病毒项清除干净后,最后就是进行系统加固了,防止病毒从Web再次入侵进来。走完这4个环节,才能算是一个应急响应流程的结束。01 识别现象第1个环节要求我们通过系统运行状态、安全设备告警,发现主机异常现象,以及确认病毒的可疑行为。
据报道,攻击者多年来一直以东南亚的网络赌场为目标。在目前已发现的DiceyF事件中,还没有观察到直接的经济动机或现金盗窃的证据。相反,TrendMicro研究人员此前报告的事件显示,客户PII数据库被窃取和源代码被窃取。攻击者目前的真正的攻击动机仍然是一个谜。.NET下载程序部署与PlugX部署同时出现,都是通过相同的数字证书签署的。启动完成后,协调器每20秒向C2服务器发送一次运行报文。
根据 Statista 发布的预估报告,全球游戏市场在 2025 年预估会达到 2688 亿美元。这也让游戏行业成为黑客重点攻击的目标,让数十亿玩家处于他们的阴影中。作为最畅销的视频游戏之一,Minecraft 自然成为了不少恶意黑客执行攻击的诱饵。
完成前2步还不够,病毒一般会通过一些自启动项及守护程序进行重复感染,所以我们要执行闭环兜底确保病毒不再被创建。将主机上的病毒项清除干净后,最后就是进行系统加固了,防止病毒从Web再次入侵进来。走完这4个环节,才能算是一个应急响应流程的结束。
VSole
网络安全专家