今天一QQ号发了我一张图:

做的很不错啊。但是我不会信的。

解码后得到一个网址:

但是打开后确实一群乱码,但是网页会执行哦。

我看到了文件头有 JFIF 的字样,我记得这个应该是图片之类的文件流吧。

所以就百度了下,就搜到了这文章,这篇文章让我知道,原来木马可以做如此多的伪装。

想读懂此文要有很多的经验,我只能读懂一点点,所以记录下。

最近我收到一封钓鱼邮件,邮件中附带着一个.doc的附件。我们利用再平常不过的工具Notepad++,一步一步脱去ZeuS木马的伪装外衣,并进行了非常深入的静态分析。该木马的伪装用到了多项关键技术,例如信息隐藏、加密解密等。

0×01 发现猫腻

最近我遇到了一个很特别的恶意钓鱼邮件,邮件中有一个.doc附件。

起初,当我在虚拟机中运行该样本时,攻击者发送的附件看起来并不正确。但是,在我提取并解码此shellcode之后,我发现了一个很熟悉的已经传播一段时间的恶意软件。

图1 钓鱼邮件

在图2中的邮件头部,我们可以看到原始IP地址为212.154.192.150。应答字段也很有趣,因为这是一个长期的419诈骗团伙的地址。在图3中,红圈中的邮件地址告诉我们附件极有可能是恶意软件。

图2 邮件头部

图3 419诈骗团伙的邮件地址

0×02 初步测试

最开始,我尝试在虚拟机中运行该附件,但是却出现了下图中的错误信息:

图4 Office错误信息

但是,测试环境系统有超过45G的可利用硬盘空间,并且有2G的内存空间,所以错误中提示的空间不足应该不是问题的根源。为了测试,我将内存空间扩展成8G,但是相同的问题依然存在。于是,我决定从静态分析的角度看一下该附件。

像往常一样,我用Notepad++打开该文件来大致分析下这到底是什么。打开之后,我看到它实际上是一个伪装成.doc文件的.rtf文件,而在.rtf格式的文件中进行内容的混淆处理非常容易。

图5 Notepad++打开的RTF文件

在.rtf文件中,表示十六进制代码的大量数据将可能为我们提供线索,让我们明白该文件到底在试图做什么。.rtf文件格式给攻击者提供了很大的自由,让其在这部分中隐藏并编码数据,如图6所示。

图6 可疑数据

然而,在这部分的末尾,我们看到了“FF D9”,而gif文件的末尾两个字节就是“FF D9”。

图7 gif文件的结尾字节

0×03 抽丝剥茧

我比较喜欢使用Notepad++来解码这种数据。首先,将该区域的内容复制并粘贴到一个新的txt文档中,然后CTRL+F打开查找窗口,并选择“替换”选项卡,然后选中“扩展”按钮,如图8中所示。

图8 Notepad++查找/替换

通过这样,你将得到一行ASCII码形式的十六进制数。然后,选中所有内容,并依次操作:“插件”->“Converter”-> “Hex -> Ascii”,如图9所示。

图9 解码数据

转换完成之后,你将会看到一些好像图像数据的字符串(JFIF和Photoshop字符串,如图10)。通过将这些内容另存为.gif文件,你将能够在Paint软件或其他类似软件中打开此图片,结果如图11所示。

图10 解码后的图像数据

图11 .rtf文件中的图像

然后,沿着这条线索,我们继续手动解码每个部分,我们将得到比上一个更大的新图片,而两张图片显示的内容相同,都是同一座房子。然而,这次的文件大小为3M(图12),而上一张图片大小只有79KB(图11)。

图12 较大的图片

通过谷歌图片搜索这个图片,我们发现,这实际上是一个设计的3D房子的外观,它跟上面原始邮件中的内容并不相关。

使它看起来更可疑的是,里面竟然还嵌入了一个.docx文件(图13)。当我试着打开该文件时,弹出了错误,而且XML文件中也并没什么有趣的内容。

