1. 程式人生 > >智慧一代雲平臺(十六):解決Linux伺服器被植入木馬總結

智慧一代雲平臺(十六):解決Linux伺服器被植入木馬總結

【前言】

    繼上次Redis伺服器被劫持風暴(高校雲平臺(十三):Redis伺服器被劫持風波)過後十多天後,病毒對我們總是戀戀不捨,又一次的來到我們身邊;有了上次的經驗後,這次處理起來雖然也有些波折,但是相對來說迅速很多;下面是這次解決的整體流程,希望會對讀者有所啟發。

【跌宕起伏研究之路】

     一、發現病毒:
         1、被通知:
            2017年3月07日18點左右,第三方託管服務商通知我們我們有一臺機器(為了方便表示以YYY代替),這臺伺服器中病毒,大量發包。
         2、在伺服器上檢視現象:
           (1)利用命令ifconfig

,檢視網路收發包情況:
               
               其中ipconfig查詢統計的收發包是從這次開機起統計,利用man ipconfig 看說明:

                
           (2)利用命令:uptime -s 查詢246開機的時間,發現10個小時左右傳送241G這麼多,同時利用ifconfig命令看區域網其他伺服器發現開機比246早的發包也很少基本上沒上G級的
               
           (3)不斷利用ifconfig檢視收發包情況,發現246大概以1s 0.1G左右速度在傳送包
           (4)另外通過Zabbix監控246的資料(部分)

               

二、尋找病毒根源:
1、並非病毒猜想:
(1)依據:
                由於Maven的私服在該機器上,猜測是Jenkins部署的影響,測試把YYY伺服器斷網(YYY機器是託管在上的一臺虛擬機器)在物理機上將其斷網,發現Jenkins釋出專案一直不成功,確定Jenkins構建需要從YYY私服上下載相應包;
(2)驗證:
                向拖管商確認是大量向外網發包而不是區域網,另外私服上的包總共沒有這麼大的量級,這樣排除了Jenkins釋出影響;
2、病毒導致:
(1)依據:發包如此頻繁,中病毒的跡象;
(2)驗證:
                A.利用命令:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

檢視和YYY建立連線的情況:
               
B.通過上圖發現除了區域網中機器外還有兩個可疑外網機器(137.59.18.147 和172.247.116.109)和其進行連線
C利用命令:netstat -ntlp 檢視相應的程序,發現可疑程序MXQJVVDNF
               
D.利用命令:ll /proc/43993 檢視相應的檔案,發現可疑檔案dataa
               
E.利用命令:ls /tmp/查詢可疑目錄下的檔案,發現可疑檔案
               
F.根據gates.lod在網上搜索到關於病毒文章--一次Linux伺服器被入侵和刪除木馬程式的經歷
G.至此驗證是中病毒
(3)追蹤:
A.核查伺服器發現果然大部分部落格中描述的病毒檔案在YYY上都能找到
B.檢查病毒的行蹤,利用命令:ps -ef 發現病毒一些行蹤
               
三、採取的解決方案:
1、將兩個可疑IP(137.59.18.147和172.247.116.109)拉入黑名單
(1)拉入黑名單命令:
iptables -I INPUT -s 137.59.18.147 -j DROP
iptables -I INPUT -s 172.247.116.109 -j DROP

               

               
               
(2)擴充套件命令:
A.檢視黑名單中都有誰命令: iptables –L
               
B.將某個IP從黑名單(在此以137.59.18.147為例)中去除命令: iptables -D INPUT -s 137.59.18.147 -j DROP
2、按照部落格內容進行清理病毒檔案
(1)所刪除病毒檔案
              /usr/bin/bsd-port/ getty (bsd-port目錄也清除)
              /etc/rc.d/init.d/DbSecuritySpt
/etc/rc.d/rc1.d/S97DbSecuritySpt
/etc/rc.d/rc2.d/S97DbSecuritySpt
/etc/rc.d/rc3.d/S97DbSecuritySpt
/etc/rc.d/rc4.d/S97DbSecuritySpt
/etc/rc.d/rc5.d/S97DbSecuritySpt
/etc/rc.d/rc6.d/S97DbSecuritySpt
/root/pyth
/tmp (dataa gates.lod moni.lod)      
(2)用ps -ef 查詢所有程序,並用kill -9 PID將異常程序殺死
             
四、總結:
1、對命令的再理解:netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
(1)檢查是否被攻擊時用該命令查詢會有兩種情況
A.連線數特別多,如下圖中的第1列的數字代表連線數,一般二三十以內為正常,成千上萬為異常;

                      
B.可以發現可疑IP,雖然連線數少但是可能是傳送大量資料,本次遇到就是這種情況
C.遇到上述情況用命令(在此以IP為137.59.18.147為例,將其拉入進黑名單)iptables -I INPUT -s 137.59.18.147 -j DROP
(2)對該命令所查出的連線數的研究
A.出現情況:用命令將兩個可疑IP拉入黑名單,用該命令查發現連線數仍然是1
B.做相關實驗:用一個IP(在此用XXX來表示)遠端上YYY用該命令查詢發現和XXX連線數為1,用XXX機器再ping  YYY再用命令查發現有2個連線數,這時停止ping後發現連線數變為1,再在YYY上用命令iptables -I INPUT -s XXX -j DROP將XXX拉入黑名單,此時XXX機器立馬不能對YYY進行操作,再在YYY上用命令查發現還是1個連線數
C.說明該命令查詢的是在拉入黑名單之前的連線數
2、伺服器安全一些建議:
(1)伺服器開啟防火牆,如果有應用需要外部訪問,採用開埠形式
(2)關閉伺服器不必要外網對映,另外即使非得對映也不要用使用服務的預設埠
(3)伺服器密碼要設定複雜些,另外需要隔一段時間進行變化
(4)Linux系統上裝一些防毒軟體

【總結】

     1、時常保持一顆好奇心;

     2、多思考多總結,每經歷一次在安全意識上提升一點;

     3、感謝陳總,娜姐,和浩哥一起來搞。