过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。  e# x6 l+ q+ g% Q
1 j7 O$ g" \8 u$ @
軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:" Z8 e! S4 Z; ?& i* J0 ]# Y. P7 {8 Y* ?

  Y. A& l/ P' q0 ieval(base64_decode(..............));. H" n7 C+ @) S; c+ l
* t, u2 \: ], G3 c2 d+ G$ V
?>
6 r: ~6 Z" ~; e  c7 T  s: V( `& v
這樣的代碼,而且基本都是如此,下面是檢測程序:3 b& o7 L% k- x8 w
- t3 r  m' p$ Y, R  q& N$ S" L
function parAllFiles($d)
, ?( n1 a! s- Z2 {: k) ~' C  n) w9 \
{
' m3 |! ^7 A$ l5 E5 i+ w* @" v1 ^. t2 G9 t  ~3 e
$dh = dir($d);
- C. d+ p( e% j" n# J, n! Z) v/ s0 `! X% i
while($filename = $dh->read() )
8 `, j$ n+ H- t! ^; }) X9 t8 X
+ ?0 v# B. t3 M{. [/ K; _# ]( E) v. B* p0 G* k! ~

9 L7 X( e( @* Cif($filename=='.' || $filename=='..') continue;# R  q$ Y( y5 w+ D7 T

% e& @, P1 Y* o" U0 q$tfile = $d.'/'.$filename;
- |2 O+ z7 i  b4 ?3 D( b
, ]+ w) Q5 E4 S' \& vif(is_dir($tfile))4 B" [9 g% n. M4 R2 f6 F( @

9 i8 Z* T( L- X# i2 J1 K7 n) ?{. m( M& m" V3 t* L  J

9 z4 z2 x2 x2 z7 H$ C5 y8 v//echo "檢查到: $tfile
2 A2 g" |  `0 P  X( u";
- K+ Y. j; W( h! P! w8 v8 Q+ O
' W* C& P( z& K: ~parAllFiles($tfile);  \* {1 v% Y' ^, Z. F
; Q3 S; U$ y% Y& {
}
* t) O8 J% G5 o7 G$ F0 X- y; T8 h+ B! u) f7 P. S! F* J# b- p8 n
else/ W- D9 i3 L4 W5 ~3 w& p
! X, e2 l  Q9 [- q% g- C. j
{
3 h% B' {4 `+ e! `9 z5 _- u2 E
: G8 P/ U5 N% L% D$ q: V: hif(!ereg("\.php", $tfile)) continue;+ r- C0 |) C. {

. n, Z$ m6 T4 b# v1 K$bd = file_get_contents($tfile);& T" u% K! m: Y* \7 @& H7 J# i

3 H. g9 R- N1 O0 l% hif(eregi("eval\(", $bd))) w6 r0 n8 b; {! p% {9 A$ `

5 q  Y4 B% R2 O{
  D, A7 _% `1 P
" }% t; \+ \9 Z/ b0 B. eecho "$tfile
0 N' Y; p+ t9 `: I. C\r\n";9 R0 _- d  I/ r3 U) g) X0 \
* U' S$ A0 J# i% s# P# M1 ]
}
6 Y+ f/ N0 L* W4 ]; b* u7 f$ h" w5 T" X2 W5 r: J
}
, p/ x0 J3 i# k8 ?
6 v8 l. W# q5 R- X1 W9 ~, n}4 L1 T& p2 e# c

' f( z0 i% M+ {8 k7 E}% i) _( `3 _" L" B7 D2 g: [
+ }0 [- f" B8 O( ^- t% J
parAllFiles(dirname(__FILE__));; V* |3 m4 a6 m: H

" _9 T0 }5 O+ {& |?>/ q4 `; q/ l7 v% o, Z  W

3 W$ R  V; g8 K; B. Q使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。
& V5 f# W" W9 k' }+ Z; G* [  b! f& Z; P$ D& W* O+ J
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
. @- d" w" o. d2 C$ L( P
8 d2 t% A" ~% w0 K5 Z8 g% E2、MySQL提權漏洞的處理
* E3 _- ^. ~# a3 U" Q; G8 G" @, I' w6 ~: m8 l
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
; N- a% T4 I& h$ o4 q* U9 c3 J) {) g, A3 Z/ W' c- n; W
(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
7 g: O+ W; P/ e. t, A2 R+ u6 w8 C( a" \! {; @2 x  u
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。3 g2 J* i9 h& Z0 D$ {# l

: S: V. P5 J+ F! n(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

點基

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

By DZ X3.5

小黑屋

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