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:不帶任何參數,顯示系統的登錄以及重啟情況

2015121808143686736190

2.只針對關機/重啟

使用-x參數可以針對不同的情況進行查看

2015121808143878216235

3.只針對登錄

使用-d參數,並且參數後不用跟任何選項

2015121808144033839326

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

2015121808144270353424

2.查看服務日誌

cat /var/log/maillog

2015121808144463129520

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

2015121808144542521620

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/

您可能也會喜歡…

發表迴響