XLL 钓鱼攻击编写过程介绍

VSole2022-05-23 07:18:03

写在前面:这是在知识星球先进攻防理念讨论组看到的文章,介绍了一种网络钓鱼的方法,上周发布,比较新。记述了黑客攻击的尝试过程,很费脑,很有趣,很迷人,也很危险。

介绍

    随着微软最近宣布阻止来自互联网(电子邮件和网页下载)文档中的宏,攻击者开始积极探索其他方法,实现用户驱动访问(user driven access,UDA)。在寻找可行的网络钓鱼方法时,有几个因素需要考虑和平衡:

  1. 复杂性—用户端需要的步骤越多,我们成功的可能性就越小。
  2. 实操性—大多数受害机器都容易受到你的攻击吗?攻击目标的架构是特定的吗?是否需要安装某些软件?
  3. 交付—在目标网络上是否存在网络/策略缓解措施,从而限制您投送恶意文档?
  4. 防御—强制运行应用程序白名单吗?
  5. 检测—客户端运行的是什么类型的AV/EDR ?

    这些是主要问题,当然还有更多。当你意识到这些因素相互交错时,事情变得更加复杂;例如,如果客户端有一个禁止下载可执行文件或DLL文件的web代理,你可能需要将你的有效载荷进行“打包”(ZIP, ISO等)。当存在检测手段时,这样做可能会带来进一步的问题。更强大的防御需要更复杂的技术组合来击破。

    本文将假设一个对象;该组织采用了几种防御措施,包括电子邮件过滤、禁止下载某些文件类型、应用程序白名单以及安装Microsoft Defender 。

    真实的组织可能什么都不用,或者更多的防御措施,都会简化或复杂化本研究中总结的技术。了解自己的目标。

什么是XLL?

    XLL就是DLL,专门为Microsoft Excel开发。对于未经训练的人来说,它们看起来很像普通的Excel文档。

    XLL为用户驱动访问(UDA)提供了一个非常有吸引力的选择,因为它们是由Microsoft Excel执行的,这是一个在客户网络中非常常见的软件,我们的有效载荷几乎肯定会绕过应用程序白名单规则,因为一个受信任的应用程序(Excel)正在执行它。XLL可以用C、C++或C#编写,这些语言提供了比VBA宏更多的灵活性和功能(及合理性),这进一步使它们成为理想的选择。

    当然,XLL的缺点是很少有合法的用途,所以组织应该非常容易检查,禁止通过电子邮件和网络下载该扩展名文件。遗憾的是,许多组织已经落后了时代很多年,因此XLL在相当时间内仍然是一种可行的网络钓鱼方法。

    有一系列不同的事件可用于执行XLL中的代码,其中最值得注意的是xlAutoOpen。完整的事件名单包括:

    一旦双击XLL,用户可以看到如下欢迎界面:

    这个对话框是用户和代码执行之间的唯一障碍;使用一定技巧的社会工程,代码执行几乎是可以保证的。

    必须记住的是,作为可执行程序,XLL和架构相关。这意味着你必须知道你的目标;目标组织使用的Microsoft Office/Excel版本(通常)将决定您需要如何打造载荷。

    在用户驱动访问(UDA)的背景下,需要仔细考虑有效载荷的投送。我们主要关注两种方法:

  1. 电子邮件附件
  2. Web投送

电子邮件附件

    通过附件或包括一个可以下载文件的网站链接,电子邮件是用户驱动访问流程的关键部分。多年来,许多组织(和电子邮件厂商)已经很有经验并实施了保护用户和组织免受恶意附件伤害的策略。虽然特点各有不同,但组织现在有能力:

  1. 阻止执行附件(EXE, DLL, XLL, MZ header)
  2. 阻止打包封装方法,如ISO/IMG,可能包含可执行内容
  3. 检查zip文件并阻止那些包含可执行内容的文件
  4. 阻止密码保护的zip文件
  5. 其他方法

    出于本文的目的,假设目标组织具有健壮的电子邮件附件检查规则,阻止发送XLL附件。我们将重点着眼于web方法。

