Linux應急響應-日誌分析
阿新 • • 發佈:2021-12-17
迷茫的人生,需要不斷努力,才能看清遠方模糊的志向!Linux-應急響應-日誌分析 日誌預設存放位置:/var/log/ 檢視日誌配置情況:more /etc/rsyslog.conf 日誌檔案 說明 /var/log/cron 記錄了系統定時任務相關的日誌 /var/log/cups 記錄列印資訊的日誌 /var/log/dmesg 記錄了系統在開機時核心自檢的資訊,也可以使用dmesg命令直接檢視核心自檢資訊 /var/log/mailog 記錄郵件資訊 /var/log/message 記錄系統重要資訊的日誌。這個日誌檔案中會記錄Linux系統的絕大多數重要資訊,如果系統出現問題時,首先要檢查的就應該是這個日誌檔案 /var/log/btmp 記錄錯誤登入日誌,這個檔案是二進位制檔案,不能直接vi檢視,而要使用lastb命令檢視 /var/log/lastlog 記錄系統中所有使用者最後一次登入時間的日誌,這個檔案是二進位制檔案,不能直接vi,而要使用lastlog命令檢視 /var/log/wtmp 永久記錄所有使用者的登入、登出資訊,同時記錄系統的啟動、重啟、關機事件。同樣這個檔案也是一個二進位制檔案,不能直接vi,而需要使用last命令來檢視 /var/log/utmp 記錄當前已經登入的使用者資訊,這個檔案會隨著使用者的登入和登出不斷變化,只記錄當前登入使用者的資訊。同樣這個檔案不能直接vi,而要使用w,who,users等命令來查詢 /var/log/secure 記錄驗證和授權方面的資訊,只要涉及賬號和密碼的程式都會記錄,比如SSH登入,su切換使用者,sudo授權,甚至新增使用者和修改使用者密碼都會記錄在這個日誌檔案中 比較重要的幾個日誌: 登入失敗記錄:/var/log/btmp //lastb 最後一次登入:/var/log/lastlog //lastlog 登入成功記錄: /var/log/wtmp //last 登入日誌記錄:/var/log/secure 目前登入使用者資訊:/var/run/utmp //w、who、users 歷史命令記錄:history 僅清理當前使用者: history -c Linux下常用的shell命令如:find、grep 、egrep、awk、sed 小技巧: 1、grep顯示前後幾行資訊: 標準unix/linux下的grep通過下面引數控制上下文: grep -C 5 foo file 顯示file檔案裡匹配foo字串那行以及上下5行 grep -B 5 foo file 顯示foo及前5行 grep -A 5 foo file 顯示foo及後5行 檢視grep版本號的方法是 grep -V 2、grep 查詢含有某字串的所有檔案 grep -rn "hello,world!" * : 表示當前目錄所有檔案,也可以是某個檔名 -r 是遞迴查詢 -n 是顯示行號 -R 查詢所有檔案包含子目錄 -i 忽略大小寫 3、如何顯示一個檔案的某幾行: cat input_file | tail -n +1000 | head -n 2000 #從第1000行開始,顯示2000行。即顯示1000~2999行 4、find /etc -name init //在目錄/etc中查詢檔案init 5、只是顯示/etc/passwd的賬戶 `cat /etc/passwd |awk -F ':' '{print $1}'` //awk -F指定域分隔符為':',將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第一個域,$n表示第n個域。 日誌分析技巧 A、/var/log/secure 1、定位有多少IP在爆破主機的root帳號: grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 定位有哪些IP在爆破: grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c 爆破使用者名稱字典是什麼? grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr 2、登入成功的IP有哪些: grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more 登入成功的日期、使用者名稱、IP: grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}' 3、增加一個使用者kali日誌: Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001 Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali , shell=/bin/bash Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali #grep "useradd" /var/log/secure 4、刪除使用者kali日誌: Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali' Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali' # grep "userdel" /var/log/secure 5、su切換使用者: Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0) sudo授權執行: sudo -l Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now 軟體安裝升級日誌: more /var/log/yum.log 推薦:https://bypass007.github.io/Emergency-Response-Notes/LogAnalysis/%E7%AC%AC2%E7%AF%87%EF%BC%9ALinux%E6%97%A5%E5%BF%97%E5%88%86%E6%9E%90.html