天天看點

記一次伺服器被植入挖礦腳本的解決過程

記一次伺服器被植入挖礦腳本的解決過程

删除挖礦腳本和對應的程序

找出并删除對應挖礦腳本檔案

記一次伺服器被植入挖礦腳本的解決過程

找出程序pid,并且kill掉

記一次伺服器被植入挖礦腳本的解決過程

無法kill掉的是原程序的守護程序,原程序不在它也會自動關閉,是以不用管它

記一次伺服器被植入挖礦腳本的解決過程

kill掉後cpu恢複正常

記一次伺服器被植入挖礦腳本的解決過程

需要檢查是否有定時任務

防止挖礦腳本重新下載下傳。

記一次伺服器被植入挖礦腳本的解決過程

我這裡沒有,如果有可以使用以下指令删除

crontab -r
           

檢查docker是否也有挖礦的容器在運作

檢查建立的docker容器

我這裡發現了很多不是我自己建立的容器,截圖的都不是我自己的,需要全部删除。

記一次伺服器被植入挖礦腳本的解決過程

使用以下指令删除全部不運作的容器(因為目前正在運作的隻有我自己的容器,故不用擔心自己的容器也被删掉)

記一次伺服器被植入挖礦腳本的解決過程
檢查docker鏡像。

發現兩個鏡像是别人下載下傳的,删除掉這兩個鏡像。

記一次伺服器被植入挖礦腳本的解決過程
用非root使用者重新開機docker服務
記一次伺服器被植入挖礦腳本的解決過程

修複redis漏洞

修改 redis.conf 檔案
記一次伺服器被植入挖礦腳本的解決過程
  • 主要改端口和綁定通路ip,還有設定日志檔案及其級别(用于檢視通路的ip),設定通路密碼
bind x.x.x.x 
port 56331
logfile "56331.log"
loglevel verbose
requirepass xxx 
           

備注:

bind 允許通路的ip

requirepass 驗證登入的密碼

  • 禁用遠端修改 DB 檔案位址,禁用lua腳本指令
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
           

備注:

Redis Config Set 指令可以動态地調整 Redis 伺服器的配置(configuration)而無須重新開機。

Redis Eval 指令使用 Lua 解釋器執行腳本。

切換非root使用者,不使用root使用者啟動redis
su hzk
           

保證root使用者 authorized_keys 檔案的安全

檢視root使用者ssh免密登入儲存的公鑰是否已經添加了别人的公鑰。

如果裡面存放了别人的公鑰,那它就可以直接ssh登入我們的系統。

記一次伺服器被植入挖礦腳本的解決過程

發現果然有别人的公鑰,需要把它們都删除掉。

記一次伺服器被植入挖礦腳本的解決過程
為了保證安全,您應該阻止其他使用者添加新的公鑰。
  • 将 authorized_keys 的權限設定為對擁有者隻讀,其他使用者沒有任何權限:
chmod 400 ~/.ssh/authorized_keys
           
  • 為保證 authorized_keys 的權限不會被改掉,您還需要設定該檔案的 immutable 位權限:
chattr +i ~/.ssh/authorized_keys
           
  • 然而,使用者還可以重命名 ~/.ssh,然後建立新的 ~/.ssh 目錄和 authorized_keys 檔案。要避免這種情況,需要設定 ~./ssh 的 immutable 權限:
chattr +i ~/.ssh
           
  • 修改後的檔案可以lsattr檢視屬性
[root@study ~]# lsattr [-adR] 檔案或目錄
選項與參數:
-a :將隱藏檔的屬性也秀出來;
-d :如果接的是目錄,僅列出目錄本身的屬性而非目錄內的檔名;
-R :連同子目錄的資料也一併列出來!
           

設定防火牆政策

如果正常業務中Redis服務需要被其他伺服器來通路,可以通過redis日志找出對方ip,然後通過設定iptables或者firewalld政策把該ip禁止通路。

修改ssh預設端口

檢查sshd_config檔案
記一次伺服器被植入挖礦腳本的解決過程

發現sshd_config檔案被修改,添加了多個ssh通路的端口,把它們删除掉

記一次伺服器被植入挖礦腳本的解決過程
修改ssh通路端口

将Port改為50000

記一次伺服器被植入挖礦腳本的解決過程
重新開機ssh服務
systemctl restart sshd.service
           

檢查家目錄是否有别人新創的使用者

除紅色外均不是我建立的使用者

記一次伺服器被植入挖礦腳本的解決過程

通路其中一個别人建立的使用者家目錄(frank),發現其.ssh目錄下的authorized_keys已儲存了對方的公鑰,即對方可通過frank使用者進行免密碼登入。

記一次伺服器被植入挖礦腳本的解決過程
删除該使用者(frank)資料和家目錄

而使用者的資料有:

  • 使用者賬号/密碼相關參數:/etc/passwd, /etc/shadow
  • 使用者群組相關參數:/etc/group, /etc/gshadow
  • 使用者個人檔案資料: /home/username, /var/spool/mail/usernam

使用如下指令即可删除上述所有。

[root@study ~]#  userdel -r frank
選項與參數:
-r :連同使用者的家目錄也一起删除
           

修改系統所有使用者的密碼(包括root)

建議不用root直接修改,因為root會忽略密碼安全校驗。

切換使用者,直接用passwd指令即可修改目前使用者的密碼。
記一次伺服器被植入挖礦腳本的解決過程

參考:

https://www.freebuf.com/column/158065.html【Redis未授權通路詳解】

https://blog.csdn.net/huyuyang6688/article/details/78994909【記一次伺服器被挖礦木馬攻擊的經曆】