快速自檢電腦是否被黑客入侵過 Linux版

2021-10-04 00:17:45 字數 3994 閱讀 2938

之前寫了一篇快速自檢電腦是否被黑客入侵過(windows版), 這次就來寫寫linux版本的.

嚴謹地說, linux只是乙個核心,gnu linux才算完整的作業系統, 但在本文裡還是用通俗的叫法,

ubuntu,debian,redhat,centos,archlinux等發行版都統稱為linux.

本文裡所說的方法不僅對linux的發行版適用, 部分方法對mac osx作業系統也是適用的.

如果黑客曾經獲得過命令執行的機會, 對方往往會想要將這個機會持續下去, 業內稱之為持久化(persistence).

而建立後門帳號, 往往是乙個持久化的途徑.

cat /etc/passwd可以看到當前系統中的所有使用者和對應的組資訊, 如果帳號太多一眼看不過來,

我通常會用下述方法篩選:

cat /etc/passwd | awk -f: '' | sort | uniq -c
改命令的作用是列印所有型別的shell和對應的數量, 對於有shell的使用者, 要仔細檢查.

如果上一步獲得了某個異常的使用者名稱(假設為hacker), 可以用以下方法詳細檢查該使用者:

注:finger命令在某些作業系統裡不是內建的, 可以自行用包管理工具安裝, 如:

ubuntu/debian: apt-get install finger

centos/redhat: yum install finger

archlinux: pacman -s finger

下面提到的其他非內建命令類似

一般的linux使用者都會用sudo來讓普通使用者可以執行root操作, 因此對於已經存在的普通使用者,

也不可掉以輕心.sudo所管理的許可權, 在/etc/sudoers以及/etc/sudoers.d中可以檢視,

最好經常檢查改檔案以確保沒有普通使用者獲得了意外的許可權. 對於每個普通使用者,

可以用命令groups username來查詢其所屬的組, 如果是root或者sudo組,

或者該組在/etc/sudoers檔案中, 那就要格外警覺了.

linux下的自啟動流程根據其服務管理器的不同而不同, 常用的有以下三種:

upstart是基於事件的,用來取代古老的/sbin/init程序來處理任務和服務自啟動的方法.

檢視該型別的自啟動檔案可以用以下命令:

systemv就是常用的service start/stop/status ***.service命令背後的服務管理系統.

檢視該型別的自啟動檔案可以用以下命令:

systemd是現代的服務管理系統, 比較新的linux版都已經遷移為systemd了.

有兩種方式檢視所有自啟動的服務:

舊版本的linux一般是upstart和systemv混用, 新版本都大多遷移到systemd了.

除了上述的自啟動服務, linux下還可以通過計畫任務來進行持久化執行, 檢查異常的計畫任務相對簡單,

只需要檢視/etc/crontab以及子目錄下/etc/cron.*的計畫任務檔案即可.

用過linux的都知道, 在$home/.bashrc檔案裡可以進行初始化配置並應用於每個shell,

也就是說裡面的指令碼在每次新開乙個terminal的時候都是有可能被執行的.

這類配置檔案包括.bashrc,.bash_profile,.bash_login,.profile等等.

其是否執行以及執行的順序由shell被呼叫時是否登入, 以及是否互動執行來決定,

對於bash來說, 執行流程如下表:

指令碼名稱

互動登入

互動非登入

指令碼(即非互動)

/etc/profilea

/etc/bash.bashrc

a~/.bashrc

b~/.bash_profileb1

~/.bash_loginb2

~/.profileb3

$bashenv

a`| | |~/.bash_logout `

c 其中執行順序為a->b->c, b[123]表示只有當第乙個指令碼存在時候才會執行. 用流程圖表示如下:

關於登入/非登入shell以及互動/非互動shell的內容可以參考網上的其他介紹, 這裡就不展開了.

只要知道自己的shell初始化所執行的檔案順序, 並檢查這些檔案看是否有可疑命令, 從而才能發現異常資訊.

一般而言, 黑客獲取shell之後會在上面執行某些命令, 我們可以通過history命令來檢視曾經執行過的命令.

