office宏绕过杀软诱导点击实现主机控制

news2024/10/9 20:23:05

绕过防病毒扫描已经成为 BHIS(Black Hills Information Security)的一项运动。当我们为客户进行指挥控制(C2)测试时,我们从内部网络上的主机开始,创建一个反向连接到我们的C2服务器。然后,我们继续发送各种类型的数据进出,看看是否会被捕获。目标是展示他们的防御系统如何有效地防止和/或检测我们的恶意行为。我们的成功率相当高(这意味着我们通常能够将数据从网络中导出),主要原因是识别恶意流量非常困难!攻击者可以对其流量进行混淆,使得防病毒扫描程序和其他安全设备无法检测到任何不当行为的迹象。通常,防病毒扫描程序和入侵防御/检测引擎会阻止或警报已知的恶意签名或行为。这是一种黑名单方法。因此,只要我们能够将流量从已知的恶意流量更改为任何其他流量,我们就能轻松通过。那么,如何在不被注意的情况下,从内部网络到我们的C2服务器建立初始连接呢?有时一个简单的PowerShell脚本连接到Metasploit监听器就能奏效。而有时我们必须更努力一些。

在最近的一次测试中,我们使用了一个恶意的PowerPoint演示文稿,伪装成一个有趣的幻灯片,承诺揭示令人难以抗拒的公司八卦。点击的“冲动指数”非常高。在PowerPoint演示文稿中嵌入了调用PowerShell脚本的Visual Basic命令,以连接到C2服务器。该脚本使用强大的Veil-Evasion工具进行了混淆。以下是具体步骤……

首先,我们在C2服务器上设置监听器。在此示例中,我们使用反向TCP连接监听443端口。我们选择443端口,因为它通常允许出站连接。

图片

接下来,我们使用Veil-Evasion创建了我们的有效负载。我们只需要告诉Veil-Evasion我们要连接的地址和端口以及有效负载的类型,剩下的工作它都会自动完成。

图片

Veil-Evasion生成的脚本如下所示:

图片

Veil-Evasion混淆后的脚本如下所示

如上所见,Veil-Evasion生成了这个脚本,但有一个问题:这个脚本是一行代码,在这个例子中,它包含了2300个字符。

图片

2300个字符,一行脚本

Office中的Visual Basic编辑器不支持此python。我们需要找到一种方法将这个脚本分解成较小的片段,以便VB编译器能够处理。幸运的是,有人已经为我们做了这件事。Macro_safe.py是一个很棒的小Python脚本,专门用于解决这个问题。通过将输出通过macro_safe.py脚本运行,我们得到了一个PowerPoint可以轻松处理的恶意脚本版本。

图片

macro_safe.py将长行分解为较短的行,以便Visual Basic处理

接下来的步骤是打开我们的PowerPoint演示文稿,并添加“macro safe”代码。首先,我们确保我们可以访问PowerPoint中的“开发人员”选项卡,如果需要,可以通过PowerPoint选项将其添加到功能区中。

macro_safe.py将长行分解为较短的行,以便Visual Basic处理

接下来的步骤是打开我们的PowerPoint演示文稿,并添加“macro safe”代码。首先,我们确保我们可以访问PowerPoint中的“开发人员”选项卡,如果需要,可以通过PowerPoint选项将其添加到功能区中。

图片

在PowerPoint中启用开发人员选项卡

在PowerPoint允许我们创建宏之前,我们需要将演示文稿保存为 .pps(PowerPoint 97-2003 Show)或 .ppsm(PowerPoint Macro-Enabled Show)类型。我喜欢使用legacy.pps扩展名,因为在新版本的Office中,“m”给出了另一个提示,表明有些问题。然后,我们点击开发人员选项卡,打开Visual Basic界面并插入一个新模块。这是我们粘贴包含正确格式的Veil-Evasion脚本的“macro safe”输出的地方。以下是这些步骤。

图片

一旦宏存在于文档中,我们需要找到一种方法来触发其执行。Microsoft Word和Excel都有选项,可以在打开文件时自动运行宏,但PowerPoint没有这个选项。我听说过和读过一些关于在PowerPoint中实现相同效果的黑客方法,但在这种情况下,我们将简单地使用演示文稿中的自定义操作来触发代码的执行,当用户在幻灯片内点击时。我创建了一个覆盖整个第一张幻灯片的文本框,并在那里应用了“鼠标点击时”操作。因此,当用户打开演示文稿并在第一张幻灯片上的文本框中的任何位置单击时,宏将执行并创建一个出站连接。您也可以选择在“鼠标悬停时”执行宏,但是这可能会有点不稳定,因为它可能会创建多个出站连接。

