Unix.Trojan.DDoS_XOR-1木馬癥狀及清理辦法
轉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木馬癥狀及清理辦法