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命令使用方法類似:
#!bash
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 ]
參數說明:
查看系統登錄情況
last:不帶任何參數,顯示系統的登錄以及重啟情況

只針對關機/重啟
使用-x
參數可以針對不同的情況進行查看

只針對登錄
使用-d
參數,并且參數后不用跟任何選項

顯示錯誤的登錄信息
lastb
查看當前登錄情況
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
(默認目錄)
查看進程日志
cat /var/log/messages

查看服務日志
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 進程查看
普通進程查看
進程中我們一般使用ps來查看進程;man ps
- ps -aux:查看進程
- lsof -p pid:查看進程所打開的端口及文件
檢查隱藏進程
- ps -ef | awk '{print }' | sort -n | uniq >1
- ls /proc | sort -n |uniq >2
- diff 1 2
注:以上3個步驟為檢查隱藏進程
0x04 其他檢查
檢查文件
- 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目錄下的文件)
檢查網絡
- ip link | grep PROMISC:正常網卡不應該存在promisc,如果存在可能有sniffer
- lsof -i
- netstat -nap:查看不正常端口
- arp -a:查看arp記錄是否正常
計劃任務
- crontab -u root -l:查看root用戶的計劃任務
- cat /etc/crontab
- ls -l /etc/cron.*:查看cron文件是變化的詳細
- ls /var/spool/cron/
檢查后門
對于linux的后門檢查,網絡上有一些公開的工具,但是在不使用這些工具的前提時,我們可以通過一些命令來獲取一些信息。
首先就是檢測計劃任務,可以參考上面;
第二:查看ssh永久鏈接文件:vim $HOME/.ssh/authorized_keys
第三:lsmod:檢查內核模塊
第四:chkconfig --list/systemctl list-units --type=service:檢查自啟
第五:服務后門/異常端口(是否存在shell反彈或監聽)
其它:
ls /etc/rc.d
ls /etc/rc3.d
亚洲欧美在线