系統(tǒng)被黑不要慌,十個(gè)步驟來排查


問題背景

安全人員在日常工作中通常要手工排查 Linux 服務(wù)器的安全性,對(duì)于中馬的服務(wù)器,我將其歸納為4個(gè)階段:

1.木馬如何傳播到服務(wù)器上 (Eg:暴力破解系統(tǒng)用戶);

2.木馬的目的是什么(Eg:挖礦、DDOS 攻擊);

3.木馬怎樣清除痕跡(Eg:刪除日志和歷史命令);

4.木馬如何保持連接(Eg:通過啟動(dòng)項(xiàng)和定時(shí)任務(wù))。

本文將從檢查用戶、日志、文件等十個(gè)步驟,通過相關(guān)具體命令來講解如何手工排查 Linux 服務(wù)器的安全性。

Linux 常用命令

du -sh *

查看當(dāng)前文件夾大小

head -n 100 1.log

查看一個(gè)大文件的前100行

grep -ri "nameseve" --include="*.php" /

查看文件字符串

free -m

查看系統(tǒng)內(nèi)存大小

cp 原始文件 目的文件;

cp -r /root/* 目的目錄;

復(fù)制文件及文件夾

tar -cvf a.tar 原始文件;

壓縮文件

tar -xvf a.tar;

tar -xvfz a.tar.gz;

unrar e a.rar;

unzip a.zip

解壓文件

lsof -p pid

查看進(jìn)程

lsof -c 進(jìn)程名

查看進(jìn)程所打開的端口及文件

Scp root@x.x.x.x:原始文件夾 目的文件夾;

在當(dāng)前服務(wù)器,將遠(yuǎn)程服務(wù)器文件拷貝到當(dāng)前

scp 原始文件 root@x.x.x.x:目的文件

把當(dāng)前文件傳到遠(yuǎn)程服務(wù)器上

tcpdump -i eth0 -w eth0.cap -c 100000

本地抓包

kill

殺死進(jìn)程

chmod

改變文件權(quán)限

Sed

本身是一個(gè)管道命令,主要是以行為單位進(jìn)行處理,可以將數(shù)據(jù)行進(jìn)行替換、刪除、新增、選取等特定工作,刪除某行

Uniq

用于報(bào)告或忽略文件中的重復(fù)行,一般與sort命令結(jié)合使用。

Sort

將文件進(jìn)行排序,并將排序結(jié)果標(biāo)準(zhǔn)輸出。

Linux服務(wù)器應(yīng)急常用命令及思路

1 檢查用戶及登入情況

last

last -x reboot

查看重啟的記錄

last -x shutdown

查看關(guān)機(jī)的記錄

last -d

查看登陸的記錄

lastb

這個(gè)命令用于查看登錄失敗的情況,本質(zhì)就是將 /var/log/btmp 文件格式化輸出。

相關(guān)參數(shù):

lastb name(root)

查看root用戶登陸失敗記錄

lastb -10(-n)

查看最近10條登陸失敗記錄

lastlog

這個(gè)命令用于查看用戶上一次的登錄情況,本質(zhì)就是將 /var/log/lastlog 文件格式化輸出。

相關(guān)參數(shù):

lastlog

所有用戶上一次登陸記錄

lastlog -u username(root) root

用戶上一次登陸記錄

lastlog –help

命令幫助信息

Linux不同的用戶有不同的操作權(quán)限,但是所有用戶都會(huì)在 /etc/passwd、/etc/shadow、/etc/group 文件中記錄。

less /etc/passwd

查看是否有新增用戶

grep :0 /etc/passwd

查看是否有特權(quán)用戶(root權(quán)限用戶)

ls -l /etc/passwd

查看passwd最后修改時(shí)間

stat ?useradd

查看該命令的時(shí)間變化,來判斷是否有新增用戶

cat?/etc/passwd??|?grep?-E?"/bin/bash$"

查看能夠登錄的帳號(hào)

2 查看日志信息

/var/log/message

包括整體系統(tǒng)信息

/var/log/auth.log

包含系統(tǒng)授權(quán)信息,包括用戶登錄和使用的權(quán)限機(jī)制等

/var/log/userlog

記錄所有等級(jí)用戶信息的日志

/var/log/cron

記錄crontab命令是否被正確的執(zhí)行

/var/log/lastlog

記錄登錄的用戶,可以使用命令lastlog查看

/var/log/secure

記錄大多數(shù)應(yīng)用輸入的賬號(hào)與密碼,登錄成功與否

/var/log/wtmp

記錄登錄系統(tǒng)成功的賬戶信息,等同于命令last

/var/log/faillog

記錄登錄系統(tǒng)不成功的賬號(hào)信息,一般會(huì)被黑客刪除

檢查日志時(shí)一定要查看下 root 用戶是否有被暴力破解的情況:

grep ? -ri ? "Fail" ??/var/log/secure*

查看失敗登入情況

grep ?-ri ?"accept" ??/var/log/secure*

查看成功登入情況

3 查看歷史命令

cat ? ./bash_history

history ?n

通過用戶的歷史操作命令來排查主機(jī)的安全性,可以關(guān)注以下四個(gè)方面:

① wget?遠(yuǎn)程某主機(jī)(域名&IP)的遠(yuǎn)控文件;

② 嘗試連接內(nèi)網(wǎng)某主機(jī)(ssh?scp),便于分析攻擊者意圖;

③ 打包某敏感數(shù)據(jù)或代碼,tar?zip?類命令

④ 對(duì)系統(tǒng)進(jìn)行配置,包括命令修改、遠(yuǎn)控木馬類,可找到攻擊者關(guān)聯(lián)信息…

4 查看進(jìn)程

一般被入侵的服務(wù)器都會(huì)運(yùn)行一些惡意程序,或是挖礦程序,或者 DDOS 程序等。如果程序在運(yùn)行中,那么通過查看進(jìn)程可以發(fā)現(xiàn)一些信息。

*查看普通進(jìn)程

ps -aux

查看進(jìn)程(注意uid為0的用戶)

top

提供了實(shí)時(shí)的對(duì)系統(tǒng)處理器的狀態(tài)監(jiān)視 (尤其是一些挖礦程序會(huì)消耗大量資源的)


如果進(jìn)程中沒有發(fā)現(xiàn)異常,那么可以看看有沒有開啟某些隱藏進(jìn)程。

*查看隱藏進(jìn)程

ps -ef | awk '{print}' | sort -n | uniq >1

ls /proc | sort -n |uniq >2

diff 1 2

通過以上3個(gè)步驟可以檢查是否開啟了某些隱藏進(jìn)程。

5 查看文件

攻擊者入侵成功后,會(huì)將木馬上傳到一個(gè)合適的文件夾下,要求具有可寫可執(zhí)行的權(quán)限,/tmp / 文件夾通常是合適的選擇,所以可以重點(diǎn)看一下。

被入侵的網(wǎng)站,通??隙ㄓ形募桓膭?dòng),那么可以通過比較文件創(chuàng)建時(shí)間、完整性、文件路徑等方式查看文件是否被改動(dòng)??梢灾攸c(diǎn)查看下相關(guān)配置文件,比如 /etc/init.conf。

find / -uid 0 -print

查找特權(quán)用戶文件

find / -size +10000k -print

查找大于10000k的文件

find / -name "…" -print

查找用戶名為…的文件

md5sum -b filename

查看文件的md5值

whereis 文件名

查看文件路徑

stat 文件名

查看文件時(shí)間修改等詳細(xì)信息

du -sh??文件名

查看文件大小

find / -atime 2 > ?/tmp/1.txt

查看最近兩天訪問的文件

find / -ctime 2 > ?/tmp/1.txt

查看最近兩天狀態(tài)改變的文件(比如文件的權(quán)限 所屬組信息等)

find / -mtime 2 ?> ?/tmp/1.txt

查看最近兩天內(nèi)容改變的文件

注:find -mtine 2 表示兩天以內(nèi),find +mtime 2 表示兩天以前。

6 查看計(jì)劃任務(wù)

當(dāng)我們嘗試 kill 惡意程序時(shí),往往會(huì)遇到被 kill 掉的程序自動(dòng)啟動(dòng)的問題,那么就要檢查下計(jì)劃任務(wù)(cron)了。

crontab -u root -l

cat /etc/crontab

查看root用戶的計(jì)劃任務(wù)

ls /var/spool/cron/

ls -l /etc/cron.*

查看cron文件是否變化的詳細(xì)信息

7 查看啟動(dòng)項(xiàng)

ls /etc/rc.dl

ls?–alt?/etc/init.d/

系統(tǒng)開機(jī)后,此目錄下的文件會(huì)被啟動(dòng)

8 檢查網(wǎng)絡(luò)

檢查網(wǎng)絡(luò)的目的,是查看黑客是否通過篡改網(wǎng)卡類型,進(jìn)行流量嗅探等操作。

ip link | grep PROMISC

正常網(wǎng)卡不應(yīng)該存在promisc,如果存在可能有sniffer

netstat -nap

查看不正常端口

arp -a

查看arp記錄是否正常

ifconfig -a

查看網(wǎng)卡設(shè)置

9 檢查常用命令

有時(shí)攻擊者會(huì)替換掉 ps,netstat 等命令,需要查看下相關(guān)命令的大小以及修改的時(shí)間。

可以使用stat進(jìn)行創(chuàng)建修改時(shí)間、訪問時(shí)間的詳細(xì)查看,若修改時(shí)間距離事件日期接近,有線性關(guān)聯(lián),說明可能被篡改或者其他。

10 查看系統(tǒng)路徑

echo?$PATH

分析有無敏感可疑信息


以上是我的一些經(jīng)驗(yàn)總結(jié),對(duì)于角度不夠全面的地方歡迎大家共同探討。

本文指令參考:

http://man.linuxde.net/

http://www.cnblogs.com/maifengqiang/p/3863168.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容