图13 嵌入的.docx文件

在该文件中的大概第50000行的地方,我们可以看到97-2004office文档的魔幻字节(图14)。这再一次引发我们思考,为什么该.rtf文件中同时包含了新版本和旧版本格式的Word呢?

图14 .doc魔幻字节的ASCII码表示

在几千行之后,我们看到了一些更加有趣的东西。驼峰式大小写的方式一般是一种用于绕过杀毒软件或其他签名检测机制的做法。

图15 大小写替换

大概2000行之后,我们发现了另一个函数(图16)。

图16 另一个函数

通过去除双换行符(\ r \ r 和\ n \ n),我们可以压缩这些代码以了解发生了什么,并以此方法来查看通常情况下在.rtf文件中不会被发现的代码。

图17 .rtf文件中本不该存在的代码

在图18红线圈中部分,有一些在.rtf文件中本不该存在的十六进制代码。在更下面有点(蓝线圈中部分),我们也可以看到“AAAA”,这在汇编语言中一般表示指令“inc ecx”。

图18 .rtf文件中的可疑部分

然而,在图19中,我们发现一个小片段指示shellcode的大小。通过解码这一片段,我们可以在最后面找到一个对可执行文件的引用,而这也是我们一直在寻找的东西(图 20)。

图19 看似shellcode的内容

图20 shellcode,恶意URL:http://aspks.nl/components/kom/ks.exe

0×04 IDA分析

用IDA打开这个二进制文件之后,我们可以看到实际上这只是代码的一个片段。下图中的汇编指令跟我们猜想的很吻合,这些shellcode和其他代码与一个比较老但是很稳定的漏洞CVE-2012-0158关系密切相关。

图21 shellcode入口点附近

既然现在我们已经有了链接地址,那么我们可以测试下看看该恶意链接是否有效,结果显示该地址仍旧有效(图22)。

图22 恶意文件下载

一旦执行该文件,将会在注册表中创建一个作为运行键的存储文件。

图23 恶意软件存储安装

恶意软件安装到了以下路径:C:\Users\\AppData\Roaming\Ritese\quapq.exe。从取证的角度来看,在该目录或Roaming目录中搜索exe文件将是无意义的,因为一般恶意软件不会安装在这些目录下。

0×05 通信分析

对于恶意软件的服务器端来说,该恶意软件发起了很多对“file.php”和“gate.php”文件的请求(图24)。从图中可以看出,IP地址116.193.77.118也列在了ZeuS木马的追踪表单上(图25)。

图24 发出的HTTP请求

图25 ZeuS追踪IP地址

此外,通过Dump内存,我们还能看到其他的Ladycoll配置。

图26 恶意软件的内存dump

0×06 总结

最后,尽管CVE-2012-0158已经有3年了,但攻击者现在仍旧使用此漏洞。即使他们混淆了这些文档,但还是有可能通过分析找到他们的真实意图。

注:恶意文件哈希:哈希1 哈希2

