众所周知,Windows系统为了防止胡乱对系统文件进行改动,对不同的组或用户名对系统文件的权限进行了限制。

Windows将所有系统文件的所有者都设置为NT SERVICE\TrustedInstaller,并默认仅允许Administrators对系统文件读取读取和执行,而没有允许完全控制修改写入特殊权限

system权限修改为只读 system32修改权限_system权限修改为只读


system权限修改为只读 system32修改权限_系统文件_02

有时,恶意程序为了更改系统文件,会先重新设置系统文件的权限。

360安全卫士在遇到这种情况,会弹出一个黄色的提示窗口,警告可能会有风险发生。然而,火绒安全软件个人版似乎对此风险行为的拦截存在漏洞。

为了简单地测试,我们使用一段简短的Windows批处理脚本,模拟一个恶意程序试图修改C:\Windows\System32\cmd.exe的权限,以便之后对它进行某种更改。

@echo off
takeown /A /F C:\Windows\System32\cmd.exe
icacls C:\Windows\System32\cmd.exe /grant Administrators:F
echo 篡改权限完毕。
pause >nul
exit

使用管理员身份执行此批处理脚本。该脚本先更改了C:\Windows\System32\cmd.exe的所有者,以便之后可以对其权限进行编辑,获取更多的控制权限。之后,再赋予了管理员组对cmd.exe所有的权限。

执行后,火绒没有任何提示或反应,日志内也无任何记录。然而,我们在测试时却已开启了下图中高亮表示出的火绒自带系统加固 文件防护规则,以及其它可能相关的规则。

system权限修改为只读 system32修改权限_Windows_03

很明显,这是火绒的一个疏漏。

目前,该问题已被反馈在火绒安全论坛上上。并且,之后,官方似乎也意识到了这个问题,对该漏洞设置了Bug ID 38826。

幸运的是,在官方将此漏洞修复前,我们并非束手无策。通过在火绒自定义规则中导入一个自定义规则,我们将能够阻止部分类似行为,但仅限于来自命令行的权限篡改行为。