过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
! u* z, N  D) U8 E
' e5 U* G  B) c3 s1 B; \軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
) r7 ?" f, |( \: {3 w
0 K7 J0 E' e- l4 E- Keval(base64_decode(..............));% F7 P0 g7 z- }7 t! T

1 x7 Q8 u) t3 M2 ~, ]?>
+ p: E9 I: k! x( y, A0 O/ @- R7 [1 Y5 f$ s* f% E- g9 {
這樣的代碼,而且基本都是如此,下面是檢測程序:! L2 h# _# \' `

/ O* X, j& d% B. {% Qfunction parAllFiles($d)# B4 s6 v1 H# A; y( B
8 j$ B) S  {( q. F/ X! _- K
{
* Y2 }, j* Z+ n  u" b- }; K% R
  Z, t' L; s$ c, d* s$dh = dir($d);5 N- _" S, n7 B+ z

8 [/ d3 c9 o, B8 W) p  i9 G- lwhile($filename = $dh->read() )6 J$ S2 z, @" k; l

& ]( V$ Q; L% Z{/ T* E( ?8 U; Q1 Z! `
5 R* r2 o$ `" ]1 n& a# T! Y3 |" p
if($filename=='.' || $filename=='..') continue;
# a: i8 M8 {  a. U! b% G) k8 |, T2 X5 P- u9 `& q9 j
$tfile = $d.'/'.$filename;
5 n0 W; C/ Y1 ~( b# L/ a3 \4 \- W# R9 O. {
if(is_dir($tfile))
4 B" L) j$ o" g8 W  x4 x  H+ @5 T9 N0 O# \
{9 K* l2 s" o* B4 s, |
7 h9 |# p8 u/ {# v  A* g
//echo "檢查到: $tfile: e: u% q& |. h5 V& j
";$ g$ P* r& A; U- i$ [$ f
) z( [  C- _; K9 t7 p
parAllFiles($tfile);4 j5 D" z1 i7 U9 \: N4 h  n" s9 P
* m, g' W, O  i6 \4 w
}
- P, f: H4 m+ N" V( e  J3 \% v7 _4 l4 e3 f2 Q7 s" ~9 ?
else
, M* c, _: p& ^; \* g
9 q; _/ L3 w0 @5 l' a2 S0 c{. _4 G8 \7 s/ \1 o/ E# |+ w# G+ H

6 O5 n! e6 I2 @/ o. P. J5 Iif(!ereg("\.php", $tfile)) continue;
# s" v9 Q, F' h- h5 j6 `5 n" p7 L3 Z" z+ L5 E# b8 S8 P
$bd = file_get_contents($tfile);- d9 P/ [. x, J- c8 c& J! m3 P

9 U) o3 m5 ^9 f7 t& i3 mif(eregi("eval\(", $bd))
2 X% c# ]5 ]2 e! I9 L  |  J* Q: z1 r
{1 X/ m$ y" A3 @) {) \7 i; ?6 m* K" s
# y4 M- A, B" Z
echo "$tfile
9 x$ d5 ^' h! {1 M: r4 c: o\r\n";
; h* W* b( R) O! c( }& q  K( a7 s/ Q) |& D) R- B, c, D
}
8 @/ z/ B$ e5 h1 l6 o& K& i) G: ^# {6 k% _7 d
}
$ i2 a" b: d/ {# y, i% U. L3 P1 H% N, E+ L* z7 t
}0 V6 f( d) i9 o

8 V# ]' B& B6 Q3 {/ T2 \}
6 `- }* g- u# F2 z  c  Q9 U0 K& _+ A/ A, w
parAllFiles(dirname(__FILE__));
) J* }: D. |9 N  ^! y* L, g9 t: u# A& e. s4 j" y, y; q- @
?>4 `3 i+ C' {, q7 n6 x
% E% T6 K/ O3 G& [1 E' \& g
使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。+ Y+ B  I& z  l& Q) i
* I/ C1 M8 k8 t$ B  q/ H( g
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
) i; ^( p/ d5 m: z; T# _: `% a2 s* o5 }4 @, {/ S7 \
2、MySQL提權漏洞的處理- M2 {' B+ h% c9 L5 x2 U+ D! r
4 V( w: E+ ]6 }# W' _! F1 O$ z2 {
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
$ v' l" w' t# x1 B9 H+ M
! u1 d2 B' u0 R7 B' n(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;
1 D  X' G8 a! N5 A3 X- z7 r% Z6 S1 }2 Q) v- l
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
4 f2 j& x! d( p$ s  k/ u6 Z
$ R1 m6 s6 D* D& H(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

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

GMT+8, 2025-7-16 05:02

By DZ X3.5

小黑屋

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