情报背景
微软在5月17号发出警告,声称最近发现了一个针对 SQL Server 的恶意活动,该活动利用内置的 PowerShell 二进制文件在受感染的系统上实现持久性,该恶意活动与名为“ SuspSQLUsage ”的恶意软件有关。目前该活动的最终目标和发起该活动的威胁行为者的身份未知。
相关工具 |
SqlPS.exe |
战术标签 |
权限维持 |
技术标签 |
权限维持、LOLBAS |
情报来源 |
https://thehackernews.com/2022/05/hackers-gain-fileless-persistence-on.html?m=1 |
01 攻击技术分析
亮点1:使用SqlServer中包含自带LOLBAS类型工具Sqlps执行Powershell代码
在SqlServer中包含自带LOLBAS类型Powershell执行工具,该工具会跟随SqlServer包含工具版本的安装包安装,通常位于以下路径中:
C:Program files (x86)Microsoft SQL Server1xxToolsBinnSQLPS.exe
C:Program files (x86)Microsoft SQL Server1xxToolsBinnSQLToolsPS.exe
该EXE文件具有微软的官方签名,因此有较好的防御规避能力。
同时该文件具有与Powershell相同的功能,能够执行Powershell代码,结合Powershell语法的信息搜集命令或者反弹Shell命令等。可以在攻防对抗中具有较高价值。
但是SQLPS有一定的局限性,不同的操作系统版本需要运行对应的SQLPS版本,因此如果要使用独立的SQLPS要根据目标系统版本选择不同版本。
SQLPS路径 |
Windows Server 2008/Windows 7 |
Windows Server 2012 |
Windows Server 2016/Windows 10 |
100 |
√ |
× |
× |
130 |
× |
√ |
√ |
150 |
× |
× |
√ |
亮点2:替换Sqlserver相关服务账户实现Localsystem权限维持
在本次攻击事件中,攻击者使用sqlps执行Powershell命令,修改SqlServer可用于权限维持的服务Sqlagent和SqlServr,实现LocalSystem权限维持。
Sqlagent是一种能够计划执行管理任务的服务,本来用于计划执行SQL Server中的作业,但也可以被滥用实现后门的自启动。通过sqlagent中创建作业可以实现自动执行Powershell命令,执行可选的周期基本与计划任务一致。
同时也可以通过创建存储过程执行powershell命令,并在sqlservr服务重启后执行。
在本次攻击中捕获到攻击者通过Powershell修改Sqlservr和sqlagent服务的服务账户修改为LocalSystem并进行重启,则可以实现LocalSystem账户的权限维持。
可以看到修改返回的Shell为System权限。
02 总结
本次事件中攻击者利用LOLBAS文件Sqlps执行Powershell代码绕过检测,并修改SqlServer相关的服务实现了LocalSystem权限进行权限维持可谓是一气呵成。但是本次事件的权限维持具有一定的局限性,首先其依赖于SqlServer服务。其次修改服务并重启会导致SQLServer实例暂时停止,如果能够利用Sqlps结合其他权限维持方法如服务DLL劫持会更加隐蔽。
绿盟科技天元实验室专注于新型实战化攻防对抗技术研究。
研究目标包括:漏洞利用技术、防御绕过技术、攻击隐匿技术、攻击持久化技术等蓝军技术,以及攻击技战术、攻击框架的研究。涵盖Web安全、终端安全、AD安全、云安全等多个技术领域的攻击技术研究,以及工业互联网、车联网等业务场景的攻击技术研究。通过研究攻击对抗技术,从攻击视角提供识别风险的方法和手段,为威胁对抗提供决策支撑。
M01N Team公众号
聚焦高级攻防对抗热点技术
绿盟科技蓝军技术研究战队
官方攻防交流群
网络安全一手资讯
攻防技术答疑解惑
往期推荐
原文始发于微信公众号(M01N Team):攻击技术研判 | 利用SqlPS修改服务实现LocalSystem权限维持