如何快速找出Linux服務器上不該存在惡意或后門文件


如何快速找出Linux服務器上不該存在惡意或后門文件。前段時間我在APT寫作時注意到一個問題,我發現網上大多都是關於Windows惡意軟件檢測的文章以及教程,而關於如何尋找Linux系統上惡意軟件的資料卻少之又少。因此,這篇文章主要是向大家介紹一些有關檢查Linux系統惡意軟件的技巧和方法。話不多說,讓我們進入正題。

校驗二進制文件

有一件事需要檢查確認即沒有運行的二進制文件被修改。這種類型的惡意軟件可以用sshd的版本來支持,以允許使用特定的密碼連接到系統,甚至是一些二進制文件的修改版本,它以root用戶身份運行,只需監聽觸發器數據包的原始套接字即可。為此,我們將以Redhat和Debian為例。

尋找不屬於的二進制文件

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | grep “not owned”

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | grep “no path”

校驗運行的二進制文件是否與包中的文件匹配

find /proc/*/exe -exec readlink {} + | xargs rpm -qf | xargs rpm -V

find /proc/*/exe -exec readlink {} + | xargs dpkg -S | cut -d: -f1 | xargs dpkg -V

\

校驗所有包文件

另一件需要檢查確認的事是即所有屬於包的二進制文件都沒有被修改。這個過程可能需要一段時間才能完成,但這是值得。我們可以設置一個cron jobs,以在指定時間來運行它。

校驗所有包文件

rpm -Va

dpkg -V

\

輸出結果

輸出應該顯示屬於包的任何二進制文件,計算二進制文件的哈希值,並將其與包安裝或更新時保存的值進行比較。以下是基於Redhat系統的輸出。使用dpkg的Debian系統不校驗其中的大部分,因此如果修改了二進制文件,只顯示“5”。

S 文件大小不同

M 模式不同(包括權限和文件類型)

5 摘要(以前的MD5 sum)不同

D 設備主/次要號不匹配

L readLink(2)路徑不匹配

U 用戶所有權不同

G 組的所有權不同

T mTime不同

P caPabilities不同

檢查RAW套接字

我們經常能看到RAW socket后門。它們偵聽傳入的數據包並觸發事件,例如最近發現的“Chaos”后門,以及一個在github上搜索raw socket后門時彈出的示例。對於這個檢查,我們只會看看使用RAW套接字的過程。使用它們的常用程序並不多,因此我們可以縮小要查看的進程的范圍。

使用 raw sockets listening檢查二進制文件

netstat -lwp or ss -lwp

lsof | grep RAW

\

檢查可能的注入內存

這里可能會存在各種誤報的情況。RWX內存(讀寫執行)被許多程序使用,其中大多數是解釋型語言,所以像python和java之類的,或使用任何庫解析腳本的都會有這種情況,這是非常正常的。如果你找到RWX內存的許多條目並且該進程不是python或java,那你就應該仔細的查看一下了。該命令將列出RWX內存的進程id。可以看到以下列出了cron,這顯然是不正常的進程。

命令查找pid

grep -r “rwx” /proc/*/maps | cut -d/ -f 3|uniq -c | sort -nr

\

檢查修改的PAM模塊

一個常見的后門是插入或替換PAM模塊進行認證。 這可以允許遠程訪問,並且還允許攻擊者從任何用戶獲取root權限。這個后門程序也不關心對/etc/passwd的修改,所以所有的原始密碼和修改后的密碼仍然有效。由於它提供的訪問類型,在我看來這是一種非常危險的后門類型。你可以使用合法登錄條目的正常協議,因此看起來顯然像是沒有任何惡意網絡活動一樣。

校驗PAM模塊

find /lib64/security/ | xargs rpm -qf | grep “not owned”

find /lib64/security/ | xargs rpm -qf | grep -v “not “| xargs rpm -V

\
\
\

SSH訪問

保持訪問權限並不需要刪除二進制文件的一種非常簡單的方法是,只需將ssh密鑰添加到特定用戶的authorized_keys文件中,並允許攻擊者像普通用戶那樣進入ssh。這也是最難檢測的方法之一,因為你需要確定ssh密鑰是合法的還是惡意的,這要求用戶驗證只有他們的密鑰在該文件中。攻擊者也可以竊取用戶的密鑰,如果他們之前被盜用過的話。

列出所有用戶的.ssh文件夾

cat /etc/passwd |cut -d: -f 6 | xargs -I@ /bin/sh -c “echo @; ls -al @/.ssh/ 2>/dev/null”

\

總結

有許多不同的方式可以保持對Linux服務器的權限訪問。以上查找列表並不完整,但都是一些較為常見的查找后門的方法,包括Meterpreter和github上發現的其他常見后門程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM