記錄一次服務器被入侵的解決方法
一:問題說明
1、我的服務器是使用的阿里雲的CentOS,收到的阿里雲發來的提示郵件如下
然后我查看了運行的進程情況(top
命令),看到一個名為minerd的進程占用了99.5%的CPU
2、minerd是個挖礦程序,什么是“挖礦”,特此百度了一下,
所謂“挖礦”實質上是用計算機解決一項復雜的數學問題,來保證比特幣網絡分布式記賬系統的一致性。比特幣網絡會自動調整數學問題的難度,讓整個網絡約每10分鍾得到一個合格答案。隨后比特幣網絡會新生成一定量的比特幣作為賞金,獎勵獲得答案的人。
比特幣的本質其實就是一堆復雜算法所生成的特解。特解是指方程組所能得到無限個(其實比特幣是有限個)解中的一組。而每一個特解都能解開方程並且是唯一的。[8] 以人民幣來比喻的話,比特幣就是人民幣的序列號,你知道了某張鈔票上的序列號,你就擁有了這張鈔票。而挖礦的過程就是通過龐大的計算量不斷的去尋求這個方程組的特解,這個方程組被設計成了只有 2100 萬個特解,所以比特幣的上限就是 2100 萬。[8]
所以才會這么占CPU。
二:解決方法
1、網上看到有人遇到了同樣的問題,鏈接地址:
http://blog.csdn.net/hu_wen/article/details/51908597
文中使用了StackExchange上一個回答的解決方法:
http://security.stackexchange.com/questions/129448/how-can-i-kill-minerd-malware-on-an-aws-ec2-instance
嘗試使用上述步驟解決:
(1)關閉訪問挖礦服務器的訪問 iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
和iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
(2)刪除/usr/local/etc
下root文件中的內容
(3)刪除yam
文件(我的yam文件不是在上面說的/opt
目錄下的,使用find
命令查找,然后刪除)
(4)刪除 /root/.ssh/KHK75NEOiq
(5)刪除/opt/minerd
和 /opt/KHK75NEOiq33
(6)殺死minerd進程,pkill minerd
或者kill -9 進程Id
(7)前面步驟沒有問題,到這里我是沒有lady
這個服務的,殺死minerd
進程后過大約5分鍾左右minerd
進程又出現了。
問題沒有解決。
2、然后看到如下一個解決方法
http://www.cnblogs.com/zhouto/p/5680594.html
(1)同1中的第一步
(2)chmod -x minerd
,取消掉執行權限
(3)殺死進程 pkill minerd
(4)然后運行一段時間發現minerd沒有出現了
問題解決。
三:總結
因為我CentOS上安裝了Redis,看網上說是黑客利用Redis的漏洞獲得了服務器的訪問權限。http://blog.jobbole.com/94518/
上周末,更新易雲盤的時候,發現阿里雲服務器CPU很高,執行 top 一看,有個進程minerd盡然占用了90%多的CPU, 趕緊百度一下,查到幾篇文章都有人遇到同樣問題
Hu_Wen遇到的和我最相似,下邊是他的解決辦法
http://blog.csdn.net/hu_wen/article/details/51908597
但我去查看啟動的服務,盡然沒有 lady 這個服務。 找不到始作俑者,那個minerd進程刪掉就又起來了,后來想了個臨時辦法,先停掉了挖礦的進程
1. 關閉訪問挖礦服務器的訪問 iptables -A INPUT -s xmr.crypto-pool.fr -j DROP
and iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
.
2. chmod -x minerd ,取消掉執行權限, 在沒有找到根源前,千萬不要刪除 minerd,因為刪除了,過一回會自動有生成一個。
3. pkill minerd ,殺掉進程
4. service stop crond 或者 crontab -r 刪除所有的執行計划
5. 執行top,查看了一會,沒有再發現minerd 進程了。
解決minerd並不是最終的目的,主要是要查找問題根源,我的服務器問題出在了redis服務了,黑客利用了redis的一個漏洞獲得了服務器的訪問權限,
http://blog.jobbole.com/94518/
然后就注入了病毒
下面是解決辦法和清除工作
1. 修復 redis 的后門,
- 配置bind選項, 限定可以連接Redis服務器的IP, 並修改redis的默認端口6379.
- 配置AUTH, 設置密碼, 密碼會以明文方式保存在redis配置文件中.
- 配置rename-command CONFIG “RENAME_CONFIG”, 這樣即使存在未授權訪問, 也能夠給攻擊者使用config指令加大難度
- 好消息是Redis作者表示將會開發”real user”,區分普通用戶和admin權限,普通用戶將會被禁止運行某些命令,如conf
2. 打開 ~/.ssh/authorized_keys, 刪除你不認識的賬號
3. 查看你的用戶列表,是不是有你不認識的用戶添加進來。 如果有就刪除掉.
易雲盤 免費在線企業雲盤,支持文件加密,權限設定.