图片

但等等,通常情况下,默认情况下不会启用宏,所以用户必须同意启用宏,对吧?是的。事实证明,PowerPoint会显示一个非常明确的警告,指出这个文档可能是恶意的。“除非内容提供关键功能并且您信任其来源,否则应保持此内容处于禁用状态”。你可能会认为这是一个描述性的、可理解的警告,足以阻止用户启用未知内容。但事实证明……

图片

如果你发送了它 - 他们会点击。这就是攻击者所依赖的。现在不要误会我的意思。我并不是说用户应该总是知道更好。互联网上充满了警告,安全人员经常允许使用不受信任的证书,用户被告知要“点击通过”。让我们面对现实 - 用户经常收到混乱的信息,因此他们对错误消息感到疲劳并不奇怪。基本上,当用户真的想查看文档的内容时,他/她会几乎点击通过任何警告,而不会意识到在背景中非常安静地发生了一些不好的事情 - 在这种情况下,他们的机器正在与我们的C2服务器建立联系。

图片

通过对计算机进行初始访问,攻击者随后可以上传或下载文件,尝试提升权限,转向其他计算机等。

我们在BHIS的目标是教育我们的客户,让他们了解信任反病毒产品能够捕获一切的危险,以及忽略安全警告可能带来的潜在后果。因此,这个经过Veil-Evasion混淆的PowerPoint文档已经通过Gmail扫描器、Windows Defender、McAfee A/V和Symantec A/V进行了扫描。这些工具都没有检测到恶意内容。

图片

Gmail未能检测到恶意文档。

图片

McAfee未能检测到。

图片

Windows Defender 未检测到

图片

Symantec也没有。

在本文中,唯一的麻烦是PowerPoint对在PowerPoint演示文稿中启用活动内容的单一警告,最终用户必须决定是否继续。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1863171.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql中varchar类型数字排序不对踩坑记录

场景 在进行表设计时将版本号字段设计了为varchar类型,尽量从表设计阶段将数字类型列设计为int型。 再进行排序时如果版本号累计到了10及以上,那么再进行排序时则会出现问题。 比如下面执行排序时发现10被排在了第一位。 这是因为 varchar类型对数字…

Lua流媒体服务器支持(MP4视频、桌面直播、摄像头)

本来在做FFMPEG的项目,忽然想到Lua封装FFMPEG与SRS实现一个简易的直播网站何尝不是一个大胆的想法。 示例为初级版本,主要是用来验证可行性和功能性DEMO 演示效果: Lua流媒体直播服务器(支持MP4、桌面直播、摄像头)_哔哩哔哩_bilibili 代码简…

①分析胃癌组蛋白脱乙酰酶HDS模型-配对转录组差异

目录 HDS评分构建 ①数据加载 ②评分计算 做样本及评分展示图 ①数据处理 ②进行作图 分析配对的单细胞及转录组胃癌数据的 HDS评分,数据源于gastric-cancer - GitCode①胃癌单细胞和配对转录组揭示胃肿瘤微环境(文献和数据)_代码笔记:处理迄今为止最大的单细胞胃癌数…

【漏洞复现】通天星CMSV6——sql注入漏洞

声明:本文档或演示材料仅供教育和教学目的使用,任何个人或组织使用本文档中的信息进行非法活动,均与本文档的作者或发布者无关。 文章目录 漏洞描述漏洞复现测试工具 漏洞描述 通天星CMSV6小于7.33.0.7版本存在接口pointManage存在注入漏洞&…

2023年SWPU NSS 秋季招新赛 (校外赛道)-没做出来的writeup

