背景简介
当攻击者拿下一台Windows服务器后,会进行后渗透操作–权限维持。在众多的维权方式中,Shim维权又是比较少人知道的一种方式。攻击者利用微软官方推出的应用程序兼容性工具包(ACT)在目标服务器上进行恶意程序修改,可达到维权目的——因为所使用的工具是微软官方的,所以终端安全软件并不会拦截。
一、原理简介
Windows为了兼容以前的旧应用程序可以在新的windows系统中运行,在系统中加入了Shim数据库,Shim数据库可通过微软官方工具ACT来进行创建。作用系统版本如下:
工具下载地址:
https://learn.microsoft.com/zh-cn/archive/blogs/yongrhee/download-application-compatibility-toolkit-act-for-windows-10
*左右滑动查看更多
旧应用程序可通过Shim的修复方式在新系统上运行,Shim处于应用程序和Windows API之间的逻辑层。
当一个应用程序开始运行的时候,Shim把导入地址表(IAT)里的系统DLL库函数地址用ShimDLL里的函数地址来替换,从而可以透明的拦截其API调用、修改其传递的参数等等。这个过程相当于Windows自己做了一个IAThooking。
攻击者可以给任意程序自定义一个Shim修复方式,这样当正常用户打开被Shim修复的程序时,Shim会根据攻击者意愿重定向到其他的Windows API,进而执行攻击者的恶意指令。
二、创建Shim数据库
自定义一个Shim数据库,使用户点击打开某绒安全软件时重定向到某度网站(也可以重定向到攻击者的恶意木马程序)。
启动命令参数:
C:Program FilesGoogleChromeApplicationchrome.exe www.baidu.com
*左右滑动查看更多
|
此时当用户双击打开右下角某绒程序时,该软件并没有打开,取而代之的是弹出了某度的网站。
三、攻击特征
1、查看C:WindowsAppPatchCustom下是否存在后缀为sdb的文件,创建Shim数据库并安装使其生效时,会在此目录下生成一个32位由字母数字组成、后缀名为.sdb的文件。
2、目标在关闭或重启的时候会把Shim缓存序列化到注册表的以下位置:
HKLMSYSTEMCurrentControlSetControlSessionManagerAppCompatCacheAppCompatCache
*左右滑动查看更多
利用AppCompatCacheParser工具将上面注册表的数据转换为CSV格式:
AppCompatCacheParser.exe --csv ./
工具下载地址:
https://f001.backblazeb2.com/file/EricZimmermanTools/net6/AppCompatCacheParser.zip
*左右滑动查看更多
可以分析出系统在打开某绒进程时,调用了chrome浏览器:
四、防御措施
1、利用终端安全解决方案
如EDR监控默认shim数据库下新创建的shim数据库文件:
C:WindowsAppPatchCustom(32位)
C:WindowsAppPatchCustomCustom64”(64位)
监控以下注册表键的创建或修改事件:
HKLMSYSTEMCurrentControlSetControlSessionManagerAppCompatCacheAppCompatCache
*左右滑动查看更多
2、禁用Shim方法
CMD打开gpedit.msc,依次选择:
计算机配置-管理模板-Windows组件-应用程序兼容性-关闭应用程序兼容性引擎
*左右滑动查看更多
— 往期回顾 —
原文始发于微信公众号(安恒信息安全服务):九维团队-红队(突破)| Windows-Shim维权应对方法