Zbot老木马换新装:轻松绕过邮箱安全安检


发布人:admin分类:网络安全浏览量:20发布时间:2017-12-12

最近我们的工程师收到这样一封邮件,发件人显示为“Microsoft outlook”,附件貌似是个音频文件。但是把附件下载到本地一看,却是一个Zbot木马。

Zbot其实是一个很古老的木马了,它会将恶意代码注入到除CSRSS.EXE以外的所有进程。这些恶意代码会挂钩许多与网络操作相关的函数来监控网络数据,以达到盗取用户银行卡信息、电子邮箱密码等个人信息的目的。盗取到的信息会先存储在本地,随后发送到配置文件里所指定的地址。但这个变种还有些新意,用了一些伪装手段绕过了QQ邮箱的安全检测。下面是详细分析:

木马加载过程


第一层免杀:程序会先拷贝一段数组到内存中去作为shellcode来执行。

将这段内存数据扒出来,用IDA查看。

可见这段代码是被混淆过的,这些做法都是为了躲过杀软的特征查杀。

第二层免杀:接着段代码分配了一段内存将宿主程序拷贝进去,然后从文件的末尾往前搜索以B4E32392开头的数据并进行解密。



然后,shellcode调用VirtualAlloc重新分配一段空间(准备填充解压后的数据),再调用RtlDecompressBuffer将这段被解密的数据再解压到重新分配的空间中,这段解密后的数据就是zbot木马的文件数据。

以这样的方式得到木马文件就避免了释放文件的操作,躲避了杀软对木马文件的扫描。


第三层免杀:之后程序以挂起的方式创建新的进程(傀儡进程),并调用释放傀儡进程的内存映射,这样是为后边修改线程上下文做准备。

重新分配空间并设置属性为可执行,用来存放母体文件的内存映射。

分别写入文件头和各个区段。

再调用GetThreadContext获得线程上下文,修改傀儡进程的Eip,把Eip指向程序的入口,这是程序就跑到zbot木马的入口点。

最后调用SetThreadContext并恢复线程,木马程序开始跑起来。

木马就是通过这种方式,避免了直接加载母体进程,从而逃避了部分杀软的检测。

总结

主文件使用.NET编写的,作者通过在.NET程序里分配一段可执行内存空间,并拷贝一段被混淆的代码到此空间,然后加载;接着混淆代码又在文件中搜索被压缩过的一段数据进行解压得到母体文件;最后通过挂起新进程,修改线程上下文的方式触发母体文件。

简单来说,木马需要经过以下几部分才会运行:宿主文件à混淆代码à压缩数据à母体文件à挂起线程修改eipà触发木马。

这个变种用了三层的保护技术,增加了杀毒软件检测的难度,好在360的QVM对这类样本有着比较全面的收集和训练,能够检出最新出现的变种。


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21444855(PV) 页面执行时间:103.195(MS)
  • xml
  • 网站地图