java木马编码,深度好文:解码“深度伪装”的ZeuS网银木马相关推荐

  1. Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)

    中文通过Java后台进行Base64编码后传到前台,通过JS进行Base64解码时会出现中文乱码的问题,被这个问题也是困扰了几天,使用jquery.base64.js只能转码非中文字符,经过搜集各种方 ...

  2. 【深度好文】Flink SQL流批⼀体化技术详解(一)

    持续输出 敬请关注 大数据架构  湖仓一体化  流批一体 离线+实时数仓  各种大数据解决方案  各种大数据新技术实践 持续输出  敬请关注 [珍藏版]数仓平台.推荐系统架构选型及解决⽅案_大数据研习 ...

  3. 【Android源码】源码分析深度好文+精编内核解析分享

    阅读Android源码的好处有很多,比如:可以加深我们对系统的了解:可以参考牛人优雅的代码实现:可以从根本上找出一些bug的原因-我们应该庆幸Android是开源的,所有的功能都可以看到实现,所有的b ...

  4. MLK | 一文理清深度学习循环神经网络

    MLK,即Machine Learning Knowledge,本专栏在于对机器学习的重点知识做一次梳理,便于日后温习,内容主要来自于<百面机器学习>一书,结合自己的经验与思考做的一些总结 ...

  5. 资深算法工程师万宫玺:Java工程师转型AI的秘密法宝——深度学习框架Deeplearning4j | 分享总结

    资深算法工程师万宫玺:Java工程师转型AI的秘密法宝--深度学习框架Deeplearning4j | 分享总结 本文作者:杨文 2018-01-02 11:03 导语:一文读懂深度学习框架Deepl ...

  6. 深度好文:Netflix奈飞微服务架构设计解析

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 来源:22j.co/dz54 1 概述 数年来,Netflix 一直是全球 ...

  7. 深度好文:云网络丢包故障定位,看这一篇就够了~

    深度好文:云网络丢包故障定位,看这一篇就够了~ https://mp.weixin.qq.com/s/-Q1AkxUr9xzGKwUMV-FQhQ Alex 高效运维 今天 来源:本文经授权转自公众号 ...

  8. 微服务架构总结性介绍 (深度好文)

    微服务架构总结性介绍 (深度好文) 资料来源:有架构给我的一些资料,以及自己百度和论坛.社区找来的一些资料,权当做一个总结式的简介... 目录如下: 一.微服务架构介绍 二.出现和发展 三.传统开发模 ...

  9. 25岁阿里120W年薪架构师推荐学习的750页微服务架构深度解析文档

    前言 当前,微服务架构在国内正处于蓬勃发展的阶段,无论是大型互联网公司还是传统的IT企业,纷纷采用微服务架构构建系统. 在过去几年里,DevOps.云原生.面向演进式架构等理念已经深入人心,围绕微服务 ...

  10. 在滴滴和头条干了2年后端开发,太真实了…这篇深度好文,乔哥读了很多遍,推荐给大家...

    这篇深度好文,乔戈里读了很多遍,推荐给大家 先简单交代一下背景吧,某不知名985的本硕,17年毕业加入滴滴,今年下半年跳槽到了头条,一直从事后端研发相关的工作. 之前没有实习经历,算是两年半的工作经验 ...

最新文章

  1. 源码阅读:AFNetworking(十六)——UIWebView+AFNetworking
  2. 运维提升首选技能KubernetesPrometheus,你了解多少?(文末福利)
  3. A-Grade Browser By Yahoo
  4. DateTimePicker——开源的Android日历类库
  5. 多网卡无法上外网的解决
  6. C语言知识总结——宏,枚举
  7. dos 注册服务器,DOS命令实现服务器断线短信通知
  8. C#学习笔记_12_枚举结构体
  9. 多个DataTable的合并成一个新表
  10. ***出更--获取源代码的***
  11. maven学习:jetty插件与Tomcat插件
  12. ObjectDataProvider
  13. 幼儿园调查过程怎么写_幼儿园对孩子的重要性你真的清楚吗?
  14. proxool,好东西
  15. Python多线程好玩弹窗代码
  16. DB2 SQLCODE 异常大全编辑(二)
  17. 一维热传导方程求数值解
  18. mt管理器图片在哪个文件夹_MT管理器构造(新手小白教程)-小白文件管理器
  19. 计算机硬件cpu指令执行过程,cpu执行指令的过程详解
  20. 阿里云服务器学生免费领取指南

热门文章

  1. android_studio运行,Android Studio怎么运行程序?
  2. OSChina 周四乱弹 ——小小编辑教你装逼斗气
  3. Spring中的DataSource
  4. U3D性能优化之MeshBaker(不带光照)
  5. NC打印模板汇总技巧
  6. 重装win10专业版系统
  7. c语言输出实心心矩形,c语言打印空白星号矩形
  8. java 根据手机号获取归属地
  9. mysql查询手机号隐藏中间四位
  10. 实时立体匹配网络StereoNet