轉載時請務必以超連接形式標明文章 原始出處 、做者信息和本聲明。不然將追究法律責任。http://wzlinux.blog.51cto.com/8021085/1740113html
晚上看到有臺服務器流量跑的很高,明顯和日常不同,流量達到了800Mbps,第一感受應該是中木馬了,被人當作肉雞了,在大量發包。linux
咱們的服務器爲了最好性能,防火牆(iptables)什麼的都沒有開啓,可是服務器前面有物理防火牆,並且機器都是作的端口映射,也不是常見的端口,按理來講應該是滿安全的,可能最近和木馬有緣吧,總是讓我遇到,也趁此次機會把發現過程記錄一下。nginx
注:上面是原做者的話,我本人是在處理阿里雲服務器時候找到這篇文章的,經過按照文中手動清除木馬的方式完成的。web
查看的時候網頁很是卡,有的時候甚至沒有響應。算法
我立刻遠程登陸出問題的服務器,遠程操做很卡,網卡出去的流量很是大,經過top發現了一個異常的進程佔用資源比較高,名字不仔細看還真覺得是一個Web服務進程。centos
發現這個程序文件在/etc目錄下面,是個二進制程序,我拷貝了下來,放到了本文附近位置,以供你們在虛擬機上面研究,哈哈。安全
killall -9 nginx1 rm -f /etc/nginx1
幹掉進程以後,流量馬上下來了,遠程也不卡頓了,難道刪掉程序文件,幹掉異常進程咱們就認爲處理完成了麼?想一想也確定沒那麼簡單的,這個是木馬啊,確定還會本身生成程序文件(果真不出我所料,在我沒有搞清楚以前,後面確實又生成了)咱們得繼續追查。bash
經過命令last查看帳戶登陸記錄,一切正常。查看系統文件message並無發現什麼,可是當我查看secure文件的時候發現有些異常,反正是和認證有關的,應該是嘗試連進來控制發包?服務器
其實第一次ps的時候就有這個問題,那時候沒有發現,第二次是自習查看每一個進程,自習尋找不太正常的進程,發現了一個奇怪的ps進程。網絡
我找了一臺正常的機器,查看了一下ps命令的大小,正常的大約是81KB,而後這臺機器上面的ps卻高達1.2M,命令文件確定是被替換了。
而後進入另外一個ps的目錄,看到有以下幾個命令,而後我有查詢了一下系統的這幾個命令,發現都變得很大,都達到了1.2M,這些系統命令文件確定是都被替換了。
查看定時任務文件crontab並無發現什麼一次,而後查看系統啓動文件rc.local,也沒有什麼異常,而後進入/etc/init.d目錄查看,發現比較奇怪的腳本文件DbSecuritySpt、selinux。
第一個文件能夠看出他就是開機啓動那個異常文件的,第二個應該和登陸有關,具體我還不是很清楚,反正確定是有問題的。
既然和登陸有關,那就找和ssh相關的,找到了下面的一個文件,是隱藏文件,這個也是木馬文件,咱們先記錄下來,這樣程序名字都和咱們的服務名字很相近,就是爲了迷惑咱們,他們的大小都是1.2M,他們有多是一個文件。
我有看了一下木馬喜歡出現的目錄/tmp,也發現了異常文件,從名字上感受好像是監控木馬程序的。
想到這裏,替換的命令應該不少,單靠咱們去找確定是解決不了的,個人建議最好是重裝操做系統,並作好安全策略,若是不重裝,我下面給一下個人方法,具體行不行有待驗證。
如今綜合總結了大概步驟以下:
#有無下列文件 cat /etc/rc.d/init.d/selinux cat /etc/rc.d/init.d/DbSecuritySpt ls /usr/bin/bsd-port ls /usr/bin/dpkgd #查看大小是否正常 ls -lh /bin/netstat ls -lh /bin/ps ls -lh /usr/sbin/lsof ls -lh /usr/sbin/ss
ps netstat ss lsof
rm -rf /usr/bin/dpkgd (ps netstat lsof ss) rm -rf /usr/bin/bsd-port #木馬程序 rm -f /usr/bin/.sshd #木馬後門 rm -f /tmp/gates.lod rm -f /tmp/moni.lod rm -f /etc/rc.d/init.d/DbSecuritySpt(啓動上述描述的那些木馬變種程序) rm -f /etc/rc.d/rc1.d/S97DbSecuritySpt rm -f /etc/rc.d/rc2.d/S97DbSecuritySpt rm -f /etc/rc.d/rc3.d/S97DbSecuritySpt rm -f /etc/rc.d/rc4.d/S97DbSecuritySpt rm -f /etc/rc.d/rc5.d/S97DbSecuritySpt rm -f /etc/rc.d/init.d/selinux(默認是啓動/usr/bin/bsd-port/getty) rm -f /etc/rc.d/rc1.d/S99selinux rm -f /etc/rc.d/rc2.d/S99selinux rm -f /etc/rc.d/rc3.d/S99selinux rm -f /etc/rc.d/rc4.d/S99selinux rm -f /etc/rc.d/rc5.d/S99selinux
我本身從新安裝好像不行,我是找的正常的機器複製的命令。(centos使用rpm安裝也能夠,參考個人文章誤刪centos的ps命令,恢復)
#ps /root/chattr -i -a /bin/ps && rm /bin/ps -f yum reinstall procps -y 或 cp /root/ps /bin #netstat /root/chattr -i -a /bin/netstat && rm /bin/netstat -f yum reinstall net-tools -y 或 cp /root/netstat /bin #lsof /root/chattr -i -a /bin/lsof && rm /usr/sbin/lsof -f yum reinstall lsof -y 或 cp /root/lsof /usr/sbin #ss /root/chattr -i -a /usr/sbin/ss && rm /usr/sbin/ss -f yum -y reinstall iproute 或 cp /root/ss /usr/sbin
yum -y install clamav clamav-milter
service clamd restart
因爲ClamAV不是最新版本,因此有告警信息。能夠忽略或升級最新版本。
[root@mobile ~]# freshclam ClamAV update process started at Sun Jan 31 03:15:52 2016 WARNING: Can't query current.cvd.clamav.net WARNING: Invalid DNS reply. Falling back to HTTP mode. Reading CVD header (main.cvd): WARNING: main.cvd not found on remote server WARNING: Can't read main.cvd header from db.cn.clamav.net (IP: 185.100.64.62) Trying again in 5 secs... ClamAV update process started at Sun Jan 31 03:16:25 2016 WARNING: Can't query current.cvd.clamav.net WARNING: Invalid DNS reply. Falling back to HTTP mode. Reading CVD header (main.cvd): Trying host db.cn.clamav.net (200.236.31.1)... OK main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) Reading CVD header (daily.cvd): OK (IMS) daily.cvd is up to date (version: 21325, sigs: 1824133, f-level: 63, builder: neo) Reading CVD header (bytecode.cvd): OK (IMS) bytecode.cvd is up to date (version: 271, sigs: 47, f-level: 63, builder: anvilleg)
可使用clamscan -h查看相應的幫助信息
clamscan -r /etc --max-dir-recursion=5 -l /root/etcclamav.log clamscan -r /bin --max-dir-recursion=5 -l /root/binclamav.log clamscan -r /usr --max-dir-recursion=5 -l /root/usrclamav.log clamscan -r --remove /usr/bin/bsd-port clamscan -r --remove /usr/bin/
把發現的命令刪掉替換正常的
附錄:Linux.BackDoor.Gates.5
通過查詢資料,這個木馬應該是Linux.BackDoor.Gates.5,找到一篇文件,內容具體以下:
某些用戶有一種根深蒂固的觀念,就是目前沒有可以真正威脅Linux內核操做系統的惡意軟件,然而這種觀念正在面臨愈來愈多的挑戰。與4月相比,2014年5月Doctor Web公司的技術人員偵測到的Linux惡意軟件數量創下了新紀錄,六月份這些惡意軟件名單中又增長了一系列新的Linux木馬,這一新木馬家族被命名爲Linux.BackDoor.Gates。
在這裏描述的是惡意軟件家族Linux.BackDoor.Gates中的一個木馬:Linux.BackDoor.Gates.5,此惡意軟件結合了傳統後門程序和DDoS攻擊木馬的功能,用於感染32位Linux版本,根據其特徵能夠判定,是與Linux.DnsAmp和Linux.DDoS家族木馬同出於一個病毒編寫者之手。新木馬由兩個功能模塊構成:基本模塊是可以執行不法分子所發指令的後門程序,第二個模塊在安裝過程當中保存到硬盤,用於進行DDoS攻擊。Linux.BackDoor.Gates.5在運行過程當中收集並向不法分子轉發受感染電腦的如下信息:
CPU核數(從/proc/cpuinfo讀取)。
CPU速度(從/proc/cpuinfo讀取)。
CPU使用(從/proc/stat讀取)。
Gate'a的 IP(從/proc/net/route讀取)。
Gate'a的MAC地址(從/proc/net/arp讀取)。
網絡接口信息(從/proc/net/dev讀取)。
網絡設備的MAC地址。
內存(使用/proc/meminfo中的MemTotal參數)。
發送和接收的數據量(從/proc/net/dev讀取)。
操做系統名稱和版本(經過調用uname命令)。
啓動後,Linux.BackDoor.Gates.5會檢查其啓動文件夾的路徑,根據檢查獲得的結果實現四種行爲模式。
若是後門程序的可執行文件的路徑與netstat、lsof、ps工具的路徑不一致,木馬會假裝成守護程序在系統中啓動,而後進行初始化,在初始化過程當中解壓配置文件。配置文件包含木馬運行所必須的各類數據,如管理服務器IP地址和端口、後門程序安裝參數等。
根據配置文件中的g_iGatsIsFx參數值,木馬或主動鏈接管理服務器,或等待鏈接:成功安裝後,後門程序會檢測與其鏈接的站點的IP地址,以後將站點做爲命令服務器。
木馬在安裝過程當中檢查文件/tmp/moni.lock,若是該文件不爲空,則讀取其中的數據(PID進程)並「幹掉」該ID進程。而後Linux.BackDoor.Gates.5會檢查系統中是否啓動了DDoS模塊和後門程序自有進程(若是已啓動,這些進程一樣會被「幹掉」)。若是配置文件中設置有專門的標誌g_iIsService,木馬經過在文件/etc/init.d/中寫入命令行#!/bin/bash\n<path_to_backdoor>將本身設爲自啓動,而後Linux.BackDoor.Gates.5建立下列符號連接:
1
2
3
4
|
ln
-s
/etc/init
.d
/DbSecuritySpt
/etc/rc1
.d
/S97DbSecuritySpt
ln
-s
/etc/init
.d
/DbSecuritySpt
/etc/rc2
.d
/S97DbSecuritySpt
ln
-s
/etc/init
.d
/DbSecuritySpt
/etc/rc3
.d
/S97DbSecuritySpt
ln
-s
/etc/init
.d
/DbSecuritySpt
/etc/rc4
.d
/S97DbSecuritySpt
|
若是在配置文件中設置有標誌g_bDoBackdoor,木馬一樣會試圖打開/root/.profile文件,檢查其進程是否有root權限。而後後門程序將本身複製到/usr/bin/bsd-port/getty中並啓動。在安裝的最後階段,Linux.BackDoor.Gates.5在文件夾/usr/bin/再次建立一個副本,命名爲配置文件中設置的相應名稱,並取代下列工具:
1
2
3
4
5
6
7
8
9
|
/bin/netstat
/bin/lsof
/bin/ps
/usr/bin/netstat
/usr/bin/lsof
/usr/bin/ps
/usr/sbin/netstat
/usr/sbin/lsof
/usr/sbin/ps
|
木馬以此完成安裝,並開始調用基本功能。
執行另外兩種算法時木馬一樣會假裝成守護進程在被感染電腦啓動,檢查其組件是否經過讀取相應的.lock文件啓動(若是未啓動,則啓動組件),但在保存文件和註冊自啓動時使用不一樣的名稱。
與命令服務器設置鏈接後,Linux.BackDoor.Gates.5接收來自服務器的配置數據和殭屍電腦需完成的命令。按照不法分子的指令,木馬可以實現自動更新,對指定IP地址和端口的遠程站點發起或中止DDoS攻擊,執行配置數據所包含的命令或經過與指定IP地址的遠程站點創建鏈接來執行其餘命令。
此後門程序的主要DDoS攻擊目標是中國的服務器,然而不法分子攻擊對象也包括其餘國家。下圖爲利用此木馬進行的DDoS攻擊的地理分佈:
本文出自 「運維點滴記錄」 博客,請務必保留此出處http://wzlinux.blog.51cto.com/8021085/1740113