根據網上的文章,並結合自身服務器狀況,得知這次入侵是因爲redis端口對外開放,且空密碼,致使了Kworkerd,sustse惡意入侵LINUX挖礦,原本想着調試方便(都是個人鍋),如今惟有吸收教訓。Let's start!php
事情開始於一個平凡而又偉大下午的平常編碼中,突然發現某服務數據庫鏈接拒絕,遂上服務器上查看mysql服務狀態,居然是關閉狀態,當我開啓服務後不久又自動關閉了,也就是從這個時候開始,全部的服務鏈接請求阻塞變慢,頁面沒法訪問或加載超時,開始排查問題(當時慌得一比).html
TOP -c
查看當前服務器狀況,奇怪的是CPU跑滿99%左右,但卻無佔用CPU高的進程,看了很久的Linux 系統情況後,發現時而有sustse、kworkerd等陌生進程字眼,快馬加鞭地搜索一下。
/var/tmp
目錄,並清理這幾個病毒腳本
http://192.99.142.246:8220/mr.sh
,輸入crontab -e
修改刪除此腳本,但定時任務的請求仍然會進行寫入netstat -anp
查看當前網絡鏈接時,發現有多個異常鏈接,與定時任務的地址相同,試着輸入ps aux|grep 8220
找到並kill
掉進程,一會後仍是會寫入進程,看來有多處腳本寫入定時任務
雖然一時間沒法完全根治,腳本無限刷,文件又一直請求,但日子總要過下去不是,因而一邊提交了工單給阿里雲,一邊分析當前的惡意腳本。mysql
根據工程師的建議作了一份快照備份,以備未來不得以的狀況下回滾備份.git
然後經過分析http://192.99.142.246:8220/mr.sh
SHELL腳本,發現腳本會不斷刪除並新增進程與腳本,經過此記錄下腳本內容,將'刪除腳本'一次性執行,發現執行成功且再無惡意進程.github
chattr +i /usr/bin/wget
chmod 700 /usr/bin/wget
chattr +i /usr/bin/curl
chmod 700 /usr/bin/curl
/etc/init.d/iptables stop
service iptables stop
SuSEfirewall2 stop
reSuSEfirewall2 stop
pkill -f sysxlj
pkill -f jourxlv
pkill -f sustes
rm -rf /etc/ld.so.preload
rm -rf /usr/lib/void.so
rm -rf /etc/voidonce.sh
rm -rf /usr/local/lib/libjdk.so
rm -rf /usr/local/lib/libntp.so
ps aux|grep "I2NvZGluZzogdXRmLTg"|grep -v grep|awk '{print $2}'|xargs kill -9
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
rm -rf /lib64/library1.so
rm -rf /usr/lib64/library1.so
iptables -I OUTPUT -s 167.99.166.61 -j DROP
iptables -I INPUT -s 167.99.166.61 -j DROP
iptables -I OUTPUT -p tcp -m string --string "pastebin" --algo bm -j DROP
...
複製代碼
解決問題後發現基本沒有什麼異常狀況了,真正解決問題還要作一些安全防禦相關的工做:web
這實在是一個不起眼的疏忽,卻也是一次致命的錯誤,誰都不能想到我第一次接觸虛擬貨幣竟是由於REDIS端口入侵,網絡安全重要如斯,有理有據,使人信服。redis
共勉sql