Web投送

    电子邮件仍将用于这种攻击方式,但它将用来发送一个网站链接,而不是发送附件。Web代理规则和允许文件下载类型的网络缓解措施可能与针对电子邮件附件实施的规则不同。假设组织阻止从web下载可执行文件(MZ header)。在这种情况下,需要探索打包的方法。

    前提是,我们能够将可执行文件插入到另一种文件类型中,并使其绕过组织的策略。这里主要考虑的是对文件类型的原生支持;例如,如果没有安装第三方软件,Windows就无法打开7Z文件,所以它们不是一个好的选择。像ZIP、ISO和IMG这样的格式很有吸引力,因为它们得到了Windows的原生支持,它们为受害者增加了很少的额外步骤。

    不幸的是,该组织禁止从网上下载ISO和IMG文件;此外,由于他们采用了数据防泄漏(DLP),用户无法挂载外部存储设备,ISO和IMG需要排除。

    幸运的是,尽管该组织禁止下载带MZ header的文件,但它允许下载包含可执行文件的zip文件。这些zip文件被主动扫描以防止恶意软件,包括提示用户输入受密码保护的zip文件的密码;然而,因为可执行文件是压缩的,所以它不会被拒绝MZ文件的规则阻止。

Zip文件和执行

    选择Zip文件来打包XLL载荷,因为:

  1. 它们与Windows天生兼容
  2. 这些文件可以由该组织从互联网上下载
  3. 它们几乎不会给攻击增加额外的复杂性

    非常方便,在Windows上双击ZIP文件将在文件资源管理器中打开该ZIP文件:

    不太方便的是,从压缩位置双击XLL文件触发Windows Defender;即使使用不包含任何恶意代码的edparcell的股票项目。

    查看Windows Defender警报,我们看到它只是一个通用的“Wacatac”警报:

    然而,有一些奇怪的事情;它识别为恶意的文件在c:\users\user\Appdata\Local Temp\Temp1_ZippedXLL.zip中,而不是c:\users\user\users\Downloads\ZippedXLL。在ProcessExplorer中查看Excel实例,可以发现Excel实际上是在appdata\local\temp中运行XLL,而不是在ZIP文件中运行:

    这个问题似乎是与ZIP文件有关,而不是XLL文件。使用记事本从zip文件中打开TXT文件也会导致TXT文件被复制到appdata\local\temp并从那里打开。虽然从这个位置打开一个文本文件没有问题,但Microsoft Defender似乎认为任何在这个位置执行的实际代码都是恶意的。

    如果用户直接从ZIP文件中提取XLL,然后运行它,它将不会出现任何问题;然而,我们无法保证用户会这样做,如果他们不提取,我们真的不能在弹出AV/EDR上冒险。此外,双击ZIP然后双击XLL要简单得多,而且受害者更容易完成这些简单的操作,而不是麻烦地提取ZIP。

    这个问题让我开始考虑使用XLL之外的有效载荷类型;我开始探索VSTO,这是Visual Studio的Office模板。

    VSTO最终调用一个DLL,它既可以利用本地的. Xlsx,启动任何程序,也可以http/https由. Xlsx远程下载和运行。本地选项没有真正的优势(实际上有一些缺点,因为有更多的文件与VSTO攻击相关联),而远程选项不幸地需要一个代码签名证书,或者远程位置是一个可信的网络。由于没有有效的代码签名证书,VSTO不能帮助我们实现XLL有效载荷所遇到的任何问题。

    我们似乎真的被逼到墙角了。运行XLL本身是可以的,但是由于组织安全策略,XLL不能通过电子邮件附件或网络下载的方式自行发送给受害者。XLL需要封装在别的文件包中,但是由于DLP格式,ISO、IMG和VHD等是不可用的。受害者需要能够在没有任何第三方软件的情况下本机打开软件包容器,这实际上只能选择ZIP;然而,正如所讨论的,从一个压缩文件夹运行XLL会导致它被复制并从appdata\local\temp运行,这会触发AV。

    我花了很多时间进行头脑风暴和测试,进入VSTO死胡同,探索所有可能的选择,直到我最终决定尝试一些可能有效的笨方法。

    这次,我生成了一个文件夹,把XLL文件放进去,然后压缩:

    点击这个文件夹就可以看到XLL文件

    双击XLL会显示来自Excel的加载项提示。注意,XLL仍然被复制到appdata\local\temp,然而,由于我们创建了额外的文件夹,有一个额外的层:

    点击Enable可以执行我们的代码,而没有触发Microsoft Defender:

    很棒!代码执行了,然后呢?

 

