首页 资讯 安全 查看内容

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

2014-10-18 01:24 938 0

摘要: 最近我们的工程师收到这样一封邮件,发件人显示为“Microsoft outlook”,附件貌似是个音频文件。但是把附件下载到本地一看,却是一个Zbot木马。Zbot其实是一个很古老的木马了,它会将恶意...
关键词: 木马 文件 数据 进程 程序 内存 傀儡 线程 分配 代码

最近我们的工程师收到这样一封邮件,发件人显示为“Microsoft outlook”,附件貌似是个音频文件。但是把附件下载到本地一看,却是一个Zbot木马。Zbot其实是一个很古老的木马了,它会将恶意代码注入到除CSRSS.EXE以外的所有进程。这些恶意代码会挂钩许多与网络操作相关的函数来监控网络数据,以达到盗取用户银行卡信息、电子邮箱密码等个人信息的目的。盗取到的信息会先存储在本地,随后发送到配置文件里所指定的地址。但这个变种还有些新意,用了一些伪装手段绕过了QQ邮箱的安全检测。下面是详细分析:木马加载过程第一层免杀:程序会先拷贝一段数组到内存中去作为shellcode来执行。将这段内存数据扒出来,用IDA查看。可见这段代码是被混淆过的,这些做法都是为了躲过杀软的特征查杀。第二层免杀:接着段代码分配了一段内存将宿主程序拷贝进去,然后从文件的末尾往前搜索以B4E32392开头的数据并进行解密。然后,shellcode调用VirtualAlloc重新分配一段空间(准备填充解压后的数据),再调用RtlDecompressBuffer将这段被解密的数据再解压到重新分配的空间中,这段解密后的数据就是zbot木马的文件数据。以这样的方式得到木马文件就避免了释放文件的操作,躲避了杀软对木马文件的扫描。第三层免杀:之后程序以挂起的方式创建新的进程(傀儡进程),并调用释放傀儡进程的内存映射,这样是为后边修改线程上下文做准备。重新分配空间并设置属性为可执行,用来存放母体文件的内存映射。分别写入文件头和各个区段。再调用GetThreadContext获得线程上下文,修改傀儡进程的Eip,把Eip指向程序的入口,这是程序就跑到zbot木马的入口点。最后调用SetThreadContext并恢复线程,木马程序开始跑起来。木马就是通过这种方式,避免了直接加载母体进程,从而逃避了部分杀软的检测。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部