服務器被黑給我上了一課,由0到1輕松應對各式攻擊!
當你負責的服務器被黑了,怎么辦?
沒遭遇過如此大風大浪的運維人員:
哦,**!我該怎么辦,點根香煙冷靜一下。
Wait!小編請您先切斷網(wǎng)絡,再拿出你的打火機。
下面用一根煙的時間,和小編一起看看處理服務器遭受攻擊事件的最佳思路。
開始之前,我們分析一下,服務器遭受惡意攻擊后主要有哪幾種情況。
攻擊行為分類:
1)惡意的攻擊行為,如拒絕服務攻擊,網(wǎng)絡病毒等等,這些行為旨在100%消耗服務器資源,影響服務器的正常運作,甚至服務器所在網(wǎng)絡的癱瘓;
2)惡意的入侵行為,這種行為更是會導致服務器敏感信息泄露,入侵者可以為所欲為,肆意破壞服務器,竊取其中的數(shù)據(jù)信息并毀壞等。
1、深呼吸,不要緊張
首先,你需要在攻擊者察覺到你已經(jīng)發(fā)現(xiàn)他之前奪回機器的控制權(quán)。如果攻擊者正在線上,他很可能發(fā)現(xiàn)你已經(jīng)開始行動了,那么他可能會鎖死你不讓你登陸服務器,然后開始毀尸滅跡。
所以,如果技術(shù)有限,首先切斷網(wǎng)絡或者直接關(guān)機。
切斷網(wǎng)絡的方式:你可以拔掉網(wǎng)線,或者運行命令:
- systemctl stop network.service
以關(guān)閉服務器的網(wǎng)絡功能。或者在服務器上運行以下兩條命令之一來關(guān)機:
- shutdown -h now
- systemctl poweroff
2、備份重要的數(shù)據(jù)
在開始分析之前,備份服務器上重要的用戶數(shù)據(jù),同時也要查看這些數(shù)據(jù)中是否隱藏著攻擊源。如果攻擊源在用戶數(shù)據(jù)中,一定要徹底刪除,然后將用戶數(shù)據(jù)備份到一個安全的地方。
3、修改root密碼
因為很多情況下,攻擊者高概率已經(jīng)拿到你的root權(quán)限。
接著進行痕跡數(shù)據(jù)采集備份,痕跡數(shù)據(jù)是分析安全事件的重要依據(jù),包括登錄情況、進程信息、網(wǎng)絡信息、系統(tǒng)日志等等。具體的一些查看方參考下文~
4、查看當前登錄在服務器上的用戶
- w

查看近期登陸過服務器的用戶
- last | more

5、通過上述命令,假設發(fā)現(xiàn)可疑用戶someone,鎖定可疑用戶someone
- passwd -l someone
6、查看攻擊者有沒有在自己的服務器上開啟特殊的服務進程,比如后門之類的
- netstat -nl

類似22等是我們比較熟悉的端口,一些比較大的端口號,如52590等,就可以作為懷疑對象,用lsof -i命令查看詳細信息:
- lsof -i :52590

7、檢查有無異常進程并終止
- ps aux

- top

根據(jù)進程名稱(以sshd為例)查看pid
- pidof sshd

查看對應pid目錄下的exe文件信息
- ls -al /proc/7182/exe

查看該pid文件句柄
- ls -al /proc/7182/fd

指定端口,查看相關(guān)進程的pid
- fuser -n tcp 111

根據(jù)pid查看相關(guān)進程
- ps -ef|grep 6483

列出該進程地所有系統(tǒng)調(diào)用
- strace -p PID

列出該進程打開的文件
- lsof -p PID

8、如果攻擊者依舊在線上,那么現(xiàn)在,把他踢!下!線!
根據(jù)w命令輸出信息中的TTY,用以下命令,可以向攻擊者發(fā)送消息并“殺死他”:
- write USER TTY
- pkill -kill -t TTY

如上圖,小編把自己當小白鼠實驗一下,write命令可以向?qū)Ψ桨l(fā)送消息”Goodbye!!”(小編給自己發(fā)了,所以屏幕上有兩個Goodbye,第二個就是收到的),這里你就發(fā)送任何挑釁的語言,獲得一絲絲滿足感。最后Ctrl+d即可退出對話。然后用pkill命令就可以真的可以和對方say goodbye啦~
但是沒有足夠的技術(shù)把握,還是不要隨意挑釁攻擊者,氣急敗壞地回來在攻擊一遍就糟了。
9、檢查系統(tǒng)日志
查看命令歷史
- history
能夠看見攻擊者曾經(jīng)做過的事情,注意觀察有沒有用 wget 或 curl 命令來下載類似垃圾郵件機器人或者挖礦程序之類的非常規(guī)軟件。如果發(fā)現(xiàn)沒有任何輸出,這也是十分不妙,很可能是攻擊者刪除了~/.bash_history文件,這意味著你的對手也許不容小覷。

查看日志是否還存在,或者是否被清空
- ll -h /var/log/*
- du sh /var/log/*


10、日志等信息備份
備份系統(tǒng)日志及默認的httpd服務日志
- tar -cxvf logs.tar.gz /var/html
備份
- last:last > last.log
備份在線用戶
- w > w.log
系統(tǒng)服務備份
- chkconfig --list > services.log
進程備份
- ps -ef > ps.log
監(jiān)聽端口備份
- netstat -utnpl > port-listen.log
系統(tǒng)所有端口情況
- netstat -ano > port-all.log
通過以上這些分析,結(jié)合經(jīng)驗,能夠幫助找到可疑的用戶,將他踢下線;分析可疑的進程并關(guān)閉,檢測是否存在木馬等。
但是小編建議,不要嘗試完成這些修復然后接著用,因為敵人在暗處,我們無法確切知道攻擊者做過什么,也就意味著無法保證我們修復了所有問題。