间谍情报技术

    让受害者下载并执行XLL的假冒邮件标题,根据组织和投掷方法的不同会有很大的不同;主题可能包括员工工资数据、基于技能水平的薪酬计算器、项目信息、活动参与者名册等。不管用什么诱饵,如果我们真的给受害者提供了他们被承诺的东西我们的攻击会更有效。如果没有通过,受害者可能会产生怀疑,并将文档报告给他们的安全团队,这可能会迅速暴露攻击者并限制对目标系统的访问。

    XLL本身会在我们的代码执行完毕后留下一个空白的Excel窗口;如果我们能提供受害人要找的Excel电子表格就更好了。

    我们可以将XLSX作为字节数组嵌入到XLL中;当XLL执行时,它将把XLSX放到XLL旁边,然后再打开XLL。我们将把XLSX命名为与XLL相同的名称,唯一的区别是扩展名。

    由于我们的XLL是用C编写的,我们可以引入我之前在C中编写的载荷功能中的一些功能,即自我删除(Self-Deletion)。结合使用这两种技术将导致从磁盘中删除XLL,并将同名的XLSX放置到它所在的位置。对于不仔细的人来说,XLSX似乎一直都在那里。

    不幸的是,XLL被删除和XLSX被放置的位置是appdata \temp\local folder文件夹,而不是原来的ZIP;为了解决这个问题,我们可以创建一个单独包含XLSX的第二个ZIP,并将其读入XLL中的一个字节数组。在执行除了上述的动作,XLL在c:\users\victim\Downloads尝试和定位原来的ZIP文件,把第二个包含XLSX的ZIP放到这里之前删除原始的ZIP文件。当然,如果用户将原始ZIP文件保存在不同的位置或不同的名称下,这可能会失败,但是在许多/大多数情况下,它应该自动放到用户的下载文件夹中。

    这个截图显示了在下面的文件夹,appdata local\temp中创建的临时文件夹,

其中包含XLL和被放置的XLSX,而上面文件夹显示了打开XLL的原始文件资源管理器窗口。注意,在下面的窗格中,XLL的大小为0。这是因为它在执行过程中删除了自己,然而,直到顶部窗格关闭,XLL文件不会完全从appdata\local\temp位置消失。即使受害者再次单击XLL,它现在不会有任何反应,并不真正存在。

    类似地,一旦受害者在文件资源管理器中退出打开的ZIP文件(通过关闭它或导航到另一个文件夹),如果他们再次点击spreadsheet.zip,他们会发现测试文件夹包含importantdoc.xlsx;所以XLL在磁盘上的两个位置都被无害的XLSX取代了。

结论

    随着Office 宏的演示接近尾声,XLL为网络钓鱼活动提供了一个诱人的选择。通过一些创造性,它们可以与其他技术一起使用,以绕过组织和安全团队实现的许多防御层。感谢您的阅读,我希望您学到一些有用的东西!

摘自:

https://github.com/Octoberfest7/XLL_Phishing

参考:

