1、準備工作
盡可能物理接觸到可疑的系統(tǒng),防止黑客遠程竊聽你在檢測
硬盤做實體備份,如有需要,斷開所有與可以機器的網絡連接
需要一臺電腦專門對檢查過程進行入侵檢測結果的記錄
找到維護此服務器的人員來配合你
2、步驟
檢測項1:常用程序是否被替換
通常被替換的程序有l(wèi)ogin、ls、ps、ifconfig、du、find、netstat
執(zhí)行相關程序參數(shù),查看是否被替換
ls -alh
netstat -anp
檢查md5sum和文件大小
md5sum /bin/netstat
【注】linux prelink預鏈接會對md5sum的值產生影響,建議禁用預鏈接
上傳chkrootkit和rkhunter兩個工具,檢查是否有rootkit
使用開源防病毒引擎clamav antivirus檢查bin
freshclam
clamscan -r PATH
檢測項2:查看隱藏目錄和文件
find / -name '...'
find / -name '..'
find / -name '.'
find / -name ' '
檢測項3:檢測近期系統(tǒng)登錄
last命令
檢測項4:檢測系統(tǒng)用戶
less /etc/passwd 查看是否有新增用戶

grep ': 0' /etc/passwd 查看是否有特權用戶
stat /etc/passwd 查看passwd最后修改時間
awk-F: 'length($2)**0 print{$1}' /etc/shadow 查看是否存在空口令用戶
檢測項5:查看進程
ps -aux 查看有無以./xxx開頭的進程,使用kil -9 pid 殺死該進程,再運行ps -aux,若此類進程又出現(xiàn)了,則證明系統(tǒng)被放置了自動啟動腳本,故使用find / -name 進程名 -print
lsof -p pid 查看進程所打開的端口及文件
檢查隱藏進程
ps -ef | awk 'print($2)' | sort -n | uniq >1
ls /proc | sort -n | uniq>2
diff 1 2
檢查項6:檢查網絡連接和監(jiān)聽端口
ip link |grep PROMISC 檢查是否可能存在嗅探
netstat -lntp 查看監(jiān)聽端口
nestat -antp 查看所有已建立的外部鏈接,注意本機主動連接到外部地址的連接,可能意味著反彈shell
arp -an 查看arp記錄是否正常
檢查項7:計劃任務
crontab -u root -l 查看root用戶的計劃任務
cat /etc/crontab 查看是否有異常條目
ls /var/spool/corn 查看是否有異常條目
ls -l /etc/cron.* 查看cron詳細文件變化
檢查項8:開機啟動項
查看 /etc/rc.local文件的內容
systemctl 或 chkconfig檢查開機啟動項
檢查項9:日志中的異常
建議先做好日志備份
日志類型
系統(tǒng):message、secure、cron、mail等
應用程序:Apache、Nginx、FTP、Mysql、Oracle等

程序開發(fā)日志
bash_history
其他安全事件日志
分析異常
用戶在非正常時間登陸
殘缺的日志文件
登陸系統(tǒng)的ip和以往不同
失敗的日志記錄
非法使用或不正當使用su命令
非法或無故重啟網絡服務內容
檢測項10:webshell檢測
檢查web目錄
使用D盾或者LMD、安全狗等工具
3、檢測注意項
若此機器的業(yè)務很重要,無法切斷網絡連接,則一定要備份所有重要的資料
若此機器的業(yè)務不重要,建議切斷網絡做物理隔離,將硬盤進行外置存儲,可使用包括dd等工具
嘗試找到黑客活動的證據(jù)
取證工具尋找攻擊者使用過的文件
查找是否有遠控或后門
修復攻擊者利用的漏洞
4、修復
用原始工具重新安裝系統(tǒng),并安裝所有補丁
對web服務器按照安全標準配置目錄權限和配置文件
改變所有系統(tǒng)相關賬號(包括數(shù)據(jù)庫連接字符串)的密碼
嘗試檢查、恢復被攻擊者篡改的文件
5、出具檢測報告
包含
檢測概要步驟

