过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
& u& i4 T+ L' E
( E4 Z$ Y+ c8 |2 D7 B& r: [7 N# I軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:7 V1 j( B- L% U& }' \

1 A* q4 e) i$ v* K) N. N+ g' j( H* Neval(base64_decode(..............));
8 s7 Q& U) G# J5 d- M/ `1 O5 R8 A$ j! v( b; h9 D) t3 B7 w
?>3 c: K5 `8 B# @) y7 c( C% F
& x( @% p$ X$ ^3 j7 k" x- [. }
這樣的代碼,而且基本都是如此,下面是檢測程序:
5 H& @9 L6 \" O; g2 X" ?9 A
4 i% I, x" @: O) s2 e; ffunction parAllFiles($d), M3 E2 t7 h  m; L: U# c* G9 U/ |

: V) q: q8 F  `+ _# K, [' N{; f( j+ C4 j' ^1 C* A6 b

/ C  q( u4 J* P3 O7 ~$dh = dir($d);
8 @5 B" A! w+ O. W: E# j7 S& k0 @& m( k- }  k' L; x
while($filename = $dh->read() )3 o& T( b% K' @0 b4 J8 I

0 x& m* a, N# R3 v{
8 q. Q! f/ h  {$ v" D. y( W  A
( M6 |8 c2 ~- r- ~! [2 A( }if($filename=='.' || $filename=='..') continue;3 a+ n. h$ v; ^  t6 S" [. D

& `+ P$ k* ?  g. K$ T$tfile = $d.'/'.$filename;
' d+ @/ Q- J7 [* ]. S( C3 m% N1 d
if(is_dir($tfile))
* B# G2 G/ o0 d- r! Z7 q
0 H; L$ R) k2 f% G* D7 {/ ^0 b+ i6 D{# Q$ n1 H2 J* Y3 j5 l+ n- k
; B2 O8 q' y5 y
//echo "檢查到: $tfile, i- ?" N9 f7 c& \* u
";
6 O3 w( B) R  y0 l8 y. g7 n5 X! _7 M& t4 `* k
parAllFiles($tfile);; H4 c7 P& Q$ W0 X; p
9 S& \$ T7 v+ J' J: w
}
) x0 v+ w( J% R! T9 o
0 W5 P1 V# N- m, K. i$ ]else% z4 l$ Y2 t7 M! }, D# u  q

2 Q" i; c' w: q7 g{6 w* ~6 {0 o* W1 B, R  D9 p
& J- ~9 U& @/ S9 P  F. \$ b
if(!ereg("\.php", $tfile)) continue;  h& v! [6 j% Z5 v3 w2 N* m

' J; ?& J4 l4 I/ C$ a# T/ p$bd = file_get_contents($tfile);
1 ^! X  J: k; d9 }4 `2 t' w0 @
) v1 b* S4 a4 V$ M3 Oif(eregi("eval\(", $bd))# D& H4 C9 |; r0 j

% d# A4 F2 E' N6 |5 x- ?{
7 O. w7 Y( ~3 x$ t% ^2 }& l! \; X# f( D2 m8 z. j$ Q% {
echo "$tfile
# H: t3 c. e# w\r\n";0 h: _# a; Y0 b; L& E& o# w2 O- X

) k; a9 l: |; l}' o( d3 V) e7 [8 f& B; o0 ?* i' E% U
- Q; w2 t; Y) O2 {) z
}
9 N  F6 Q: k! V% j8 u
3 X& u* x5 n; j9 T}. @: S) k# }: [, ]  I9 ?( U" q
7 x  X$ S& r$ r2 y- c
}) v* `6 v1 ^9 l; Y. J
  `- W1 X- \1 s, R+ y! \4 {4 S
parAllFiles(dirname(__FILE__));/ q2 ^9 H+ u' _- F6 R) @

  X8 ~+ h0 x7 o  J8 h: G?>) q- g2 i) Z- n  H: ]6 u
( _* g. J* |+ y4 U8 z( [
使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。1 V0 `# }, R  m

9 M- ]' l$ z. Y1 N. S* h4 z對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
7 j' b6 T$ P0 K6 L3 F# _# |$ `4 {6 S
2、MySQL提權漏洞的處理
; b' ?0 E. M' W" w6 ]8 f9 N) X
6 r2 N  F9 @# g( x/ O& eMySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:! _5 t. C2 V8 K( }+ P

2 b! h) t$ y# U6 L7 }8 t(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
5 G& z; U2 H6 F1 }; {3 a. Z; {( P0 U- K2 l& B  G( A% k1 n
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
2 R3 o3 C" P; ?1 f$ y1 |; u3 T( Z$ \7 z/ r( ^
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

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

點基跨境 數位編輯創業論壇

GMT+8, 2025-4-8 00:02

By DZ X3.5

小黑屋

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