web 学习一下:[SWPUCTF 2023 秋季新生赛]——Web方向 详细Writeup-CSDN博客 查查need 看这个大佬的手工注入,nb呀 文章列表 | NSSCTF 其实也是可以使用sqlmap一把梭哈! 看了教程:SQLmap使用教程图文教程(非常详细…

H2RSVLM:引领遥感视觉语言模型的革命

随着人工智能技术的飞速发展,遥感图像理解在环境监测、气候变化、粮食安全和灾害预警等多个领域扮演着越来越重要的角色。然而,现有的通用视觉语言模型(VLMs)在处理遥感图像时仍面临挑战,主要因为遥感图像的独特性和当…

优选算法2

五、位运算 常见位运算总结 &:有0就是0; |:有1就是1 ^:相同为0,相异就是1/无进位相加 给定一个数n,确定它的二进制表示中的第x位是0还是1:二进制中权值最小的是第0位,所以int整型是从第0位到…

Android app Java层异常捕获方案

背景: 在Android app运行中,有时一些无关紧要的异常出现时希望App 不崩溃,能继续让用户操作,可以有效提升用户体验和增加业务价值。 新流程: 哪些场景需要Catch Crash Config配置信息: 支持从网络上获…

MySQL 5.7.42 主从复制环境搭建

MySQL 5.7.42 主从复制环境搭建 下载MySQL二进制包操作系统环境配置安装过程搭建从库 本次安装环境: OS版本:Red Hat Enterprise Linux Server release 6.8 (Santiago) MySQL版本:5.7.42 架构:同一台机器,多实例安装搭…

国标GB28181视频汇聚平台EasyCVR安防监控系统常见播放问题分析及解决方法

国标GB28181安防综合管理系统EasyCVR视频汇聚平台能在复杂的网络环境中,将前端设备统一集中接入与汇聚管理。平台支持多协议接入,包括:国标GB/T 28181协议、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视…

【工具测评】ONLYOFFICE8.1版本桌面编辑器测评:好用!

随着远程工作的普及和数字化办公的发展,越来越多的人开始寻找功能强大、易于使用的办公软件。在这个背景下,ONLYOFFICE 8.1应运而生,成为许多用户的新选择。ONLYOFFICE 8.1是一款办公套件软件,提供文档处理、电子表格和幻灯片制作…

【node】深入探讨 class URL

【node】深入探讨 class URL 📌 浅说 fileURLToPath() 在vite.config.ts中有这么一段代码: import { fileURLToPath, URL } from node:url import { defineConfig } from vite export default defineConfig({resolve: {alias: {: fileURLToPath(new U…

python学习笔记四

1.自己平方本身 x2 x**4#xx**4 print(x) 2.把一个多位数拆分成单个数,方法一通过字符串下标获取对应元素,并对获取的元素使用eval函数把左右引号去掉,是字符串变为整型;方法二,通过对数进行取余和整除得到各个位的数 …

RK3568平台开发系列讲解(I2C篇)利用逻辑分析仪进行I2C总线的全面分析

🚀返回专栏总目录 文章目录 1. 基础协议1.1. 协议简介1.2. 物理信号1.3. 总线连接沉淀、分享、成长,让自己和他人都能有所收获!😄 1. 基础协议 1.1. 协议简介 IIC-BUS(Inter-IntegratedCircuit Bus)最早是由PHilip半导体(现在被NXP收购)于1982年开发。 主要是用来方…

安卓应用开发学习:获取导航卫星信息

一、引言 我昨天写了《安卓应用开发学习:获取经纬度及地理位置描述信息》日志,今天再接再厉,记录一下跟着《Android App 开发进阶与项目实战》一书,实现获取导航卫星信息,并在手机上显示的功能的情况。先上实现后的在…

go语言day2 配置

使用cmd 中的 go install ; go build 命令出现 go cannot find main module 错误怎么解决? go学习-问题记录(开发环境)go: cannot find main module; see ‘go help modules‘_go: no flags specified (see go help mod edit)-CSDN博客 在本…

FPGA学习笔记(6)——硬件调试与网表添加探针

对信号进行分析,除了使用内置的ILA IP核,还可以在网表中添加探针。 本节采用之前配置的LED灯闪烁代码,对原始工程进行修改。 如果是新建工程,需要现将代码进行综合Synthesis,然后再进行接下来的操作。 1、点击Open S…

链表数组遍历输出的辨析(二者都含指针的情况下)----PTA期末复习题

输入输出三位学生的学号和信息 一开始我认为是指针,直接背了指针输出的方式;p;p!NULL;pp->next 这个是错误的 下面这个输出是正确的方式 分析怎么区分这两个 举个例子来 数组遍历: 链表遍历: 输出的结果: 如果将…

浏览器扩展V3开发系列之 chrome.cookies 的用法和案例

【作者主页】:小鱼神1024 【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等 chrome.cookies API能够让我们在扩展程序中去操作浏览器的cookies。 在使用 chrome.cookies 要先声明…

【Redis】Zset有序集合常用命令以及使用场景

Redis 的有序集合(Sorted Set,简称 Zset)是一个非常强大的数据结构,它结合了集合(Set)的唯一性和列表(List)的有序性。每个元素都关联一个评分(score)&#x…