攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

渗透技巧 3年前 (2022) admin
849 0 0
攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

情报背景

近期Malwarebytes发现了一起使用Colibri Loader进行信息窃取的攻击事件。Colibri Loader是一款相对较新的商业化加载器,能够将有效载荷投递到目标宿主机上并进行管理。在该Loader中使用了一种新颖的持久化方式,该方式通过计划任务执行PowerShell实现了持久化,本文将对该技术点进行分析。


相关工具

Colibri Loader

战术标签

持久化

技术标签

计划任务 PowerShell cmdlet

情报来源

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


01 攻击技术分析

本次攻击过程如下图:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

1.钓鱼文档通过远程模板注入执行PowerShell ,下载Colibri Loader并重命名为setup.exe

2. setup.exe执行计划任务实现持久化,同时释放并执行重命名为Get-Variable.exe的Colibri Loader

3.Get-Variable.exe与C2 进行通信,并释放执行信息窃取恶意软件Mars Stealer,该信息窃取器重命名为input.exe

4.input.exe执行信息窃取操作并回传窃取的数据给C2服务器Vidar,实现恶意攻击


亮点 利用PowerShell启动时执行Get-Variable执行恶意文件

在此次攻击中,攻击者实现持久化的步骤如下:

1.将恶意程序放在%APPDATA%LocalMicrosoftWindowsApps目录下并重命名为Get-Variable.exe

2.创建计划任务实现持久化

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


该命令创建计划任务程序COMSurrogate,该程序以隐藏的方式执行PowerShell。而执行PowerShell 会启动恶意程序Get-Variable.exe,从而实现持久化。


复现该过程,效果如下:

1.将计算器复制到该路径并重命名为Get-Variable:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


2.执行PowerShell ,弹出计算器:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


cmdlet

Get-Variable是一个cmdlet。cmdlet 是在 PowerShell 环境中使用的轻量级命令,可用于在PowerShell 中执行单个特定功能,比如执行cmdlet 命令 Get-TimeZone 获取当前时区:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


实现原理

由上边的复现可知:使用计划任务只是作为持久化的方式,主要还是通过运行PowerShell时触发执行Get-variable来实现攻击。


执行PowerShell ,在Process monitor观察PowerShell 对Get-variable.exe的操作可知:


首先,PowerShell 遍历系统环境变量路径下是否存在:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


然后遍历在用户环境变量路径下是否存在:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


其中用户环境变量包括路径%APPDATA%LocalMicrosoftWindowsApps:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


当发现该文件时,调用该文件并使用参数Name host ValueOnly 执行:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


该命令用于在Windows上获取主机操作系统信息,如下:

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


PowerShell在启动时会尝试执行该命令获取控制台主机信息,根据控制台主机信息的配置去启动PowerShell,如中英文设置、UI设置。


因此,我们可以发现:该机制类似dll劫持,PowerShell按顺序在系统和用户的环境变量中搜索Get-variable并执行,所以将恶意文件重命名为Get-variable.exe并放置在PowerShell的搜索路径中,就可以在启动PowerShell时执行恶意文件。


而使用路径%APPDATA%LocalMicrosoftWindowsApps的原因是:在Win10上默认的用户环境变量中存在该路径,且将文件复制进该文件夹不需要特殊权限,具有普遍性,容易利用。

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


经过测试发现,仅有该cmdlet放置在WindowsApps下时可以触发执行。


02 总结

从该利用我们可以看出,攻击者对PowerShell的启动过程具有深刻的理解,才可以将其和计划任务进行结合实现该持久化方式。


在合适的情境下将文件放置在其他文件夹中,也可以实现触发,具有一定的隐蔽性,同样需要我们注意。


攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。

研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。


攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

M01N Team

聚焦高级攻防对抗热点技术

绿盟科技蓝军技术研究战队


往期推荐

攻击技术研判|具备“自组织”能力的跨平台恶意程序

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

攻击技术研判|发现新招!攻击者投递伪装成文件夹的恶意LNK

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

攻击技术研判 |利用开源软件包安装程序Chocolately落地的新型后门

攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化


原文始发于微信公众号(M01N Team):攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化

版权声明:admin 发表于 2022年5月9日 下午6:00。
转载请注明:攻击技术研判 | 持久化新方式:计划任务启动PowerShell.exe实现持久化 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...