https://docs.microsoft.com/en-us/office/client-developer/excel/add-in-manager-and-xll-interface-functions

https://docs.microsoft.com/en-us/office/client-developer/excel/welcome-to-the-excel-software-development-kit

(完)

软件电子表格
本作品采用《CC 协议》,转载必须注明作者和本文链接
研究人员发现了一种名为SYS01的新信息窃取程序,针对关键的政府基础设施和制造公司。
近日,微软官方发布了Microsoft Excel远程代码执行漏洞(CNNVD-201806-800、CVE-2018-8248)及Microsoft Windows HTTP协议堆栈远程代码执行漏洞(CNNVD-201806-771、CVE-2018-8231)的公告。成功利用Microsoft Excel远程代码执行漏洞的攻击者,能在当前用户环境下执行任意代码,如果当前用户使用管理员权限登录,
近日,微软官方发布了Windows远程代码执行漏洞(CNNVD-201805-278、CVE-2018-8136)及Microsoft Excel远程代码执行漏洞(CNNVD-201805-273和CNNVD-201805-272、CVE-2018-8147和CVE-2018-8148 )的公告。成功利用Windows远程代码执行漏洞的攻击者,可以在目标系统上执行任意代码。
勒索软件 LockBit 运营的多家数据泄露站点由于遭到 DDoS 攻击而在上周末关闭,这些攻击的目的是要求该组织移除从 Entrust 盗取的数据。在 7 月下旬,数字安全机构 Entrust 确认在今年 6 月遭到网络攻击,攻击者从网络中窃取了部分数据。
一个与俄罗斯有关的勒索软件团伙称在针对这个团体的勒索软件攻击中窃取了美国全国步枪协会(NRA)的数据,并且该团体拒绝对这一情况发表评论。同时Grief勒索软件团伙在其数据泄露网站上将NRA组织内部的数据进行了公布。
Bleeping Computer 网站消息,丰田金融服务公司(TFS)证实,在 Medusa(美杜莎)勒索软件声称对其欧洲和非洲一些网络系统进行攻击后,公司内部安全人员检测到了未经授权的恶意访问。
12月26日,Shutterfly发布了一篇关于网络安全事件的声明,称其最近遭到了Conti勒索软件的攻击,部分业务中断。据称Conti加密了Shutterfly数千台设备并窃取了数据以实施勒索,Shutterfly目前还在评估受到影响的数据范围。据报道,本次攻击始于约两周前。
相片服务巨头 Shutterfly 遭勒索软件 Conti 的攻击,数以千计的设备被加密,企业数据被窃取。Shutterfly 成立于 1999 年,主要提供个性化相片服务,2009 年上市,2019 年被 Apollo Global Management 收购并与其竞争对手 Snapfish 合并。据报道它有超过千万客户。对 Shutterfly 的攻击发生在两周前,Conti 勒索软件黑帮声称
信息发布之后,欺诈分子可以迅速采取行动。工作人员迅速采取行动,向超过48000名家长及监护人发出警报。Simpson并没有回应关于这项审计的评论请求。今年5月,黑客发布了他们从阿波罗职业中心窃取的文件。帮助数据盗窃受害者的非营利组织身份盗窃资源中心主管Eva Velasquez表示,他们最重要的一项工作就是在孩子还未成年时冻结他们的征信记录。
Egregor勒索软件运营商已破坏了跨国人力资源咨询公司 Randstad NV 的网络,并在攻击过程中窃取了未加密的文件。Egregor勒索软件运营商发布了据称被盗数据的1%作为攻击证据。Randstad发布了数据泄露通知以披露此事件,并确认Egregor勒索软件感染了其系统。这家人力资源咨询公司透露,该恶意软件仅感染了数量有限的服务器,其操作没有受到影响。该公司补充说,攻击者访问了与其在美国,波兰,意大利和法国的业务有关的数据,但调查仍在进行中。
VSole
网络安全专家