或者直接檢視~/.bash_history檔案. 聰明的黑客幹完壞事也許會清理痕跡, 但如果發現history被惡意清除,

或者被異常篡改, 那也足以給我們警示的訊號了.

日誌, 尤其是系統日誌, 是我們絕佳的幫手, 下面一些命令可以用來讀取日誌檔案並輸出相關資訊:

當然, 有心的攻擊者也會在這些命令中隱藏自己的痕跡, 比如使用小工具hidemyass.

系統日誌一般都由rsyslogd程序產生, 配置在/etc/rsyslog.conf檔案以及/etc/rsyslog.d/目錄下,

一些常見的日誌和介紹如下:

通過檢查上述日誌, 往往可以發現一些意想不到的痕跡(如果有的話).

雖然說自檢主要是從犯罪痕跡中找到線索和指示, 但有時候攻擊者留下的惡意軟體還是會正在執行中的,

這時, 從犯罪現場來搜尋蛛絲馬跡也是乙個不錯的主意.

查詢異常程序, 可以用top命令檢視正在執行的程式所占用的資源, 或者用ps -ef列出當前系統所用的程序.

如果發現自己不認識的程序, 可以用以下命令進行詳細的檢查:

當然, 如果攻擊者用某種手段隱藏了程序, 也還是會留下一些線索, 比如可疑的lkm模組, 這裡就不深入了.

如果某個惡意程序正在活動, 很可能此時正在與外界網路有交流, 這就需要通過抓包工具來進行分析了.

對於linux桌面使用者, wireshark是個絕佳選擇, 而對於服務端, tcpdump是個好工具, 對其掌握也是很必要的.

以wireshark為例, 開啟抓包幾分鐘左右, 通過內建的過濾規則, 加上上面分析到的應用所開啟的網路連線,

就可以看到這個惡意應用到底在和外界做些什麼**的交流, 從而及**估損失和保護資料.

除了惡意軟體發起的網路瀏覽, 還有一些是通過自身發起的. 比如攻擊者修改了iptables,dns,http**,

或者/etc/hosts, 都可能會導致我們正常的網路請求被攻擊者監聽並篡改. 這些小小的修改也許不是很明顯,

可一旦發現自身網路環境'不太對勁', 就要提高警惕, 仔細排查了.

使用linux作為日常桌面作業系統的人, 一般都是有一定的技術水平, 但道高一尺, 魔高一丈,

攻擊linux的人對應地技術水平也會高些, 所以本文相對於windows版的自檢略為詳細.

正所謂'未知攻,焉知防', 本文很多自檢方法也是根據筆者日常的紅隊經驗得到的,

希望能對提高小夥伴們的安全意識和防護能力有所幫助吧.

Twitter證實再被黑客入侵 布蘭妮帳號被竊走

北京時間5月2日訊息,據國外 報道,美國知名微型部落格 twitter聯合創始人比茲斯通 biz stone 周四證實,週三確實有一名黑客成功入侵twitter,並取得10個twitter個人使用者賬號的控制權。這已是今年開始以來twitter遭到的第二次黑客入侵。週三一位網名為 黑客克羅爾 hac...

Mysql被黑客入侵及安全措施總結

mysql中只剩下兩個資料庫,乙個是information schema,另乙個是黑客建立的please read,其中有一張info表,內容如下 顯然,我這是遇到位元幣敲詐了。我的資料在別人的伺服器裡安然的躺著,需要向黑客支付0.2位元幣才有可能恢復。按照當前的匯率,0.2位元幣大約為1400人民...

校驗軟體是否被黑客所修改

此功能可以將你現在的程式所有檔案,與當初安裝時記錄到資料庫中的資訊進行比對。從而查出哪些檔案目錄的許可權 內容等等是否被修改過。1.安裝乙個zsh軟體用來進行實驗 2.檢視資料庫檔案 在 var lib rpm中都是是安裝軟體時留下的資料庫檔案,其中以 db開頭的是快取檔案並非正真的資料檔案,這個檔...