1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
. W1 |4 q! s: c" y, ] f/ V' Z0 Q1 n. K( A9 b( P Z2 E3 Z
軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:5 J$ T" r; H7 i8 ?3 ?
. W' b& y6 j+ ?1 X; w% I8 d
eval(base64_decode(..............));" t- s+ x/ H7 z7 {1 a% h
! M* Z5 O4 j0 Y2 y$ Z( }$ ^
?>3 v* d3 ]# h: g+ d8 I! S- o
$ S; b& l x Q) m$ Q! F K( F這樣的代碼,而且基本都是如此,下面是檢測程序:3 Z" R! |8 C, Q0 o
& R* p, K+ z5 m% C2 D' ?: ]
function parAllFiles($d)
9 q0 ~; b7 T) b* R4 g, k8 z4 r( H! j1 }% U7 d& k$ N% ], O/ P
{4 n+ X+ o; ~7 w# i# V5 M
1 L$ z+ G: C3 S- d! j; I% t4 y# N0 m$dh = dir($d);- Q2 |* ?0 _* N' f( f y- u
% w% a9 _1 f# {0 P
while($filename = $dh->read() )
- z, M& R2 p9 H6 i& k+ }/ R+ O# l0 C+ E
{( F9 s; @% I' [$ S# r1 s4 j! f c
G4 I3 P9 d) A% L2 n2 y- H
if($filename=='.' || $filename=='..') continue;
+ j1 T2 [1 N$ e7 Y5 [/ Y" v; J: [4 O0 ]
$tfile = $d.'/'.$filename;- u; |# ^% C) f6 y5 i+ i6 l
3 N1 H. `/ j9 u/ J2 G6 M( Y7 {if(is_dir($tfile))
+ o$ B' g+ x! c' h: A
) ?3 p4 y1 W3 l+ z7 E5 g) x" \5 E{) y) z2 g% ^& F% g/ o: Z3 c
) I* A! y9 p& Q' `) \
//echo "檢查到: $tfile) {4 h C1 m2 T; i1 m5 h2 p
";
4 D" N. K! t5 C; [1 j+ }9 n$ {
+ W e$ ?6 V1 kparAllFiles($tfile);1 T) B3 M. Q! r% {5 X% Y
8 y0 q3 Z& g) Q9 c1 b$ H U
}
}! p' p# i) r+ _, ^
1 M% E1 @* c6 o, ~0 z" P* @else
y4 o; G% q, [5 P; |; ~" k& v3 Z5 v
M6 ^4 C: ]3 s9 A! W{
& F& E. q$ ?# n# g! [! h& a0 E; a* L8 P2 s: c
if(!ereg("\.php", $tfile)) continue; q3 E M5 Y% r) R2 v( I
& O$ `( b, n" l& V4 N7 ^
$bd = file_get_contents($tfile);6 `) D% B; F: k, P0 b
# e/ J& F- Y! S: |- s# R2 _
if(eregi("eval\(", $bd))7 j5 N) K" v+ F& o: D1 ^3 t" t( w
- V( [9 b: d y* m d! r{
6 K8 `$ p' n3 |: g I
5 T, {$ w b' u/ a4 Qecho "$tfile
: H" K/ w& z" q& X8 @\r\n";5 E6 q' [ x* A" V7 o
0 B4 p& }, h5 D1 T$ b, p% O}( n$ E' Y1 E; T7 D
; n- x. J0 I5 t/ X9 L
}
0 [' U- ^$ T: |- o& }1 k
. f' L! b$ r( P* x: }}
% b4 c( Z- B0 n4 [7 o
9 w1 f2 _5 J% @: E4 E4 x% |# j% l5 x}
n0 C3 w4 n- c0 N
4 Y; }- k) v3 Z2 A# D$ ^parAllFiles(dirname(__FILE__));& p$ p( c8 F, v9 l7 a8 K; P' o4 j
) U, F! E1 e8 {% ?$ j: ?$ |5 R. Y
?>
& a3 x' F1 U4 U. `
" |9 a5 X7 s# s' E2 \9 Q( Z7 [1 A* i使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。
% Y5 r" [! J# m) z$ b
2 P* R. w! m' B7 @' R對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
; [+ }, J0 l( P$ J0 Q# v: J0 Q* y( I9 b+ \1 O! @! J
2、MySQL提權漏洞的處理# j3 `7 y/ Q+ S% |- _5 H4 l4 m! V
$ v3 V# K3 g: h' R! r1 j
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理: B! p4 p; Q" U Q, m, [
9 G/ u. D) _2 U/ l; O. r: j(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
' Q+ _" X2 x& ` L5 F* \6 W1 ^
* ^" ?; ^0 p2 m p/ O(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。' L! ^, R8 w' g7 k& l0 M
) {2 D: d# {8 l, H; U
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1) |
評分
-
查看全部評分
|