过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。: k5 n' D0 `3 V6 H! q5 _( ~

- E! }" u2 Z" {* f' W% t7 a軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
; X7 f; [2 b# I
5 m" \1 x/ t9 i$ ^& C; `eval(base64_decode(..............));+ P( h0 a% `1 I
# y" {4 U( f! L* h: E* C/ O
?>3 F* E( t0 c! I" |# u0 @

% f6 s- C* v& c. B這樣的代碼,而且基本都是如此,下面是檢測程序:
( Y: v; e" n( A" }5 q5 I! ^# E" g  |* H( W5 Y1 u4 s
function parAllFiles($d)
! B& T2 a1 s* Z+ T. v; X
0 O- ]$ u$ @$ g/ w, a4 g{" q7 s8 {  v/ Z# ?  Z! c; r" H( E
/ l1 G! Q+ k3 m( ]) V5 [
$dh = dir($d);
: @- K# O: m% \; t" J5 G4 s; e' i: \- W6 G; ]# G' F
while($filename = $dh->read() )
* ^) `9 u8 J& ]2 I4 u  X( a' G3 o2 Q8 {( ?" U; [9 x
{
9 O9 r7 r0 M+ W. x  z3 m% R
- e1 y! w( @' A0 w/ q0 u3 Gif($filename=='.' || $filename=='..') continue;. W8 Z$ N" \! s

' v. z3 {. Z; y( l; @$tfile = $d.'/'.$filename;9 r! ^( F# {/ M$ N+ i0 t

5 Z! `- J) r9 u6 Eif(is_dir($tfile))- ?# G: X3 _1 c1 E% e
5 g/ p) ?/ c* q7 X4 M. {
{- N( m( ?# [# @: Z! D
: {5 r! h3 _) I" }
//echo "檢查到: $tfile6 d, u" h; g% x: ]: m
";
' q" ]0 I- Z" ]
$ z# b6 t- f. T0 S8 vparAllFiles($tfile);
* _: P  b/ e* S# E8 g  z8 o
% n/ _0 K  Z& j! b}$ Y  X% N  q: n

1 H' T4 p  [& ~4 c1 Z! d. Melse
8 e* I+ G' a+ r5 N$ E; S7 @4 v. @
, M0 _1 H! q* E6 y' a* r{5 h- J3 ], |3 l4 s) j
+ n9 k+ x, L# A9 ^* _7 ?
if(!ereg("\.php", $tfile)) continue;
8 S. u" y2 d) k* @8 Y; ?& \$ s: v# ~, i
$bd = file_get_contents($tfile);# c# w$ _. [* [8 x  E! N

2 m) o4 k, ^; m: i! j+ a& T; _if(eregi("eval\(", $bd))/ g  u: F- n" ~6 h; U: _% K& S
9 D# B" ?" p# N( Y  a
{
9 j1 s' \  Z7 S! V: `; U6 p1 F- F6 X; C' i7 t
echo "$tfile3 J9 K. |9 j' ^) V* K
\r\n";+ H+ X9 L% m  b6 N$ n2 w3 V
2 Y1 s; t  b2 f7 L: |. V* O
}: ^  R; O, E! C! J) u7 T) I

5 n4 k  o  I1 i: x6 y, ^}
, B+ f! l: l8 l6 F! d3 _8 S, p2 M$ H- _1 H0 H$ I1 c
}5 a& K' X9 Q1 b3 ?. w* g
- j& f/ o' L) a* ?
}9 ]  k+ p$ a$ D, R

4 q7 \+ E. Y$ k. \7 b( EparAllFiles(dirname(__FILE__));
; i5 |& h( {" e! `8 e) [' @) m% T( a( m( N8 R( g- R1 m
?>
8 e" M5 p7 l4 n. M
+ P4 T# Y2 b7 e" j使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。5 N: k+ m+ I3 n1 M, ?
, J6 H( s/ @  t0 c5 W) L+ F& f+ T4 T
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
* z* _" g0 R6 d; h4 Q. w4 d/ f  v$ \. R. x4 n# G6 b: e0 T, a7 w
2、MySQL提權漏洞的處理
1 l6 I* r, ]4 G4 m: ]! u5 t: p- E" V- A- x
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
4 W: e& y- i. {( s8 n. N) J. q3 o# N5 S  K/ L. I
(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;4 D. t* g+ X8 q6 e2 k( T3 B! Z
% f% Q) P% Y% |# R# L
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。; k7 T5 R0 {8 p) V3 i0 @
0 g' d. J0 U' z" F& {0 j' N# y
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

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

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

GMT+8, 2025-2-20 14:53

By DZ X3.5

小黑屋

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