过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2009-3-20 14:35:08 | 顯示全部樓層 |閱讀模式
1、中國的開源軟件很多,但同時也給我們帶來了很多安全問題,網站掛馬成發站長最頭痛的事情,在這裡我寫一個檢測網站木馬PHP的小程序讓大家參考。
) P9 I( B: s8 N) @9 R. X) \8 w
2 ]. W4 ]5 k. ]% \* f' W: ^軟件原理:一般的木馬都是加密的,所謂的加密反而讓我們檢測帶來了方便,PHP木馬的最明顯特徵是使用了 eval 與 base64_decode 這函數,這樣就很好去檢測了,當然有些CMS的正常文件也可能出現這東西,區別是CMS的文件打開是正常一行一行的,而木馬通常是:
. \( Z* B( q+ J1 \# _+ \1 `1 E' }+ N; @* L+ j$ x( X
eval(base64_decode(..............));. e3 W& T: }* h( S6 L7 \
" O) V- s( `/ Y* r
?>
2 z0 O9 W! C  M, O1 R' {
5 _9 ~, u6 G7 v4 ]( K* H1 H這樣的代碼,而且基本都是如此,下面是檢測程序:) X& L! I  [4 \
& u9 i9 Z7 \3 P) \  Q& f
function parAllFiles($d). {5 c$ ]3 ~) v; e0 i

' U3 L6 w+ a1 E{
* r6 D$ P5 j3 r8 y& r: Q, Z4 t0 z8 g3 |) n7 i
$dh = dir($d);
. |4 v3 Z0 T$ g  Q) G
: D6 u, _4 q9 @& B& g$ }while($filename = $dh->read() )7 I7 i% R; x5 o- I
3 u- S; E: m/ B2 \
{5 {3 S2 y( Y' X# k1 x, f$ ~+ C% E1 V

, t4 ]# r" U( U$ |# i  S# Xif($filename=='.' || $filename=='..') continue;
9 J' q; {2 T& C% g. C
0 u- J, ]0 a. D. |- c) k$tfile = $d.'/'.$filename;5 q' o% j8 m& I3 A. n

2 B  r3 }! Y' X5 z# U( D, }( ?! pif(is_dir($tfile))
! t% u% A0 M: T6 A2 M4 T- ^9 a1 L
{) F" C6 s$ c3 u9 O8 e

6 V0 w" r) K2 |//echo "檢查到: $tfile' {, d6 }: k7 M" s: p& ^5 ?6 e& L, |
";7 T& S4 l6 i, x8 @3 ^+ o7 [8 L

3 y# Q6 m3 u/ e8 v/ L! T' \parAllFiles($tfile);" C& z8 U) Y2 B* Q5 c! G& J3 e

) x3 w4 |1 V8 l' Y5 E1 w, I2 \}
: j& d3 j; ~) h) Y' {( d* T# u8 q: u! H2 i" x
else: w% I; X& x' {* X+ e8 G
! V* G3 w" G2 t) L
{
1 V  E, J0 V8 e1 z# t' J' W
, J+ x- z$ i+ C. H9 k! h% M, [if(!ereg("\.php", $tfile)) continue;" |" u  D' p. c# ]/ P
3 o& c$ ~9 _! c
$bd = file_get_contents($tfile);& f# x8 g- q+ X2 h
2 O7 C' |1 k+ L! P( Y5 {( h
if(eregi("eval\(", $bd))
& ~- W5 p% X3 O3 D+ ]" j; T. L( M' b
{
) Z0 {' t% G! K' R& w/ F* U4 }* X2 c: [8 A7 d; C+ Q
echo "$tfile
  \, u: U+ R# F0 G\r\n";
/ u8 P$ T+ U* ?: [+ l+ s6 B2 B
- T* u- Q7 p1 v8 }9 _}
, H; J) \; |% D8 @
3 V2 T' U: x% [( j) p, n}" B# p8 ]- v/ H! b* b9 J# I

% k; ]) c0 C" O7 I% \" X) A6 p4 B}' Z+ |7 `/ s, j

6 p: h1 ^, ?* Y7 Q+ H; Q}
$ _1 j# n+ v" q9 L: ~
0 W3 p8 v% F: {8 H; v1 cparAllFiles(dirname(__FILE__));
( e# N: M/ f) u! P1 i. M
1 {/ C! n1 c& v" D?>- ^& R# A+ V) h8 s. U! N8 W0 N; \. d

" W9 t' z5 Y4 G  n  w, ~使用這個檢測程序會把所有帶eval的文件作為可疑文件,打開來看一下,如果代碼像前者那樣的,肯定是木馬了。4 m' F* Y: u6 q' F/ @
1 g$ |8 C( g& x( Q
對於有使用服務器的用戶,記住設置網站權限的一個原則:存放HTML、附件的文件不給予執行腳本權限,執行腳本的文件夾不給予寫入的權限。
4 _7 q! t& d) S  U2 K1 n" M. z2 V) o  L! ^
2、MySQL提權漏洞的處理
3 w& j/ p$ a) {( z: H9 g" F! O; l; ?& `& \6 h# H) l
MySQL提權漏洞在windows服務器幾乎是致命的,如果你把WEB木馬都清理後,發現黑客還能掛馬,很可能是這個問題所致的,這要作下面幾方面處理:
$ H! ^0 D; R, R% S% o9 C; X) Z0 M) u
9 R8 u' B% K! H9 r8 l7 m(1) 網站的用戶千萬不要用root用戶,如果建立一個沒權限的用戶,然後指定它有操作某數據庫的權限;3 U0 \7 k& w0 R$ n8 u0 Q
/ V, h: B  t/ M5 A3 ~7 V
(2) 檢查網站或windows文件,看是否有 udf.dll 或 xudf.dll (x通常是數字1、2、3等),如果有,說明你的服務器已經中招了,這種木馬是致命的,清除方法是先用net stop mysql停止Mysql,然後刪除這些dll文件,然後用 net start mysql 重新啟動mysql。
  }% j: L. f& h/ f# d3 Q# w( G7 i
(目前在phpcms2008、php168最新版都已經發現可能實現mysql提權的致命漏洞,建議做新站的盡量用dedecmsV5.3或Ecms V5.1)

評分

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

查看全部評分

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

本版積分規則

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

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

GMT+8, 2025-4-15 16:08

By DZ X3.5

小黑屋

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