初步檢測結果
XX地方可能出現(xiàn)了問題
入侵事件對業(yè)務的影響
改進建議
6、防止服務器被入侵
在計算機安全技術上,我們可以從4個方面來著手分析服務器存在的風險,以及防范措施。
1、物理環(huán)境安全
物理環(huán)境就是指我們服務器存放的位置,我們需要分析它是否存在如下風險:
如果是自有服務器,你必須要有相對隔離的專用空間,并配上門禁和視頻監(jiān)控控制出入。因為如果服務器人人都可以觸碰到它,那它沒有任何安全可言。因為只要物理上可以接觸到,那就有可能會被惡意的人盜走服務器,然后再慢慢破解服務器,獲取服務器的信息。如果服務器是托管,你必須要求托管方有上面提到的門禁、視頻監(jiān)控等。不過,一般都會有。如果是云服務器,也就是虛擬機,那你要求云服務商的物理服務器必須在國內,同樣有上面提到的基本物理安全。
2、通訊網絡安全
通訊網絡就是服務器需要對外提供服務使用的網絡系統(tǒng)。這一塊是我們比較熟悉的。我們需要做如下措施來保障安全:
出口必須有防火墻,(有條件用雙機)通過防火墻的的規(guī)則,可以屏蔽不需要開放的端口。使得黑客們的攻擊面變窄。服務器和桌面終端不能在同一個區(qū)域,至少需要劃分VLAN隔離。對外服務的訪問盡量采用加密訪問沒有找到md5文件,比如:web服務就盡量采用HTTPS來提供;有分支結構訪問的,采用加密IPsec VPN或者SSL VPN來訪問。服務器本身需要有 TPM 芯片(現(xiàn)在一般都有),該芯片是可信計算模塊,可以幫助我們的服務器對內部的計算信息進行加密。確保不會在計算過程中因為信息被竊取而出現(xiàn)安全問題。
3、區(qū)域邊界安全
不同的區(qū)域之間雖然有前面提到的VLAN隔離沒有找到md5文件,但是我們還需要部署防火墻系統(tǒng),讓低安全等級的區(qū)域不能隨意進入高安全等級區(qū)域。出口的邊界區(qū)域,除了前面提到需要出口防火墻外,還可以配備入侵防御系統(tǒng)IPS、來防范攻擊。因為防火墻只是收窄了攻擊面。相當于只是一個小區(qū)保安幫忙過濾了一下進出人員。但無法防范偽冒正常流量的攻擊。所以需要配備IPS,來對入侵進行防御。服務器必須配備防病毒系統(tǒng)。如果服務器眾多,可以配備防病毒網關。服務器就1-2臺,那就在服務器上安全企業(yè)殺毒軟件,防止病毒入侵。
4、計算安全
系統(tǒng)要加固,也就是操作系統(tǒng)要及時打補丁,尤其是安全補丁。如果服務器眾多,可以考慮上服務器加固系統(tǒng)。身份安全:也就是服務器的密碼必須復雜口令、并且定時更換。有條件的可以采用動態(tài)密碼和靜態(tài)密碼結合的雙因子認證。定期要進行漏洞掃描,防止服務器在使用過程中出現(xiàn)漏洞。一旦掃描發(fā)現(xiàn)漏洞,需要立即進行修復。服務器日志要集中收集,運維人員定時分析日志。發(fā)現(xiàn)異常入侵行為日志,應該立即預警,并作出防御行動。最后,為了防止內部人員惡意入侵,我們還需要一套堡壘機,通過堡壘機來控制所有的運維人員對服務器的操作。確保其權限始終,并且操作行為可被追蹤。
7、排查步驟實例
7.1、入侵者可能會刪除機器的日志信息,可以查看日志信息是否還存在或者是否被清空,相關命令示例:
[root@hlmcen69n3 ~]# ll -h /var/log/*
-rw-------. 1 root root 2.6K Jul 7 18:31 /var/log/anaconda.ifcfg.log
-rw-------. 1 root root 23K Jul 7 18:31 /var/log/anaconda.log
-rw-------. 1 root root 26K Jul 7 18:31 /var/log/anaconda.program.log
-rw-------. 1 root root 63K Jul 7 18:31 /var/log/anaconda.storage.log
[root@hlmcen69n3 ~]# du -sh /var/log/*
8.0K /var/log/anaconda
4.0K /var/log/anaconda.ifcfg.log
24K /var/log/anaconda.log

28K /var/log/anaconda.program.log
64K /var/log/anaconda.storage.log
7.2、入侵者可能創(chuàng)建一個新的存放用戶名及密碼文件,可以查看/etc/及/etc/文件,相關命令示例:
[root@hlmcen69n3 ~]# ll /etc/pass*
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd
-rw-r--r--. 1 root root 1373 Sep 15 11:36 /etc/passwd-
[root@hlmcen69n3 ~]# ll /etc/sha*
----------. 1 root root 816 Sep 15 11:36 /etc/shadow
----------. 1 root root 718 Sep 15 11:36 /etc/shadow-
7.3、入侵者可能修改用戶名及密碼文件,可以查看/etc/及/etc/文件內容進行鑒別,相關命令示例:
[root@hlmcen69n3 ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
[root@hlmcen69n3 ~]# more /etc/shadow
root:*LOCK*:14600::::::
bin:*:17246:0:99999:7:::
daemon:*:17246:0:99999:7:::
7.4、查看機器最近成功登錄的事件和最后一次不成功地登錄事件,對應日志"/var/og/",相關命令示例:
[root@hlmcen69n3 ~]# lastlog
Username Port From Latest

root **Never logged in**
bin **Never logged in**
daemon **Never logged in**
7.5、查看機器當前登錄的全部用戶,對應日志文件"/var/run/utmp",相關命令示例:
[root@hlmcen69n3 ~]# who
stone pts/0 2017-09-20 16:17 (X.X.X.X)
test01 pts/2 2017-09-20 16:47 (X.X.X.X)
7.6、查看機器創(chuàng)建以來登錄過的用戶,對應日志文件"/var/log/wtmp",相關命令示例:
[root@hlmcen69n3 ~]# last
test01 pts/1 X.X.X.X Wed Sep 20 16:50 still logged in
test01 pts/2 X.X.X.X Wed Sep 20 16:47 - 16:49 (00:02)
stone pts/1 X.X.X.X Wed Sep 20 16:46 - 16:47 (00:01)
stone pts/0 X.X.X.X Wed Sep 20 16:17 still logged in
7.7、查看機器所有用戶的連接時間(小時),對應文件日志"/var/log/wtmp",相關命令示例:
[root@hlmcen69n3 ~]# ac -dp
stone 11.98
Sep 15 total 11.98
stone 67.06
Sep 18 total 67.06
stone 1.27
test01 0.24
Today total 1.50
7.8、如果發(fā)現(xiàn)機器產生了異常流量,可以使用命令""抓取網絡包查看流量情況或者使用工具"iperf"查看流量情況
7.9、可以查看/var/log/日志文件,嘗試發(fā)現(xiàn)入侵者的信息,相關命令示例: