逆向分析Office VBS宏类型文档

打印 上一主题 下一主题

主题 657|帖子 657|积分 1971

该题目贴合现实,在实战中经常遇到此类宏病毒。
将Office文档中嵌入以VBA(Visual Basic forApplications)编写的宏代码脚本,当运行Office文档时,便可以执行各种命令。
VBA脚本文件重定向能够将脚本默认文件vbaProject.bin进行替换,在打开文本时加载其他文件,增加分析者的分析复杂程度。
1、初步分析

在 Office 2007 之后的 Office 文档格式采用的是 OOXML 标准格式。那什么是OOXML 标准?这里的 OOXML 的全称是 Office Open XML File Formats或被称为 OpenXML 格式,这是一个基于 zip+xml界说的文档格式。简单的说就是Office文档是一些xml文档压缩文件,因此我们将一个word文档进行zip解压,可以得到一些xml文件

[img=720,451.42255005268703]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525119.png[/img]

打开发现是一堆乱码,此时就需要借助大佬们的工具了。
2、oletools

oletools对该文件进行分析,oletools将宏源码完整的还原了出来。
官网:https://github.com/decalage2/oletools/releases
这里采用pip安装模式
  1. pip install -U oletools
复制代码
运行命令
  1. olevba -c protected_secret.docm > code.vbs
复制代码
[img=720,221.76470588235293]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525120.png[/img]

3、分析vbs代码

直接搜索:AutoOpen​
里面有太多垃圾代码了
[img=720,259.6219281663516]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525121.png[/img]

首先将输入的flag异或7
[img=720,142.7627230667548]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525122.png[/img]

[img=720,153.12883435582822]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525123.png[/img]

有点意思了,解码exe的base64编码,然后运行exe执行操纵,最后再删除exe步伐
【----帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC毛病分析陈诉
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权势巨子CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂口试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
4、运行Vbs得到exe

将重要的代码拿出来,然后天生exe
  1. Set fso = CreateObject("Scripting.FileSystemObject")
  2. Set objShell = CreateObject("WScript.Shell")
  3. /*
  4. 省略了一大堆 base64赋值串
  5. */
  6. tempPath = "D:\temp11\temp"
  7. Set tempfile = fso.CreateTextFile(tempPath, True)
  8. fso.GetFile(tempPath).Attributes = 2
  9. tempfile.WriteLine xpkdb
  10. tempfile.Close
  11. batPath = "D:\temp11\temp.bat"
  12. Set batFile = fso.CreateTextFile(batPath, True)
  13. fso.GetFile(batPath).Attributes = 2
  14. batFile.WriteLine "@echo off"
  15. batFile.WriteLine "certutil -decode temp1 temp|certutil -decode temp temp.exe"
  16. batFile.Close
  17. Set objExec = objShell.Exec(batPath)
复制代码
保存为vbs运行,但是我电脑有点小问题没跑运行起来
因此我们采取另一种方法,直接将base64提取出来
[img=720,189.607250755287]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525124.png[/img]

代码很简单,将提取出来的代码放进Cyberchef进行提取即可
[img=720,299.58968963703313]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525125.png[/img]

download.exe
5、分析exe

[img=720,392.45009074410166]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202410281525126.png[/img]

很简单的代码,就是位移
6、解密
  1. v9 = [0]*54
  2. v9[0] = 4288
  3. v9[1] = 4480
  4. v9[2] = 5376
  5. v9[3] = 4352
  6. v9[4] = 5312
  7. v9[5] = 4160
  8. v9[6] = 7936
  9. v9[7] = 5184
  10. v9[8] = 6464
  11. v9[9] = 6528
  12. v9[10] = 5632
  13. v9[11] = 3456
  14. v9[12] = 7424
  15. v9[13] = 5632
  16. v9[14] = 6336
  17. v9[15] = 6528
  18. v9[16] = 6720
  19. v9[17] = 6144
  20. v9[18] = 6272
  21. v9[19] = 7488
  22. v9[20] = 6656
  23. v9[21] = 7296
  24. v9[22] = 7424
  25. v9[23] = 2432
  26. v9[24] = 2432
  27. v9[25] = 2432
  28. v9[26] = 5632
  29. v9[27] = 4416
  30. v9[28] = 3456
  31. v9[29] = 7168
  32. v9[30] = 6528
  33. v9[31] = 7488
  34. v9[32] = 6272
  35. v9[33] = 5632
  36. v9[34] = 3520
  37. v9[35] = 6208
  38. v9[36] = 5632
  39. v9[37] = 4736
  40. v9[38] = 6528
  41. v9[39] = 6400
  42. v9[40] = 7488
  43. v9[41] = 3520
  44. v9[42] = 5632
  45. v9[43] = 5184
  46. v9[44] = 3456
  47. v9[45] = 7488
  48. v9[46] = 7296
  49. v9[47] = 3200
  50. v9[48] = 6272
  51. v9[49] = 7424
  52. v9[50] = 2432
  53. v9[51] = 2432
  54. v9[52] = 2432
  55. v9[53] = 7808
  56. flag = ''
  57. for i in range(54):
  58.    flag += chr(v9[i] >> 6 ^ 7)
  59. print(flag)
复制代码
更多网安技能的在线实练习习,请点击这里>>
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

光之使者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表