摘自《Linux系統安全》
一、准備工作
1. 檢查人員應該可以物理接觸到可疑的系統。因為黑客可能會通過網絡監聽而檢測到你正在檢查系統,所以物理接觸比遠程控制更好。
2. 為了當作法庭證據,需要把硬盤做實體備份。如果需要,斷開所有與可疑機器的網絡連接。
3. 做入侵檢測時,檢查人員需要一台計算機專門針對檢查的過程進行檢查項目的結果記錄。
4. 請維護可疑服務器的人員來配合,以確定機器上安裝的軟件和運行的服務、賬戶等信息,以便於安全檢察人員提高檢查的效率、准確性和針對性。
二、步驟
檢測步驟如下:
1. 檢測常用程序是否被替換。確保檢測執行命令的結果是可信的
1).通常被替換的程序有login、ls、ps、ifconfig、du、find、netstat、ss等。執行一些命令參數,查看程序是否被替換。例如:
ls -alh
netsta -anp
2).通過檢查md5sum和文件大小,判斷是否被替換。例如:
md5sum /bin/netstat
3).上傳chkrootkit和rkhunter兩個工具,檢測一下是否有Rootkit,用兩個是可以互補。
4).使用ClamAV Antivirus檢查/sbin、/bin、/usr/sbin、/usr/bin。使用命令如下:
freshclam
clamscan -r PATH
2. 查找隱藏的目錄和文件
查找隱藏目錄和文件時使用的命令如下:
find / -name '...'
find / -name '..'
find / -name '.'
find / -name ' '
3. 檢測近期系統登錄
使用last命令檢測近期系統登錄,特別注意非正常來源IP地址或者用戶名的登錄記錄。
4. 檢測系統用戶
1.通過命令less /etc/passwd查看是否有新增用戶
2.通過命令grep ':0' /etc/passwd 查看是否有特權用戶(root權限用戶)
3.通過命令stat /etc/passwd 查看passwd最后修改事件
4.通過命令awk -F: 'length($2)==0 {print $1}' /etc/shadow 查看是否存在空口令的用戶。
5. 查看進程
1.輸入ps -aux查看輸出信息,尤其注意有沒有以./xxx開頭的進程。如果有,則用kill -9 PID殺死該進程,然后再運行ps -aux查看該進程是否被殺死;如果此類進程出現結束后又重新啟動的現象,則證明系統同被人放置了自動啟動腳本,這個時候要進行仔細查找。使用如下命令:
find / -name 進程名 -print
2.通過命令lsof -p PID查看進程所打開的端口和文件。
3.檢查隱藏進程,使用的命令如下:
ps -ef| awk '{print $2}' | sort -n | uniq>1
ls /proc | sort -n | uniq>2
diff 1 2
6. 檢查網絡連接和監聽端口
1.使用命令ip link |grep PROMISC檢查。正常網卡不存在promisc,如果存在則有可能是嗅探。
2.通過netstat -lntp查看所有監聽端口。
3.通過netstat -antp查看所有已經建立的連接。特別注意本機主動連接到外部地址的連接,這可能是反彈shell。
4.通過arp -an查看arp記錄是否正常。
7. 檢查計划任務
1.通過命令crontab -u root -l查看root用戶的計划任務。
2.通過命令cat /etc/crontab查看有無異常條目。
3.通過命令ls /var/spool/cron查看有無異常條目。
4.通過命令ls -l/etc/cron.*查看cron詳細文件變化。
8. 檢查開機啟動項
1.檢查開機啟動項/etc/rc.local的內容
2.使用systemctl或者chkconfig檢查開機啟動項。
9. 檢查日志中的異常
注:為了防止對原始日志的損壞,建議檢查前最好先做好日志備份。
