过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
. \# @0 U! O" }
/ y1 Z/ r( Q% T2 N. P' ]( B軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:9 T$ m' m0 y  e7 f
* U! V( e, W% o" b; K) m& f
eval(base64_decode(..............));  J: i. p6 x: R- m7 S* N/ d
5 Z; j: g# l( {
?>
# h6 ~+ {, Q% v. n3 x  j' C
# z$ _  D4 U0 Q這樣的代碼,而且基本都是如此,下面是檢測程序:
  s; g& e9 n1 H5 R8 }+ r: S2 g( v" [5 \$ G& Q' ?
function parAllFiles($d)
5 d. l' |, X& |$ H0 }
7 }0 ]' z4 g6 y: W8 S" ]{
; ~1 o1 C& Q$ b6 i& l! _5 p: X
* H' O1 c) g6 z$dh = dir($d);
3 G8 S* m( b7 I- d* T0 d
# m4 F# h# V2 K" w8 O/ D% mwhile($filename = $dh->read() )
' y9 n' L/ [$ }" ]0 _( n. B' S
1 C7 t3 I6 G# {  L6 b{0 Z9 h" z. p% Q) ?) X, T+ I
( ^) t; d7 i; P0 g
if($filename=='.' || $filename=='..') continue;
2 ~: l% J2 d- v) u6 p7 _! c
1 q3 S& z  R# {( W/ I  Z9 b$tfile = $d.'/'.$filename;) X# M7 r2 |. V, e) Z' `+ m( T
) m  y9 C* G5 @0 l" b3 u
if(is_dir($tfile))
* q% J# t+ j4 W3 x" u
; Q6 T% Q1 ]3 q{
. u5 K5 [2 A, c) C" v2 ^0 b+ k5 P+ ~3 {2 S
//echo "檢查到: $tfile
) a, b# a2 j$ T";) `- j! w/ H8 m% {  O) f0 J7 a; z

# `, \# w( a2 F% ^9 O# v- \parAllFiles($tfile);
+ k0 {0 p2 E  f  s  |3 w" w' {+ B5 i8 p/ }( E5 ^8 b0 B, [6 r$ i
}; S. Z1 O- X3 }# s
* j" K  J# \! C$ A/ R1 n7 O
else- M" ]; P) s8 z7 z7 C0 ]* \
3 T5 B* I& @& J
{' @# ?. I( w; I, y$ {# V! \+ H

7 h% r( \! p1 o" F; V$ Zif(!ereg("\.php", $tfile)) continue;! y: V: S/ W0 D
# e: {/ G2 F/ I# T: U4 s: @
$bd = file_get_contents($tfile);! {( r$ k- w+ v; R; M; _
$ ~: p1 }* ]1 m' M! N  s0 Y
if(eregi("eval\(", $bd))+ ~# Q2 c' A& V

" e5 }6 y* v, M0 ~( Y{
* g  V8 @5 }/ F2 v
* {* d+ o5 ~* P% z4 q! o7 uecho "$tfile
- ^, C: G, V3 m: G% t5 G, ]* e\r\n";
6 l$ v+ z# Z( _% t7 s' [( k2 c% b8 U! k# W" T
}
, m. F4 [/ A0 ~' l2 B" h6 l. ^
6 n3 p+ Q$ ]+ ?( H}
& s  Y1 `0 W/ {, ?& T& c. ~* M  ?  \) g( T
}
6 ~( @: N/ n* K9 O  p  [
! n1 V) e* y& p, E1 x, _* Q}
" R& x; y) j3 R0 v0 m/ ^( M8 }4 h. F  O0 p
parAllFiles(dirname(__FILE__));/ W$ W. H& `' W2 I0 |) F
) U8 _/ r2 E) |4 J8 i
?>/ s8 g8 l) o) y% F  a6 l9 I) U

1 \1 k8 g! ?8 n6 S使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。1 M7 B  V" y/ [
- F* R7 Q+ t+ s1 x# g: _% e
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。' ~& v/ N0 @) t! H! E2 c( \$ h# s+ g% S

# U" I5 }" p- i2、MySQL提權漏洞的處理
# q0 R! j% e5 g; Z' ~& n# p
2 f" [4 p2 T9 \8 h  I- SMySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
/ y2 O. g& T7 ]. w: Y6 F
& `8 X$ t- Q1 c, Y" [(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
( i9 T  }6 f6 p+ n6 `8 p) x/ d
8 N4 d  |& J3 R! o(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。3 k' g2 c& g1 U. b" h1 b4 \6 P

. o0 j+ P% l, Y5 ?- I(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

點基

GMT+8, 2026-7-14 23:02

By DZ X3.5

小黑屋

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