Linux服務器被攻破?7條指令鎖定背後的“他”!

引言

大多數受攻擊的服務器是由程序執行的,這些攻擊者會濫用服務器,只要能正常訪問,他們幾乎不採取任何預防措施隱藏他們正在做的事。

Linux服務器被攻破?7條指令鎖定背後的“他”!

服務器被攻破的跡象

當一個服務器被一個缺乏經驗的,或者程序攻擊者破壞時,他們通常會做一些事情來消耗100%的資源。

這種資源通常是用於加密貨幣挖掘,或發送垃圾郵件,或用於發起DDOS攻擊。

這意味着出現問題的第一個跡象是服務器“運行緩慢”。這可能表現在網站服務頁面的速度比平時慢得多,或電子郵件需要花費很久才能發送。

那麼應該怎麼排查呢?

檢查清單1 -誰正在登錄?

首先要查找的是當前登錄到服務器的用户。

發現攻擊者實際登錄到了服務器,還堂而皇之在上面工作的,並不少見。

可以使用w指令檢查。

whois命令可以在IP地址上運行,它會告訴你有關該IP註冊到的所在地的所有信息。

檢查清單2 -誰已經登錄過?

Linux服務器會記錄哪些用户登錄,從哪個IP登錄,登錄時間和登錄時間。使用最last命令打印此信息。

登錄歷史記錄記錄在一個~/.bash_history文件內,因此很容易刪除。

通常,攻擊者會簡單地刪除這個文件,以試圖掩蓋他們的蹤跡。

所以,如果你運行last指令,卻只看到你的當前登錄,這就是一個不太妙了。

如果沒有登錄歷史,就非常非常可疑了,需要繼續尋找攻擊的跡象。

檢查清單3 -命令歷史記錄

這種級別的攻擊者通常不採取任何預防措施,不留下任何命令歷史記錄,因此運行history命令將向你展示他們所做的一切。

特別留意wget或curl命令,可能會有系統庫以外的軟件被下載,如spam bots 或 crypto miners。

檢查清單4 -CPU

攻擊者通常很沒有截止,肆無忌憚地耗費着服務資源。這通常很容易發現,只需運行top查看所有的進程。這會顯示在沒有登錄的情況下使用你的服務器。

如果有陌生的進程,可以在網上搜索一下,也可以使用 losf 或 strace 追蹤。確定可以PID後這樣做:

strace -p PID

這會顯示進程正在進行的所有系統調用。有很多信息,但是瀏覽這些信息會讓你對正在發生的事情有一個很全面的瞭解。

lsof -p PID

這個程序將列出進程已打開的文件。

檢查清單5 - 系統進程

如果一個未經授權的進程消耗了CPU資源,仍然可以在 ps 所顯示的完整的進程列表中查找到,使用 ps auxf,它可以打印最清晰的信息。

尋找任何您不認識的進程。在服務器上運行ps的次數越多,非法進程就越明顯。

檢查清單6 - 按進程查看網絡使用情況

命令iftop的功能與top類似,用於顯示正在發送和接收網絡數據,及其源和目標的進程的排序列表。

像DOS攻擊或垃圾郵件機器人這樣的進程,會立即出現在列表的頂部。

檢查清單7 - 哪些進程正在監聽網絡連接?

通常,攻擊者會安裝一個除了監聽網絡端口以獲取指令外,什麼也不做的程序。這並不消耗CPU或帶寬,因為它只是監聽狀態,所以top指令很難發現。

lsof 和 netstat 命令都將列出所有網絡進程。我使用以下選項:

lsof -i

或者

netstat -plunt

你應該排查在 LISTEN 或 ESTABLISHED 中列出的任何進程,因為這些進程要麼正在等待連接(LISTEN),要麼正在打開連接(ESTABLISHED)。

如果你不認識這些進程,請使用 strace 或 lsof 查看它們在做什麼。

挽回:發現被攻擊後,該怎麼辦?

首先要做的是不要驚慌,特別是在攻擊者當前登錄的情況下。你需要能夠在攻擊者意識到你來了之前,收回對計算機的控制。

如果他們知道行蹤敗露,很可能會先把你踢出去,並開始惡意破壞任何資源。

如果你不是很專業,那麼只需關閉服務器。

shutdown -h now

或者

systemctl poweroff

如果是雲服務器,到控制面板關閉服務器就行了。一旦它被關閉,你就可以根據需要設置的防火牆規則。

如果你覺得更有信心,主機提供商有一個上游防火牆,然後按這個順序創建和啓用以下兩個規則:

  1. 允許你的IP地址可以通過SSH訪問;

  2. 關閉一切網絡服務東西,不僅僅是SSH,而是每個端口上的每個協議。

這將立即終止攻擊者們的SSH會話,只允許你訪問服務器。

如果你不能訪問上游防火牆,則必須在服務器本身上創建並啓用這些防火牆規則,然後,當這些規則起作用時,使用 kill 命令殺掉攻擊者的ssh會話。

最後,如果有別的連接方式,可以登錄到服務器,就能用 systemctl stop network.service 停止連網。

這將完全停止任何網絡訪問,你有大量的時間配置和啓用防火牆規則。

寫在最後

縱使重新控制了服務器,還沒完呢。

不要試圖修復問題,繼續使用服務器。你永遠無法確定攻擊者做了什麼,因此也無法保證服務器是安全的。

唯一明智的做法是複製所有需要的數據,然後重新安裝。

Happy coding :)

我是@程序員小助手,持續分享編程知識,歡迎關注。

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 2000 字。

轉載請註明: Linux服務器被攻破?7條指令鎖定背後的“他”! - 楠木軒