过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。4 p( R+ C' _5 V; ]3 [6 Y- C
7 X  U0 W" d2 G: G
軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
0 U' b9 o2 ?' S8 B  M, a
3 z/ |/ l  J" e: P: v% heval(base64_decode(..............));+ j+ Z1 K; L& f$ y
  p) u. X; e& E8 F
?>
/ p( [5 Z9 H9 Y& |
; y0 h5 |! K3 ?, r這樣的代碼,而且基本都是如此,下面是檢測程序:
" D* F+ A: d3 y- `5 K* Q$ |+ E6 g  s: ~* Q
function parAllFiles($d)
$ A+ `6 Q! X* i) j4 J9 I3 F3 U' v8 }; Q: z4 b& H9 X8 K3 P
{
" z- j* a/ l. U/ t8 t, b* F1 U# M+ x, t
$dh = dir($d);
5 ?) D% O8 G! t8 e/ I4 ]
# G% z7 i. b% v1 \7 A5 N" z: E5 Cwhile($filename = $dh->read() )( H% a4 @9 f, E3 M

5 b5 S8 }, N5 R. v) ^8 D+ g# x' x2 e3 u{/ ^1 p8 m& C4 k" M+ j" I0 H7 C

) |) |- {7 @6 y& G- kif($filename=='.' || $filename=='..') continue;3 a% L# z& Y; J% V/ }0 Z

( G- R5 g" G+ j3 y) O$tfile = $d.'/'.$filename;
/ s( _% j0 T, ]4 j6 V. E% M2 l3 _
) G6 Z( X1 `0 y  n2 _if(is_dir($tfile))
4 ?1 M' H; L8 t$ q# S+ H. p
8 e- a1 h: w- q1 ~5 g) ?/ \* G7 @{
2 D$ O  a0 H: ~6 }" H+ i, [6 w
//echo "檢查到: $tfile
; |9 F  O5 j) U7 h& m8 J";
2 z+ D2 Z$ O. C0 A0 G6 S5 i/ ]) z6 H7 z* i
parAllFiles($tfile);; |* `- d3 g/ d- T
' a, ~8 x/ Y. G. _: e5 f' }: j; J4 P
}! J9 @% B# y& B
9 D; ~/ j7 P" Y3 p& d% k( ^4 v7 n) l) z6 c
else$ N- X2 V( j; N8 W5 H6 q* u
$ m) x3 X" Y9 \2 F  Z+ _% H8 W
{
. A/ y2 ]: P! D9 W4 n" @  f" g- {$ I, {, F$ X; B
if(!ereg("\.php", $tfile)) continue;: j# }/ z" W+ n7 R6 C8 }4 f

6 ~# p6 T, h; y" ~. k$bd = file_get_contents($tfile);" \2 M; G0 v- r' e2 i% _

+ P* i( e7 e9 P5 o9 Z7 Y! T2 ]if(eregi("eval\(", $bd))
  z- ?* R: @( I' O. h7 [6 i: K: x! |  S2 h! O2 G" V+ y
{
0 G8 y& o0 e9 G9 ^( g6 v8 j. Q6 h
echo "$tfile
) p# G7 ?# t7 }' Y3 M- {3 s3 L2 Y! {\r\n";
% H; [" l1 G  P" o: @' G( }5 Q: J# i! g$ Y
}
" X; a6 }5 m: E3 p9 G8 m
% {! s" `% {! _}
. X5 l0 C8 ^, K+ I. y( k0 r" m* n$ Q7 `) U9 J
}; d, {: u6 G- h# r+ h

" o9 \, s! t) s% o6 X! j7 L" W' @}
) I& F3 @5 x- H8 t- O- x+ v- f/ k* ~* c( J0 I: [
parAllFiles(dirname(__FILE__));
5 X- w5 _, ?" t$ G3 l, `$ g4 \  D5 S; n: _, W
?>5 \, w# W8 ^; D* W3 U0 t

5 y- x0 C+ q, t使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。
1 L/ q" T  g6 z+ Q" D. f
9 j8 t  S6 H0 E1 b4 j+ J對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。9 M: z) s/ B4 S( ^9 D$ C
  ?3 c' ~3 J. D: i
2、MySQL提權漏洞的處理
! c2 d3 f9 S1 X
1 X& D' g# h+ [. e5 W8 HMySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:* @+ F& B# K6 P, Y; b

. V0 N# M5 G( E& [5 _(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
* ?2 l* z* R$ q) v" [( c
7 I4 l# P( Y7 F5 ]: M: ?4 A/ I(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。% P3 B" C- d9 ?/ |* v

, O" _& }/ d  g7 ?! {6 s. \(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

4um點基跨境網編創業社區

GMT+8, 2024-11-24 04:29

By DZ X3.5

小黑屋

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