當你負責的服務器被黑了,怎麼辦?
沒遭遇過如此大風大浪的運維人員:
哦,**!我該怎麼辦,點根香菸冷靜一下。
Wait!小編請您先切斷網絡,再拿出你的打火機。
下面用一根菸的時間,和小編一起看看處理服務器遭受攻擊事件的最佳思路。
開始之前,我們分析一下,服務器遭受惡意攻擊後主要有哪幾種情況。
攻擊行為分類:
1)惡意的攻擊行為,如拒絕服務攻擊,網絡病毒等等,這些行為旨在100%消耗服務器資源,影響服務器的正常運作,甚至服務器所在網絡的癱瘓;
2)惡意的入侵行為,這種行為更是會導致服務器敏感信息洩露,入侵者可以為所欲為,肆意破壞服務器,竊取其中的數據信息並毀壞等。
1、深呼吸,不要緊張
首先,你需要在攻擊者察覺到你已經發現他之前奪回機器的控制權。如果攻擊者正在線上,他很可能發現你已經開始行動了,那麼他可能會鎖死你不讓你登陸服務器,然後開始毀屍滅跡。
所以,如果技術有限,首先切斷網絡或者直接關機。
切斷網絡的方式:你可以拔掉網線,或者運行命令:
systemctl stop network.service
以關閉服務器的網絡功能。或者在服務器上運行以下兩條命令之一來關機:
shutdown -h now
systemctl poweroff
2、備份重要的數據
在開始分析之前,備份服務器上重要的用戶數據,同時也要查看這些數據中是否隱藏著攻擊源。如果攻擊源在用戶數據中,一定要徹底刪除,然後將用戶數據備份到一個安全的地方。
3、修改root密碼
因為很多情況下,攻擊者高概率已經拿到你的root權限。
接著進行痕跡數據採集備份,痕跡數據是分析安全事件的重要依據,包括登錄情況、進程信息、網絡信息、系統日誌等等。具體的一些查看方參考下文~
4、查看當前登錄在服務器上的用戶
w
查看近期登陸過服務器的用戶
last | more
5、通過上述命令,假設發現可疑用戶someone,鎖定可疑用戶someone
passwd -l someone
6、查看攻擊者有沒有在自己的服務器上開啟特殊的服務進程,比如後門之類的
netstat -nl
類似22等是我們比較熟悉的端口,一些比較大的端口號,如52590等,就可以作為懷疑對象,用lsof -i命令查看詳細信息:
lsof -i :52590
7、檢查有無異常進程並終止
ps aux
top
根據進程名稱(以sshd為例)查看pid
pidof sshd
查看對應pid目錄下的exe文件信息
ls -al /proc/7182/exe
查看該pid文件句柄
ls -al /proc/7182/fd
指定端口,查看相關進程的pid
fuser -n tcp 111
根據pid查看相關進程
ps -ef|grep 6483
列出該進程地所有系統調用
strace -p PID
列出該進程打開的文件
lsof -p PID
8、如果攻擊者依舊在線上,那麼現在,把他踢!下!線!
根據w命令輸出信息中的TTY,用以下命令,可以向攻擊者發送消息並“殺死他”:
write USER TTY
pkill -kill -t TTY
如上圖,小編把自己當小白鼠實驗一下,write命令可以向對方發送消息”Goodbye!!”(小編給自己發了,所以屏幕上有兩個Goodbye,第二個就是收到的),這裡你就發送任何挑釁的語言,獲得一絲絲滿足感。最後Ctrl+d即可退出對話。然後用pkill命令就可以真的可以和對方say goodbye啦~
但是沒有足夠的技術把握,還是不要隨意挑釁攻擊者,氣急敗壞地回來在攻擊一遍就糟了。
9、檢查系統日誌
查看命令歷史
history
能夠看見攻擊者曾經做過的事情,注意觀察有沒有用 wget 或 curl 命令來下載類似垃圾郵件機器人或者挖礦程序之類的非常規軟件。如果發現沒有任何輸出,這也是十分不妙,很可能是攻擊者刪除了~/.bash_history文件,這意味著你的對手也許不容小覷。
查看日誌是否還存在,或者是否被清空
ll -h /var/log/*
du sh /var/log/*
10、日誌等信息備份
備份系統日誌及默認的httpd服務日誌
tar -cxvf logs.tar.gz /var/html
備份
last:last > last.log
備份在線用戶
w > w.log
系統服務備份
chkconfig --list > services.log
進程備份
ps -ef > ps.log
監聽端口備份
netstat -utnpl > port-listen.log
系統所有端口情況
netstat -ano > port-all.log
通過以上這些分析,結合經驗,能夠幫助找到可疑的用戶,將他踢下線;分析可疑的進程並關閉,檢測是否存在木馬等。
但是小編建議,不要嘗試完成這些修復然後接著用,因為敵人在暗處,我們無法確切知道攻擊者做過什麼,也就意味著無法保證我們修復了所有問題。
最妥帖的方案是備份所有必要數據然後重裝系統!
閱讀更多 老王談運維 的文章