过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
9 O8 d( t  N  G' @1 F# I
, W$ {1 P! K) h: [# }" N5 `軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:! V; C3 W/ {  y! ^

2 M9 I  F- [* {* E) W& ~0 @9 U" x1 Keval(base64_decode(..............));
4 e& L! z( E1 x0 U
3 i9 u/ X! Q5 |% ~+ i( W3 |" l?>9 `. D* N1 U1 s3 |, O9 P

: {6 j; I% s; |% K$ \" Y這樣的代碼,而且基本都是如此,下面是檢測程序:
( \7 |( R9 L+ D( \( q6 W/ a8 s; M* ?& X3 v
function parAllFiles($d)
8 Y6 _- f" K) t( B8 N2 I
- b3 e: u, z/ r- J1 L$ l: j{+ V" Y& J0 t: D' O0 D3 W0 a

& c% j  y* l- L4 Q$dh = dir($d);
# x& M5 O: ]" U7 k6 B2 X4 d) Q# Y. z4 r9 G4 `
while($filename = $dh->read() )! {4 ]. R" y' K+ t
8 _8 U9 v( [: Q" r# x& l
{
$ y3 L% A* F5 s3 x0 a' W# w% b& l1 y3 v
if($filename=='.' || $filename=='..') continue;* \! L" b" O& B

5 [$ a# ?. a2 a6 h4 ]' `$tfile = $d.'/'.$filename;( U' G- A- B' X/ F# H$ N# }' j
" Z8 o1 J3 j# N" H7 ?
if(is_dir($tfile))
* a* i4 C: \) x  \% j; W% L3 t* V# t1 j+ w0 @  x0 ^& C
{
6 n) T0 Y% @! }- G0 M- }" ]) B, T* T! U9 J- B0 n, l
//echo "檢查到: $tfile
2 V$ x  \* b$ {& }";
  e$ N/ D( Z2 g# |4 `# P
! d7 w9 P0 \8 {& MparAllFiles($tfile);# P% v- Q/ k! s! Z

* _- j; P0 Q+ G& s% f# C& ~* U" ~}
, Z8 o2 b: }/ N4 l; F' u3 E
, `7 A" g3 H& J; V. selse
8 X6 m' `; J7 B# P# d/ v' _0 \) [3 G  e) n3 X; q
{
5 y: t7 Z9 N4 h' K. A; |' a) T4 |9 R6 ?. L2 \; M8 A7 m; O0 V$ P
if(!ereg("\.php", $tfile)) continue;
5 o+ v8 T5 P8 v5 U9 x  \# s
3 C5 L2 e" r- a; \8 z% r$bd = file_get_contents($tfile);
# a* v% I1 `! J6 h& o+ @7 M! i% A9 t& U( ]
if(eregi("eval\(", $bd)): M1 s: Z6 y9 ^

2 ]" \" p$ U# f, S1 V{
9 o. ^( _! ?! \) k7 f3 G. X! r# R2 z( N5 O- f' A4 L8 t% i3 N, R. X
echo "$tfile
( I2 H7 n9 x! O& q4 x/ N\r\n";
+ N, H# k5 ]. `( N# J, D7 B- T
7 b+ ]3 p+ e  S}* O6 k/ J# d; E; W  k8 A8 T% ~

. H* p7 K8 ]1 S9 ^& N: a}- q$ z- t5 b. s3 b. I% [

, V, h5 N9 x8 d! O/ r- R& w}  |3 Y, G, t; W5 q# ]* j3 V

% H9 e9 y6 _4 B# X  v}
/ ~9 K6 }: `. U/ v
& p7 a. s3 q- U; l( i1 l. D9 XparAllFiles(dirname(__FILE__));# N' G- v7 `8 S

( r: W6 ?' w. f% r% E8 ~0 z- T?>6 n" K# ]1 ?2 ]* v' A( c& L

: c! ~: _6 U8 n5 `; \: d使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。
/ L8 Q* c4 R5 E* L# u. j! ~0 j" `( z/ }. Y: }2 b- f7 I
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
4 T' |1 p/ z" ~9 ]: e& N
( s4 g/ _, [6 R  n# I2、MySQL提權漏洞的處理
: R7 h; l: M$ O1 {2 c1 f  [6 Y& u  r& [) }/ U- V) a- M2 H
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
+ N$ N  c0 e& h( y1 a
' A# N: S9 J7 B& k2 T' P(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;4 v) Q: G8 _, `& W% R
0 \0 E: v3 h5 q9 N
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
8 q- b" d; c% v. A! J5 x5 V9 Q( I1 O3 h9 a7 U( q* i7 S  V* z
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

點基

GMT+8, 2025-11-27 21:52

By DZ X3.5

小黑屋

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