11 個步驟完美排查伺服器 是否已經被入侵(全程乾貨,建議收藏)
隨著開源產品的越來越盛行,作為一個Linux運維工程師,能夠清晰地鑑別異常機器是否已經被入侵了顯得至關重要,個人結合自己的工作經歷,整理了幾種常見的機器被黑情況供參考:
背景資訊:以下情況是在CentOS 6。9的系統中檢視的,其它Linux發行版類似。
1入侵者可能會刪除機器的日誌資訊
可以檢視日誌資訊是否還存在或者是否被清空,相關命令示例:
2入侵者可能建立一個新的存放使用者名稱及密碼檔案
可以檢視/etc/passwd及/etc/shadow檔案,相關命令示例:
3入侵者可能修改使用者名稱及密碼檔案
可以檢視/etc/passwd及/etc/shadow檔案內容進行鑑別,相關命令示例:
4檢視機器最近成功登陸的事件和最後一次不成功的登陸事件
對應日誌“/var/log/lastlog”,相關命令示例:
5檢視機器當前登入的全部使用者
對應日誌檔案“/var/run/utmp”,相關命令示例:
6檢視機器建立以來登陸過的使用者
對應日誌檔案“/var/log/wtmp”,相關命令示例:
7檢視機器所有使用者的連線時間(小時)
對應日誌檔案“/var/log/wtmp”,相關命令示例:
8如果發現機器產生了異常流量
可以使用命令“tcpdump”抓取網路包檢視流量情況或者使用工具”iperf”檢視流量情況
9可以檢視/var/log/secure日誌檔案
嘗試發現入侵者的資訊,相關命令示例:
10查詢異常程序所對應的執行指令碼檔案
a。top命令檢視異常程序對應的PID
b。在虛擬檔案系統目錄查詢該程序的可執行檔案
11如果確認機器已被入侵,重要檔案已被刪除,可以嘗試找回被刪除的檔案Note:
1、當程序打開了某個檔案時,只要該程序保持開啟該檔案,即使將其刪除,它依然存在於磁碟中。這意味著,程序並不知道檔案已經被刪除,它仍然可以向開啟該檔案時提供給它的檔案描述符進行讀取和寫入。除了該程序之外,這個檔案是不可見的,因為已經刪除了其相應的目錄索引節點。
2、在/proc 目錄下,其中包含了反映核心和程序樹的各種檔案。/proc目錄掛載的是在記憶體中所對映的一塊區域,所以這些檔案和目錄並不存在於磁碟中,因此當我們對這些檔案進行讀取和寫入時,實際上是在從記憶體中獲取相關資訊。大多數與 lsof 相關的資訊都儲存於以程序的 PID 命名的目錄中,即 /proc/1234 中包含的是 PID 為 1234 的程序的資訊。每個程序目錄中存在著各種檔案,它們可以使得應用程式簡單地瞭解程序的記憶體空間、檔案描述符列表、指向磁碟上的檔案的符號連結和其他系統資訊。lsof 程式使用該資訊和其他關於核心內部狀態的資訊來產生其輸出。所以lsof 可以顯示程序的檔案描述符和相關的檔名等資訊。也就是我們透過訪問程序的檔案描述符可以找到該檔案的相關資訊。
3、當系統中的某個檔案被意外地刪除了,只要這個時候系統中還有程序正在訪問該檔案,那麼我們就可以透過lsof從/proc目錄下恢復該檔案的內容。
假設入侵者將/var/log/secure檔案刪除掉了,嘗試將/var/log/secure檔案恢復的方法可以參考如下:
a。檢視/var/log/secure檔案,發現已經沒有該檔案
b。使用lsof命令檢視當前是否有程序開啟/var/log/secure,
c。從上面的資訊可以看到 PID 1264(rsyslogd)開啟檔案的檔案描述符為4。同時還可以看到/var/log/ secure已經標記為被刪除了。因此我們可以在/proc/1264/fd/4(fd下的每個以數字命名的檔案表示程序對應的檔案描述符)中檢視相應的資訊,如下:
d。從上面的資訊可以看出,檢視/proc/1264/fd/4就可以得到所要恢復的資料。如果可以透過檔案描述符檢視相應的資料,那麼就可以使用I/O重定向將其重定向到檔案中,如:
e。再次檢視/var/log/secure,發現該檔案已經存在。對於許多應用程式,尤其是日誌檔案和資料庫,這種恢復刪除檔案的方法非常有用。
相關文章
- 2021-06-02國家德比賽後:科曼繼續指責曼薩諾
- 2021-05-15機油超過或低於機油尺的上下限有什麼危害?還能開嗎?
- 2021-05-08乾貨分享!簡析Python配置檔案中一些常見、實用的寫法!
- 2021-04-29遊戲開發之旅-JavaScript事件迴圈
- 2021-04-19如何使用VeraCrypt開源軟體加密檔案