Linux入侵偵測基礎
0x00 審計命令
在linux中有5個用於審計的命令:
last:這個命令可用於查看我們系統的成功登錄、關機、重啟等情況;這個命令就是將/var/log/wtmp檔案格式化輸出。
lastb:這個命令用於查看登錄失敗的情況;這個命令就是將/var/log/btmp檔案格式化輸出。
lastlog:這個命令用於查看使用者上一次的登錄情況;這個命令就是將/var/log/lastlog檔案格式化輸出。
who:這個命令使用者查看當前登錄系統的情況;這個命令就是將/var/log/utmp檔案格式化輸出。
w:與who命令一致。
關於它們的使用:man last,last與lastb命令使用方法類似:
last [-R] [-num] [ -n num ] [-adFiowx] [ -f file ] [ -t YYYYMMDDHHMMSS ] [name…] [tty…]
lastb [-R] [-num] [ -n num ] [ -f file ] [-adFiowx] [name…] [tty…]
who [OPTION]… [ FILE | ARG1 ARG2 ]
參數說明:
1.查看系統登錄情況
last:不帶任何參數,顯示系統的登錄以及重啟情況
2.只針對關機/重啟
使用-x參數可以針對不同的情況進行查看
3.只針對登錄
使用-d參數,並且參數後不用跟任何選項
4.顯示錯誤的登錄資訊
lastb
5.查看當前登錄情況
who、w
0x01 日誌查看
在Linux系統中,有三類主要的日誌子系統:
連線時間日誌: 由多個程式執行,把記錄寫入到/var/log/wtmp和/var/run/utmp,login等程式會更新wtmp和utmp檔,使系統管理員能夠跟蹤誰在何時登錄到系統。(utmp、wtmp日誌檔是多數Linux日誌子系統的關鍵,它保存了用戶登錄進入和退出的記錄。有關當前登錄使用者的資訊記錄在檔utmp中; 登錄進入和退出記錄在檔wtmp中; 資料交換、關機以及重啟的機器資訊也都記錄在wtmp檔中。所有的記錄都包含時間戳記。)
進程統計: 由系統內核執行,當一個進程終止時,為每個進程往進程統計檔(pacct或acct)中寫一個記錄。進程統計的目的是為系統中的基本服務提供命令使用統計。
錯誤日誌: 由syslogd(8)守護程式執行,各種系統守護進程、使用者程式和內核通過syslogd(3)守護程式向檔/var/log/messages報告值得注意的事件。另外有許多Unix程式創建日誌。像HTTP和FTP這樣提供網路服務的伺服器也保持詳細的日誌。
日誌目錄:/var/log(預設目錄)
1.查看進程日誌
cat /var/log/messages
2.查看服務日誌
cat /var/log/maillog
0x02 用戶查看
Linux不同的用戶,有不同的操作許可權,但是所有使用者都會在/etc/passwd /etc/shadow /etc/group /etc/group- 檔中記錄;
查看詳細
less /etc/passwd:查看是否有新增用戶
grep :0 /etc/passwd:查看是否有特權用戶(root許可權用戶)
ls -l /etc/passwd:查看passwd最後修改時間
awk -F: '$3==0 {print $1}' /etc/passwd:查看是否存在特權用戶
awk -F: 'length($2)==0 {print $1}' /etc/shadow:查看是否存在空口令用戶
注:linux設置空口令:passwd -d username
0x03 進程查看
1.普通進程查看
進程中我們一般使用ps來查看進程;man ps
ps -aux:查看進程
lsof -p pid:查看進程所打開的埠及文件
2.檢查隱藏進程
ps -ef | awk '{print }' | sort -n | uniq >1
ls /proc | sort -n |uniq >2
diff 1 2
注:以上3個步驟為檢查隱藏進程
0x04 其他檢查
1.檢查檔
find / -uid 0 -print:查找特權用戶檔
find / -size +10000k -print:查找大於10000k的文件
find / -name "…" -prin:查找用戶名為…的文件
find / -name core -exec ls -l {} \;:查找core檔,並列出詳細資訊
md5sum -b filename:查看文件的md5值
rpm -qf /bin/ls:檢查檔的完整性(還有其它/bin目錄下的檔)
2.檢查網路
ip link | grep PROMISC:正常網卡不應該存在promisc,如果存在可能有sniffer
lsof -i
netstat -nap:查看不正常埠
arp -a:查看arp記錄是否正常
3.計畫任務
crontab -u root -l:查看root用戶的計畫任務
cat /etc/crontab
ls -l /etc/cron.*:查看cron檔是變化的詳細
ls /var/spool/cron/
4.檢查後門
對於linux的後門檢查,網路上有一些公開的工具,但是在不使用這些工具的前提時,我們可以通過一些命令來獲取一些資訊。
首先就是檢測計畫任務,可以參考上面;
第二:查看ssh永久連結檔:vim $HOME/.ssh/authorized_keys
第三:lsmod:檢查內核模組
第四:chkconfig –list/systemctl list-units –type=service:檢查自啟
第五:服務後門/異常埠(是否存在shell反彈或監聽)
其它:
ls /etc/rc.d
ls /etc/rc3.d
文章來源:http://drops.wooyun.org/%E8%BF%90%E7%BB%B4%E5%AE%89%E5%85%A8/11106
圖片來源:https://pixabay.com/