过期域名预定抢注

 找回密碼
 免费注册

網站木馬檢測小程序與常見木馬清除方法 轉

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
# f( U0 h! b- e3 W5 M; _2 M: Q4 @; F; X& _
軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
" R) {# K  \. F9 _3 d
% ^4 `1 W6 F- |eval(base64_decode(..............));
4 {0 Y3 ~* n7 T4 ~, Z  s4 T1 o5 q9 u3 z4 `" [
?>
5 K  e+ o$ R: X( J7 G# i7 }
: T, I6 J  ^+ d& M3 ^這樣的代碼,而且基本都是如此,下面是檢測程序:
2 o' T1 `. a. h! H
$ g+ v3 Z4 t; q) wfunction parAllFiles($d)
' v0 c) \, L9 @+ w5 m
' n, g$ J# E6 V1 I+ f1 w' m{
8 u/ j: D2 c" |7 u6 n4 M
3 M+ {4 {/ C3 [, f$dh = dir($d);
$ |/ d( h5 s5 P4 W' Q% x1 o: J- ?6 ^" }( W' l$ W5 h- o/ R, q$ Q
while($filename = $dh->read() )% J; I3 S2 G& N& x7 b
, Y% W& J. O- H
{# e. H& w% y; I' b3 S

7 Y5 {$ W' g# X8 ?" j& E; C2 z: iif($filename=='.' || $filename=='..') continue;# I# \2 H& m9 h$ `  J4 n8 l* g6 ^4 g/ N

, L% i* J# o0 X- q5 L0 V$tfile = $d.'/'.$filename;* O" Y) F% D& c- b4 Q/ f

1 z+ R; ?8 y, ]  P- q7 Q& zif(is_dir($tfile))
$ l7 K! `; y) f/ s9 K; ?- P" ^- n+ [
{' `. o$ n' O9 }
7 ?( E3 v  d1 X6 j7 Y. W
//echo "檢查到: $tfile; h& M( a1 y4 u% p& W& p: |
";
4 ]6 E( W- O* X' Q( B; s
8 u; ?2 B- W. _* l+ v; n! CparAllFiles($tfile);8 E# r8 y& I9 J  A
. c. C# ]1 h5 |2 {7 \3 K, P1 v( t
}
/ Z" {+ M2 f; ^$ y) `2 s0 J8 a/ ?' M/ J; I
else
$ d$ D& m8 D! v* k* |! e; _5 o5 T: J4 D) h3 w% K- B
{
, W# n" G$ K0 d: A9 z! _1 P, @' d, s
if(!ereg("\.php", $tfile)) continue;
- x' X2 Z5 `( J) n2 g0 d  c, j6 q/ }8 l% q" _* e% H% a
$bd = file_get_contents($tfile);. F/ e3 t! n  L) r% n$ b7 B1 R, B
/ N' l  [+ L- i
if(eregi("eval\(", $bd))
5 C0 d; Q. V( x% k
6 j5 q% Q9 T2 _0 K3 J/ M9 @{
5 g9 S  E2 r) U# ~, b. f; _% s0 W/ E8 X1 `6 C. ~) n3 a+ @) d. P. G+ Y
echo "$tfile' x/ d1 x# j' i5 d- Y
\r\n";- j( v: v6 O/ F
4 x3 b+ F" ~% S. ?& T+ u3 @6 ]
}
7 O+ f* M* m, g; ^. V( u3 G" u6 z8 C: i1 `( @1 E7 t$ J
}
* I" V& B9 Y) T* D- c3 i7 P  Y5 f9 T$ j* u$ W
}
% H6 |" o" l! G7 T' t* b* o) n8 F( }% _. g0 W  ~! S
}
$ q4 w2 v( ~* e4 A( r
9 X& t+ m5 v0 |1 z3 W: FparAllFiles(dirname(__FILE__));
1 q# ]. q9 w. B; N
0 ?0 F5 s/ C  R0 e& o/ M8 o?>! V/ P% O. E  D$ V/ A
$ x7 s/ x4 n' e" W+ c. g0 K, a9 U# T
使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。4 n! v$ A+ U  d, W2 |0 r; w* |: l/ L
( w/ K9 M# h% S: u
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
5 w+ `( l' o4 @' \. H7 V
# Y5 D  ~$ r1 b" P( g& L+ f2、MySQL提權漏洞的處理
3 [3 B8 `6 ]& ]# n! u/ M; z, \6 [, i( f
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
4 Z# i$ y* J- I+ D5 W& `; X; a& E
/ J2 u3 N9 s1 {(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
8 j; D( o! I% s
/ ?  g3 I! P* A2 s' t* C(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
7 h' C: D; m% r. ?
& s" `! i% W) s(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

參與人數 1 +2 收起 理由
nod32 + 2

查看全部評分

您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

點基

GMT+8, 2025-11-27 23:43

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表