过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
+ T$ A5 a" k- E" D: \" N' i4 c) v0 t  G. z6 L4 z% A/ V+ l+ n
軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
) @, D" h7 i& z$ M- {' Y1 L! @6 U8 S; Z0 a8 r- X  T! D5 T
eval(base64_decode(..............));; [- M% M6 l7 p0 z6 V5 \" x
' h1 l1 v9 \" T* p. d0 h
?>
) T: z6 l, v, P
" D0 C* y' y- z4 z, }2 g" N這樣的代碼,而且基本都是如此,下面是檢測程序:
  V* @/ P- ~7 S3 ~6 W5 x+ e0 R! e' w1 Z. {
function parAllFiles($d)
2 E) \  e$ R' k5 g/ I
$ }: m& {2 b/ g! V# _8 [& v{
/ t) i  J) j. A. ^) ^$ h2 b5 C! o0 g7 h0 ^, ]! Z
$dh = dir($d);
- s& p4 ]5 [7 {5 _0 J; h0 ]
7 W/ T  P3 U% V0 Qwhile($filename = $dh->read() )
2 J7 ~! q# [) q" ^0 [$ z
- V, e5 w1 e* f; K( P6 ]{
. |* u/ e3 W( [$ O/ _3 l$ t; T1 C) G6 g
if($filename=='.' || $filename=='..') continue;
5 T& [/ U$ r* L7 S& n  W, C/ J: m1 O
$tfile = $d.'/'.$filename;3 H8 t8 N' S, ~- A, T3 `

& l! M% m4 I* N. h  Nif(is_dir($tfile))3 p3 n5 v% e) Z6 P! n; O6 w8 b
* B( _; C9 a. {/ C" }" t; U
{
% g: o: v; O) S2 X6 G7 _, ?: O' q. x0 J" O0 X
//echo "檢查到: $tfile( M9 E3 U7 |' i% A" {% _
";" V+ m9 S  _  {* ?1 D" G
+ p+ y9 O/ D# q
parAllFiles($tfile);$ q: _7 e6 T9 o1 P+ z/ m9 D
. [7 k' K  O) ^$ h9 h0 M
}
* e6 V/ O! w% O7 \% X% k" L+ F" S# H! m
else% _$ t' @% y1 `: q
" E3 E2 t2 u! j, V, m4 L7 I
{) k9 O- Z3 J0 M$ h! {4 ?
  z# W: v3 J5 E. A$ `4 _& N
if(!ereg("\.php", $tfile)) continue;' o# n" j2 V- w( X, Z- s- e* {
. |5 [* }6 M0 h' K9 n
$bd = file_get_contents($tfile);
% S( g' f8 G! p# a$ g  `
0 L7 P" m( e! _: p, [. gif(eregi("eval\(", $bd))& F% U7 [& Y4 M% C

5 j. [% g$ x  D" b2 f) d3 T{) I$ x( t: ~' C
- I/ J0 M( I% h4 S' S$ {  ^
echo "$tfile
; Z7 o. }$ I- ]! X\r\n";- N0 v5 Q* `$ T
; u0 A6 Y9 w# G% J4 T7 b
}
' E% s; g) I. Q& F& l4 y' h8 A. [, D2 n9 B0 n
}
5 C( h0 u7 `/ H' W9 z* t5 ^: R( S+ s; u) R& W
}- P* T  U6 Q( T5 x1 o  n

9 P# ?* n$ b: X! V}
! J* h) Y, L! F$ `7 {/ ]( E
& r3 R0 O1 F/ ~. s, U6 YparAllFiles(dirname(__FILE__));4 J" L0 p$ `; ?: {- j; j

) p4 p$ q8 c  @. k! j?>
$ Y+ F# A% x$ \$ E% n* d  W* q0 o7 V
使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。+ C! P7 K! N) q# c7 W/ D

- P( b" P* f# k+ W對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
! o+ O& b) N6 T3 V- j8 v, h' A  G' x* J  {( q7 M
2、MySQL提權漏洞的處理
7 P* ?. ]) a  I2 J( }& O4 S
1 h$ S9 M  H0 ~( j8 b* bMySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:, k8 R2 F2 P9 ^7 ]+ m
- ~( P9 ~) n# X9 O7 Z+ [7 i
(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;5 w- w  D( b  g: X- Y* C1 J
7 n, Q( _  E5 j" W& r: K  \) W
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。& y/ r5 f" \, ^2 i% s
5 \- f( T5 W3 r% W( l$ Z9 d! X
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2024-10-30 17:18

By DZ X3.5

小黑屋

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