1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
' v/ N7 X; t0 P7 e2 S
* j4 C) C3 ?5 n @" x& S8 o2 f4 |( w軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
3 ]6 P0 y9 y& ]$ t, y, B( ^* e" Z7 w2 b1 X- [" d7 u8 d. G
eval(base64_decode(..............));, b/ `/ h2 l ~% W
- N v/ f# X5 m
?>
" o$ |9 r4 p- C( v& | u$ G2 R ^" j* q" ?1 h( T! e6 _
這樣的代碼,而且基本都是如此,下面是檢測程序:3 P( f; y; Q# @4 O0 W( N
. J7 J) ~3 O2 m6 X) V& J+ `( Lfunction parAllFiles($d)
, z- V7 x! i+ U+ j5 i
- Z; |3 R, U w: u8 S, z$ o. A{
; ~+ @, O, }5 F' r' \% V2 C- [* V* t( X7 T( a2 Y7 d4 X: X
$dh = dir($d); H' Q0 a8 ~# }( f* a+ B2 P+ Y# J
; ]; S# C1 i9 p! ~3 a
while($filename = $dh->read() )$ g& |# b) H( m& Q. g" ?$ A
2 Z# q8 v; o4 J: ^9 Z{% P' e/ U* I G3 H$ E2 a
5 g9 ^) x' G5 ] r& @8 P& d* B
if($filename=='.' || $filename=='..') continue;* ~2 m' H% q m
7 p, }/ Y9 i) c9 G
$tfile = $d.'/'.$filename;9 F( q2 u0 F7 w9 d5 w* q
9 @# c1 D% {9 ~, t7 L' hif(is_dir($tfile))8 a* J: U9 w R& t- {/ R
7 [. u* e/ U0 B) Y- ?* q) E9 F
{
! I/ V! B- P. Z! J v6 |4 v) c/ r/ U* V! @/ _" G/ I* ^5 c- W
//echo "檢查到: $tfile
* [$ d8 P( o' b$ F `) L";6 a5 x* i% L+ w2 z7 i& H
: D0 e. |* J; j+ v4 w% P8 PparAllFiles($tfile);
3 [2 f& s* |" t6 t3 Q
- _) l8 y3 J) k- u4 u}
( C5 V% }: g# M# Z) m- W6 |0 E1 V/ Z1 q1 V
else" D/ U3 `% j3 H5 c4 V
) d1 ~ @' r$ S0 z! m
{
+ v) r' `% r- x; h# F0 C
2 S; v2 Y S# K1 N6 k! Eif(!ereg("\.php", $tfile)) continue;
- h0 K6 o$ A1 Y7 `' m5 e! ~
! ~# l/ Q: c' d7 o0 j6 {$bd = file_get_contents($tfile);
: p* l5 R, O% X# x3 Q# r7 `- ~8 t2 S. F* f
if(eregi("eval\(", $bd)). r4 H. _. L4 f+ h
( N; J! d9 X; f{
# k5 }8 S v n+ y9 N7 z& ?! Y8 o
* q N8 t; @# hecho "$tfile
& D' U& j* n1 W i! \\r\n";- O* P) A( D2 n/ u9 c" J3 `/ G
1 x: S" R" n6 R, A
}
. G: Y! ^" U* R+ c2 n) [+ g
5 H v7 J" E; _* L}% M& e( n: v- N9 }' T( l3 g
9 Z8 u: b% _: ~2 `
}
8 ~) r! v1 y3 z9 i% d0 T
. ~9 v4 C/ F2 W" d& N- b" g# ~6 c* H) Q}
+ E2 `- l- G: `, \" T/ L# @- @9 I: t2 v
parAllFiles(dirname(__FILE__));
. ~! g+ X6 ?' _; T W$ ~5 n- ^* F% U8 A- m
?>* y/ S6 l, D' ~8 Y$ q" T0 U- y
( F) x9 G0 F' H q
使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。/ @! s2 y( y4 F0 I! O
' \, w8 k" ^. a$ O
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
7 R- N: s! p) s# Y( o
- x7 S! a, S. N) G" O2、MySQL提權漏洞的處理( f1 g, y4 I* G6 g
7 e. n f8 O- C3 }0 s, h' IMySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
, @. n5 V7 F7 a, O/ Z" J
2 I$ g# q8 a3 U6 O(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
1 `6 J: X: o0 i% Z: a8 Y4 h j; Z$ P ?' i7 p# ]) e
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
4 z' \' n! k# V' l. S% z* U7 H9 D6 P# t s* {. g
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1) |
評分
-
查看全部評分
|