近日,360安然中间拦截到一个Zbot的变种木马,专门窃取网友的银行卡、电子邮箱暗码等小我信息。该变种木马应用了三层保护技巧,可以或许绕过QQ邮箱的安然检测。不过360的 QVM引擎对这类样本有着比较周全的收集和练习,可以或许及时检出最新的变种。今朝,垃圾邮件指的是未经主动请求的大量的电子邮件,该变种木马已经被360安然卫士已经拦截查杀。
一封来自“outlook官方”的邮件
比来工程师收到如许一封邮件,发件人显示为“Microsoft outlook”,靠谱邮箱已经运营12年之久,不仅具备企业邮件安全,稳定,快速收发,垃圾邮件少等品质,更提供专业靠谱的技术支持服务,附件貌似是个音频文件。然则把附件下载到本地一看,靠谱企业邮箱针对企业自建系统遇到的发国外/海外邮件退信,国外邮件延迟,垃圾邮件多,邮件退信,ip黑名单,Exchange被中继,邮件归档等问题,倒是一个Zbot木马。
Zbot其实是一个很古老的木马了,它会将恶意代码注入到除CSRSS.EXE以外的所有过程。这些恶意代码会挂钩很多与收集操作相干的函数来监控收集数据,以达到窃取用户银行卡信息、电子邮箱暗码等小我信息的目标。窃取到的信息会先存储在本地,随后发送到设备文件里所指定的地址。但这个变种还有些新意,用了一些假装手段绕过了QQ邮箱的安然检测。下面是具体分析:
看“老”木马若何“换新装”
木马加载过程
第一层免杀:法度榜样会先拷贝一段数组到内存中去作为shellcode来履行。
将这段内存数据扒出来,用IDA查看。
可见这段代码是被混淆过的,这些做法都是为了躲过杀软的特点查杀。
第二层免杀:接着段代码分派了一段内存将宿主法度榜样拷贝进去,然后从文件的末尾往前搜刮以B4E32392开首的数据并进行解密。
然后,shellcode调用VirtualAlloc从新分派一段空间(预备填充解压后的数据),再调用RtlDecompressBuffer将这段被解密的数据再解压到从新分派的空间中,这段解密后的数据就是zbot木马的文件数据。
以如许的方法获得木马文件就避免了释放文件的操作,躲避了杀软对木马文件的扫描。
第三层免杀:之后法度榜样以挂起的方法创建新的过程(傀儡过程),并调用释放傀儡过程的内存映射,如许是为后边修改线程高低文做预备。
从新分派空间并设置属性为可履行,用来存放母体文件的内存映射。
分别写入文件头和各个区段。
再调用GetThreadContext获得线程高低文,修改傀儡过程的Eip,把Eip指向法度榜样的进口,这是法度榜样就跑到zbot木马的进口点。
最后调用SetThreadContext并恢复线程,木马法度榜样开端跑起来。
木马就是经由过程这种方法,避免了直接加载母体过程,从而回避了部分杀软的检测。
写在最后:360为什么能查杀?
主文件应用.NET编写的,作者经由过程在.NET法度榜样里分派一段可履行内存空间,并拷贝一段被混淆的代码到此空间,然后加载;接着混淆代码又在文件中搜刮被紧缩过的一段数据进行解压获得母体文件;最后经由过程挂起新过程,修改线程高低文的方法触发母体文件。
简单来说,木马须要经由以下几部分才会运行:宿主文件à混淆代码à紧缩数据à母体文件à挂起线程修改eipà触发木马。
这个变种用了三层的保护技巧,增长了杀毒软件检测的难度,好在360的QVM对这类样本有着比较周全的收集和练习,可以或许检出最新出现的变种。