专业提供彩票计划的网站!

奖多多彩票|jdd.com

当前位置: 奖多多彩票 > jdd.com >

例Bootkit级挖矿僵尸网络隐蜂”来袭:金山毒霸截

时间:2018-05-31 18:06来源:未知 作者:admin 点击:
币等数字货币正经历着全球热潮近两年比特币、以太币、门罗,着虚拟货币的价格攀升逐步上涨挖矿类病毒木马的感染量也随,觉和行动力令人惊叹黑产团伙的商业嗅,种网页挖矿变现

  币等数字货币正经历着全球热潮近两年比特币、以太币、门罗,着虚拟货币的价格攀升逐步上涨挖矿类病毒木马的感染量也随,觉和行动力令人惊叹黑产团伙的商业嗅,种网页挖矿变现平台层出不穷类似“CoinHive”这,利用web漏洞植入挖矿代码数百万级的网站被黑产团伙;各类挖矿木马异常活跃在去年我们可以看到,到服务器、数据库弱口令爆破从利用“永恒之蓝”漏洞传播,大Web框架漏洞到IE/Flash 0day挂马传播从Struts2、Weblogic、Jboss等各,摄像头等嵌入式设备都被黑产团伙盯上甚至包括被频繁曝光漏洞的路由器、,全球网络安全攻击事件的最前线各类挖矿木马可以说一直活跃在;的引诱驱使下在挖矿暴利,牌僵尸网络都开始纷纷转型加入挖矿大军之前部分用于传播垃圾邮件、敲诈者的老,甚者更有,商也都开始沉沦堕落个别传统正牌软件厂,信天翼客户端挖矿后门”等安全事件中就可以略窥一二从我们去年挖掘曝光的“看看影音云控挖矿”、“电,张地说不夸,类木马病毒的爆发元年2017年堪称挖矿。

  户系统存在疑似挖矿木马活动的威胁线索近期金山毒霸安全实验室监控到部分用,溯源分析经过逐层,kit级挖矿僵尸网络被揭开神秘面纱一个已经成型并走向活跃的Boot,合也将碰撞出一些不一样的火花Bootkit与挖矿木马的融。架设计到代码细节处理上都非常完善本次捕获的Bootkit样本从框,抗等各方面都达到了一个全新高度在隐蔽性、兼容稳定性、反分析对,专业程度也为近年所罕见病毒代码的复杂程度、。的内部项目代号为“Mellifera(蜜蜂)”从样本模块的字符串信息中发现该Bootkit,t木马被命名为“隐蜂”所以本次的Bootki,来说概括,技术特点主要体现在以下几个方面“隐蜂”Bootkit木马的:

  抗分析检测1) 对,性很强隐蔽。otkit木马近乎极致在隐蔽性上“隐蜂”Bo,码间隙的Shellcode中转实现隐藏内核模块的挂钩地址都通过NT内核模块代;过滤机制互相守护两套磁盘驱动劫持;签名特征屏蔽部分安全软件通过镜像回调检测pdb、;erTool等常见的ARK工具针对PCHunter、Pow,IRP请求的返回数据挂钩其核心驱动过滤,的各类回调地址过滤掉自身注册;层工作模块中在木马的R3,时检测当前运行环境病毒也会通过脚本实,抓包软件或者安全软件一旦发现ARK工具、,务管理器甚至是任,结束挖矿活动病毒都会立即,地躲藏起来小心翼翼;信升级方面在C&C通,P加密协议采用SST,GA动态生成并且使用D。ode几乎没有太多特征线索除了内存中的shellc,业安全人员即便是专,it都是一件很有挑战性的工作检测分析“隐蜂”Bootk。构设计灵活2) 架,业度很高复杂度专。析过程中看从我们的分,还是细节处理都非常专业不管是整体框架的设计,础机制设计方面比如内核模块基,口非常灵活多种回调接,展模块的动态加载卸载而且在内核层支持扩,充内核功能方便随时扩;RFS自定义文件系统和NE插件格式还有用于存储病毒模块和配置信息的M;脚本机制增加了病毒灵活性再比如R3层集成的LUA,场景动态调整挖矿资源占用参数病毒还会根据机器配置和使用;的感受最直观,核模块、R3插件以及配置文件多达50+我们从“隐蜂”病毒中解压出来的各类内,复杂程度可见一斑病毒代码结构的。任稳定性很好3) 系统兼。ootkit技术的重要指标系统兼容性一直都是衡量B,it是非常有技术挑战性的一件事情完成一款兼容度极高的Bootk,析过程来看从我们的分,挂钩点特征搜寻和代码细节处理上都非常完善“隐蜂”在系统引导过程中的挂钩时机选择、,ows操作系统版本支持主流wind,6/X64架构同时兼容X8。看到一些Bootkit前辈的身影“隐蜂”Boot劫持代码中也可以,的集大成者堪称后辈中。

  控数据来看从我们的监,木马变种从3月初开始测试传播本次的“隐蜂”Bootkit,蔽性和对抗分析能力得益于其强悍的隐,不曾被外界发现曝光到至今的三个多月都。.1迭代至目前的1.x病毒的项目版本号也从0,流氓捆绑的传播小高峰后在经历了几轮网页挂马和,已经逐渐成形该僵尸网络,感染用户50w+预估目前全网的。术利用上也都非常有特点病毒母体在传播渠道和技,穿透主流安全软件的防御体系通过白利用和系统漏洞组合,会继续展开分享后续有机会我们。

  点题外话顺便说,的攻击活动并不是首次被发现“隐蜂”Bootkit木马,活跃过一段时间在2017年,能模块相对简单早期变种的功,浏览器导航主页主要用于劫持,到并命名为“隐魂”木马友商安全团队曾经捕获,侦察力最强木马”称之为“史上反,告中没有任何IOC信息但是比较惋惜的是分析报,被外部溯源分析的特征线索并且抹去了几乎所有可能,一直没有被外界熟知所以在较长时间内,tkit类木马进行横向对比时意外发现我们也是在本文发布前对近两年的Boo,尊重出于,kit变种命名为“隐蜂”我们延续传统将此Boot。产任重而道远对抗网络黑,量总是有限的单个团队的力,的开放共享方面在基础安全情报,以做地更多一点希望我们都可,失去了它本来的意义否则很多披露报告就。样本和相关技术细节会对安全友商开放本次发现的“隐蜂”Bootkit,发送邮件和我们联系可以通过官方邮箱。5在分析取证过程中给予的极大支持配合最后还要感谢下用户@guying19,说也是一种莫大幸运这样的用户对我们来。

  上图如,+rootkit+plugin”三层架构按照Bootkit类木马传统的“boot,个章节进行讲解我们也会分为3,劫持”和“内核Rootkit”两个关键部分上篇部分主要包含“隐蜂”木马的“Boot。免有疏漏之处成文仓促难,言指正欢迎留。

  BR引导代码的感染处理比较有特点“隐蜂”bootkit木马对M,ootkit不同的是与之前其它MBR类B,代码基础进行Patch它通过在正常MBR启动,分区表项劫持活动,Boot Record)引导系统启动的正常流程打断原本应该跳转到PBR(Partition ,病毒代码上继续执行引导至磁盘末尾的。

  区表后劫持分,处读取1个扇区到0x7C00病毒从磁盘末尾病毒代码起始,否为0xAA55校验扇区末尾是,步的Loader代码通过验证则继续下一个,复BP指针反之则恢,常引导启动保证系统正。

  段所诉如上,到0x7C00继续执行loader代码被拷贝,ode代码数据拷贝到内存进行解码、加载布局和参数填充这部分loader代码主要负责将磁盘末尾的BootC,的MBR引导代码备用并且恢复7C00处。入bootkit经典核心部分完成这些以后病毒代码流程就进,直到最终注入NT内核从挂钩INT13中断。代码不涉及技术核心部分解码和加载布局的这部分,显琐碎流程略,述细节不再赘,布局如下图所示关键步骤和内存:

  6位)的挂钩触发以后BootMgr(1,次被病毒代码接手启动流程控制权再,0h基址处定位代码段随后从0040000,擎对特征码进行递进搜索通过内嵌的微型反汇编引,2位)的关键位置进行挂钩继续对BootMgr(3,pLoadPEImage首次被挂钩的函数为Img!mageWithBiasLdrRelocateI,索过程如下特征码搜:

  thBias被调用处的call地址进行Patch病毒代码对LdrRelocateImageWi,到9AA7Eh将代码流程劫持;的模块功能和挂钩点的调用堆栈分析通过对BootMgr(32位),此处作为挂钩点的原因就不难发现病毒选定:

  .exe的挂钩处理上在对winload,oadPEImage依旧选用了ImgpL!geWithBias这个调用点LdrRelocateIma,程都是相同的特征码搜索过,ad架构不同分别处理另外针对winlo,6和X64系统保证兼容X8。处的挂钩通过此,toskrnl.exe时可以再次截获代码执行权病毒代码在winload.exe加载系统内核n。不再赘述此处细节,下图如:

  图所示如上,load当win!ithBias处的挂钩代码被触发时LdrRelocateImageW,函数9AA8Ch处流程被引导到病毒,进行二次挂钩跳转在这里病毒代码,前模块的镜像基址挂钩函数保存了当,前函数栈内容并通过覆写当,load等win!hBias原函数执行完再次获取触发控制LdrRelocateImageWit,后hook完成调用。

  InitSystem当NT内核调用Io!eBootDrivers时IopInitializ,hellcode被触发之前区段缝隙填充的s,zeBootDrivers原地址填写到堆栈这里病毒代码首先将IopInitiali,数正常调用保证原函;恢复该处的挂钩然后关闭写保护,ok函数地址填写堆栈最后将下一阶段的ho,vers初始化完毕以后这样在BootDri,核代码控制权再次拿到内,函数返回地址最后填充原,hellcode加载执行后续s。如下图过程:

  ellcode开始从上图末尾的sh,kit内核驱动模块的加载过程病毒代码就开始进入boot,hellcode跳转处理这部分代码包括三层的s,后续核心模块的代码数据最终从磁盘末尾的读取,统(Mixed ROMFS)镜像解密解压处理后得到自定义文件系,86/bootmgr”(变异PE)装载并执行解析出内核loader模块“/bin/i3。不再赘述细节限于篇幅这里,e跳转过程描述如下图三层shellcod:

  oot启动劫持阶段”结束至此“隐蜂”病毒的“B,到进入到内核“Rootkit”阶段病毒代码从MBR劫持一路挂钩跳转直,真正的内核模块后续将开始加载,盘数据保护回写以及杀软ARK对抗等操作完成Ring3插件主模块注入、病毒磁。

  启动劫持阶段”结尾在前段“Boot,义文件系统(以下简称MRFS)来存储配置信息和插件模块我们提到了病毒代码使用了“Mixed ROMFS”自定,E格式变异而来的NE格式而且插件模块也使用了从P,窥探出“隐蜂”病毒幕后团伙的专业程度从这些精心设计的系统格式也可以从侧面。后续的分析过程比较重要这两类文件结构对我们,作插件中都会多次使用到在最后的Ring3层工,kit阶段”真正开始之前所以在“NT内核Root,下这两种文件格式我们先来简单了解。

  inux系统下常见的ROMFS等文件系统“隐蜂”病毒使用的“MRFS”类似于l,料描述过“MRFS”但目前没有找到公开资,病毒作者自定义的一套文件系统格式所以我们暂时认定“MRFS”是。推出的关键字段和结构如下图从病毒的文件解析代码中反:

  像头、文件信息头和文件数据三大部分“MRFS”的文件结构主要包括镜,一个层级结构文件信息头是,信息和对应文件块偏移信息主要包含了文件路径层级。、配置信息和注入R3的主模块等文件这个FS镜像包含了后续所有内核模块,解析结果如下文件目录结构:

  块插件格式相对简单另外的“NE”模,异的PE文件格式可以看作一种变,头和NT头标记、区段名称等信息病毒作者抹去了PE文件的DOS,还原为标准PE文件进行修复以后即可。代码入口或者外层调用处在“NE”模块插件的,定位表修复填充实现动态加载一般通过导入表IAT和重。

  gr”模块是一个loader模块“/bin/i386/bootm,/bin/i386/ kernel”主要负责解析加载真正的内核核心模块“,T表完成自加载过程填充重定位表和IA,中解析出kernel文件随后从“MRFS”镜像,表处理后直接调用进行重定位和导入。如下图过程:

  毒Rookit阶段的核心模块“kernel”是“隐蜂”病,的设计架构中从模块整体,ws内核方面的具备非常丰富的开发经验可以看出“隐蜂”病毒作者在Windo。计提供了镜像通知回调、磁盘过滤回调病毒作者在“kernel”模块中设,一系列基础框架机制内核扩展模块加载等,的服务接口并导出相关,K对抗以及R3插件主模块的注入等关键操作最终完成病毒磁盘数据回写保护、杀软AR。机制设计也非常灵活另外内核扩展插件,加载卸载支持动态,展升级内核功能方便病毒随时扩。模块功能比较复杂“kernel”,用上下文去分析说明部分接口需要结合调,结为以下几个关键点但核心功能可以总:

  ver创建自定义的核心驱动对象1) IoCreateDri,随机GUID符号链接为,核心功能给Ring3层进行调用该驱动对象用于导出内核模块的。特点的是比较有,其实是代理中转函数驱动对象的派遣函数,个链表对象通过维护一,制派遣函数对象指向自定义的控,为了后期扩展更灵活这样的设计可能是。功能比较繁杂这部分的接口,处结合上下文进行说明后续我们会在R3调用。

  ifyRoutine注册镜像加载通知回调2) PsSetLoadImageNot,调函数不同的是与普通的镜像回,拷贝到NT内核模块代码段末尾空隙病毒将一段shellcode代码,de引导真正的回调函数由这段shellco,隐藏到NT内核镜像中这样将回调函数地址;样是一个代理中转函数另外此处的回调函数同,知回调函数数组维护一个镜像通,机制外实现灵活扩展这样可以在系统原有,内核扩展模块使用导出接口给其他;

  Ring3的镜像加载回调函数最后向链表中添加了负责注入,ne并通过APC机制注入svchost进程在选择合适时机创建WorkerRouti。Loader模块“stub.bin”病毒代码会映射目标地址空间并预加载,关键参数填充加载,em”(核心模块)等包括“subsyst,Ring3层工作阶段最终将病毒流程引导到。技术细节我们会在下一章中详细阐述后续Ring3层的工作模块加载和。

  是磁盘对象劫持相关对抗机制3) 另外一个重要功能就,存放病毒代码数据的磁盘扇区主要用于保护病毒MBR和,进行回写感染并在关机时机。设计了两套劫持过滤机制病毒作者在这里巧妙地,派遣函数中互相守护并且在这两套劫持的,被另外一处劫持重新恢复摘除掉一方的劫持挂钩会。

  对象劫持”技术一类是“磁盘,动对象并填充关键字段结构申请内存构造虚假设备/驱,设备对象扩展搜寻磁盘上层,充为前面构造的虚假设备对象再将其保存下层对象的成员填,动发送的所有IRP请求这样就可以过滤磁盘驱,J_SCSI”请求进行过滤处理外劫持派遣函数中除了对“IRP_M,OWER”(关机通知)的处理还有针对“IRP_MJ_P,其他内核扩展模块和R3这里主要是提供接口给,关代码进行关机回写方便对病毒MBR相;

  一类另外,“IRP_MJ_SCSI”派遣函数劫持磁盘端口驱动(ATAPI)的,回调的机制类似与镜像加载通知,e头拷贝到NT内核代码段末尾实现隐藏这里同样将劫持函数的shellcod,中转链表实现灵活扩展并且也是通过代理函数。

  和“mprot.kext”完成内核对抗扩展功能4) 加载内核扩展模块“guard.kext”。先说明的是这里需要首,块加载机制中在内核扩展模,要的功能扩展接口“mpsi.dll”“kernel”模块导出了一个比较重。”模块实现的镜像回调、磁盘过滤等机制这个接口主要封装了前面“kernel,导出功能函数一共22个,的形式引入“mpsi.dll”内核扩展模块kext以序号导入,理IAT的时候进行了特殊处理在动态加载kext扩展模块处,到“kernel”模块的一个代理中转函数上将所有“mpsi.dll”的导入函数引导。

  配置文件为”/etc/register.js”“guard.kext” 内核扩展模块对应的,块提供的接口注册镜像加载通知回调该模块通过前面“kernel”模,、数字签名、Hash等特征过滤对加载的驱动镜像进行PDB名称,ch驱动文件入口点满足特征的则pat,UFFICIENT_RESOURCES直接返回错误状态码STATUS_INS,与ARK工具类软件实现对抗安全软件。

  件和ARK工具驱动加载外除了上述直接对抗安全软,始文件名等特征计算Hash匹配病毒还会对加载镜像的PDB、原,针对主流的ARK工具我们分析认为主要是,mpleteRequest等关键函数病毒会挂钩ARK工具驱动中IofCo,IRP请求进行过滤对ARK工具交互的,镜像加载回调和磁盘驱动派遣劫持等函数地址劫持隐藏之前“kernel”模块注册的,erTool等常见的ARK工具检测发现异常挂钩防止专业安全人员通过PcHunter、Pow。

  是“mprot.kext”另外一个关键的内核扩展模块,c/sandbox.js”其对应的配置文件为”/et,R和磁盘末尾BootCode该模块主要负责保护病毒MB,MJ_POWER”过滤回调接口注册保护函数通过“kernel”模块提供的“IRP_,毒MBR和BootCode在系统关机时重新检查回写病。两套关机回调函数这里病毒注册了,核扩展自身一套用于内,g3层触发保护一套用于Rin。

  此暂告一段落上篇的分析到,层的挖矿模块工作机制展开分析下篇中我们会针对Ring3,期待敬请。

本文地址:http://www.ghzhy.com/jdd_com/2018/0531/627.html

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容