昨天收到阿里雲的安全郵件,主機被挖礦程序入侵
linux
有必要了解一下挖礦,百度搜索結果redis
所謂「挖礦」實質上是用計算機解決一項複雜的數學問題,來保證比特幣網絡分佈式記帳系統的一致性。比特幣網絡會自動調整數學問題的難度,讓整個網絡約每10分鐘獲得一個合格答案。隨後比特幣網絡會新生成必定量的比特幣做爲賞金,獎勵得到答案的人。
比特幣的本質其實就是一堆複雜算法所生成的特解。特解是指方程組所能獲得無限個(其實比特幣是有限個)解中的一組。而每個特解都能解開方程而且是惟一的。[8] 以人民幣來比喻的話,比特幣就是人民幣的序列號,你知道了某張鈔票上的序列號,你就擁有了這張鈔票。而挖礦的過程就是經過龐大的計算量不斷的去尋求這個方程組的特解,這個方程組被設計成了只有 2100 萬個特解,因此比特幣的上限就是 2100 萬。算法
使用top命令查看了一下, wbew
這個進程佔用了99%的CPU,不能忍,着手找解決方案,百度唄,果真有小夥伴和我遇到了相同的問題
論壇上提供的解決思路,關於minerdshell
首先按照正常思路vim
top
命令或者 ps-ef |grep wbew
(這個須要知道是哪一個程序,能夠先top一下) 查看程序的pid 而後kill -9 [pid]
,過了沒有多久 ,又啓動了,果真沒有這麼簡單centos
而後 刪除程序的路徑(這個阿里雲日誌已經指出來了) rm /etc/wbew
,否則能夠先find一下安全
通過上面的操做,發現程序在關閉一會以後依然會自動起來,煩死我的服務器
iptables -A INPUT -s xmr.crypto-pool.fr -j DROP 和iptables -A OUTPUT -d xmr.crypto-pool.fr -j DROP
網上說要這麼操做,我感受不太行,由於我是centos7的防火牆操做已經變了,可是死馬當活馬醫吧再刪除/usr/local/etc
下root文件中的內容 ,個人這個機器沒有,根據程序的表現來看應該是有個計劃任務,下面着手來操做計劃任務網絡
/var/spool/cron/root
,/var/spool/cron/crontabs/root.
,/etc/cron.d/root
從這些計劃任務文件中入手 移除惡意腳本的計劃任務,你可能會遇到沒法寫入問題,參考下面的解決方案
chattr -isa /var/spool/cron/root
先去除isa
屬性,在使用vim編輯刪除惡意計劃crontab -l
查看計劃任務service stop crond
或者crontab -r
刪除全部的執行計劃,你會發現根本沒用,呵呵chmod -x minerd
,取消掉執行權限 個人是chmod -x /etc/wbew
,根據實際狀況來ssh
rm /etc/wbew
刪除 ,kill -9 [pid]
而後kill掉進程
而後按照阿里雲的提示 /tmp/crloger1
刪掉 ,由於腳本下載的程序都/tmp目錄
作完這些 ,我也覺得解決了,其實否則,放棄,放棄,睡覺,睡覺,命要緊已經很晚了,服務器關掉吧,反正其餘程序被幹擾沒法運行
次日打開服務器,解決了,再也沒有出現 ,發現關鍵就兩個地方,第一個惡意計劃,第二個,以前沒有說也就是本事件的根源
畢竟解決這個問題不是目的,而是事情的根源redis
服務 ,我不就是偷了個懶,爲了統一測試環境 ,將 redis 開放了外網訪問,而且沒有設置密碼,還使用的默認端口,好吧,我活該
登陸服務器後用top命令查看CPU利用率並不高,感受不必定真是挖礦程序在做怪,或挖礦還沒啓動。用ps -ef命令列出進程,發現一個名爲「httpdz」的可疑進程,殺死進程後,這個httpdz又當即啓動。
查閱/etc/crontab、/etc/cron.d和/var/spool/cron,後兩個目錄下的名爲root的文件被寫入了三個任務計劃,是下載一個shell文件並執行。經過查看這個shell文件,程序又從網站下載了一個可執行文件crloger1到/tmp,其屬性被置爲+ia。
用pstree命令又發現了一個名爲migrations的異常進程,文件位於/etc,注意不是migration,也是殺死以後又從新啓動。
處理步驟:
修改root密碼;
~/.ssh/出現了不認識的authorized_keys,改屬性後刪除。
刪除鏈接網站下載文件的任務計劃;
執行chattr -ia chloger1;
殺死httpdz和migrations,刪除/etc/httpdz、/etc/migrations和/tmp/crloger1。
系統沒有設置redis密碼。設置redis密碼, 限定能夠鏈接redis的IP, 改redis默認端口6379。若是不用redis,乾脆停掉也行。
觀察了24小時,阿里雲沒有再推送警告。
配置bind選項, 限定能夠鏈接Redis服務器的IP, 並修改redis的默認端口6379.
配置AUTH, 設置密碼, 密碼會以明文方式保存在redis配置文件中.
配置rename-command CONFIG 「RENAME_CONFIG」, 這樣即便存在未受權訪問, 也可以給攻擊者使用config指令加大難度
好消息是Redis做者表示將會開發」real user」,區分普通用戶和admin權限,普通用戶將會被禁止運行某些命令,如conf
打開 ~/.ssh/authorized_keys
刪除你不認識的帳號
查看你的用戶列表,是否是有你不認識的用戶添加進來。 若是有就刪除掉.
防範技巧
requirepass
設置密碼;查看定時任務:vim /etc/crontab
列出全部的定時任務:crontab -l
刪除全部用戶定時任務:crontab -r
cat /etc/rc.d/rc.local
查看惡意操做腳本開機就執行的
近段時間公司的一臺服務器被惡意添加了一些定時器任務到crond的配置文件"/var/spool/cron/root"裏,本想着只要簡單使用crontab -e命令把該惡意的任務去除掉就能夠了,但修改後發現不管我怎麼努力也保存不了,直接修改文件「/var/spool/cron/root」也不行,我苦思是什麼力量讓這個擁有至高無上權力的root用戶都沒法對該文件進行更改和刪除。後來經一資深Linux的朋友點拔一下才知道,文件除了有讀寫執行權限控制外還有更底層的文件屬性,這裏汲及到的兩個查看和更改文件屬性的命令是lsattr和chattr。
使用 lsattr /var/spool/cron/root
一看才知道該文件被添加了sia屬性:s---ia------- /var/spool/cron/root
,而後使用:chattr -isa /var/spool/cron/root
把這三個屬性去除,便可對該文件進行修改了,成功地把該惡意任務去除。
每一絲靈感都值得被記錄,每一筆記錄都是成長,每一點成長都值得歡呼
博主我的站: www.imisty.cn
CSDN博客: https://blog.csdn.net/lookinthefog
博客園 :https://imist.cnblogs.com/
但願可以認識一些熱愛技術的小夥伴,歡迎友連接喲