Linux日志安全分析技巧
0x00 前言
我正在整理一個(gè)項(xiàng)目,收集和匯總了一些應(yīng)急響應(yīng)案例(不斷更新中)。
GitHub 地址:https://github.com/Bypass007/Emergency-Response-Notes本文主要介紹Linux日志分析的技巧,更多詳細(xì)信息請(qǐng)?jiān)L問(wèn)Github地址,歡迎Star。
0x01 日志簡(jiǎn)介
Linux系統(tǒng)擁有非常靈活和強(qiáng)大的日志功能,可以保存幾乎所有的操作記錄,并可以從中檢索出我們需要的信息。本文簡(jiǎn)介一下Linux系統(tǒng)日志及日志分析技巧。
日志默認(rèn)存放位置:/var/log/
查看日志配置情況:more /etc/rsyslog.conf
| /var/log/cron | 記錄了系統(tǒng)定時(shí)任務(wù)相關(guān)的日志 |
| /var/log/cups | 記錄打印信息的日志 |
| /var/log/dmesg | 記錄了系統(tǒng)在開(kāi)機(jī)時(shí)內(nèi)核自檢的信息,也可以使用dmesg命令直接查看內(nèi)核自檢信息 |
| /var/log/mailog | 記錄郵件信息 |
| /var/log/message | 記錄系統(tǒng)重要信息的日志。這個(gè)日志文件中會(huì)記錄Linux系統(tǒng)的絕大多數(shù)重要信息,如果系統(tǒng)出現(xiàn)問(wèn)題時(shí),首先要檢查的就應(yīng)該是這個(gè)日志文件 |
| /var/log/btmp | 記錄錯(cuò)誤登錄日志,這個(gè)文件是二進(jìn)制文件,不能直接vi查看,而要使用lastb命令查看 |
| /var/log/lastlog | 記錄系統(tǒng)中所有用戶(hù)最后一次登錄時(shí)間的日志,這個(gè)文件是二進(jìn)制文件,不能直接vi,而要使用lastlog命令查看 |
| /var/log/wtmp | 永久記錄所有用戶(hù)的登錄、注銷(xiāo)信息,同時(shí)記錄系統(tǒng)的啟動(dòng)、重啟、關(guān)機(jī)事件。同樣這個(gè)文件也是一個(gè)二進(jìn)制文件,不能直接vi,而需要使用last命令來(lái)查看 |
| /var/log/utmp | 記錄當(dāng)前已經(jīng)登錄的用戶(hù)信息,這個(gè)文件會(huì)隨著用戶(hù)的登錄和注銷(xiāo)不斷變化,只記錄當(dāng)前登錄用戶(hù)的信息。同樣這個(gè)文件不能直接vi,而要使用w,who,users等命令來(lái)查詢(xún) |
| /var/log/secure | 記錄驗(yàn)證和授權(quán)方面的信息,只要涉及賬號(hào)和密碼的程序都會(huì)記錄,比如SSH登錄,su切換用戶(hù),sudo授權(quán),甚至添加用戶(hù)和修改用戶(hù)密碼都會(huì)記錄在這個(gè)日志文件中 |
比較重要的幾個(gè)日志:
登錄失敗記錄:/var/log/btmp //lastb
最后一次登錄:/var/log/lastlog //lastlog
登錄成功記錄: /var/log/wtmp //last
登錄日志記錄:/var/log/secure
目前登錄用戶(hù)信息:/var/run/utmp //w、who、users
歷史命令記錄:history 僅清理當(dāng)前用戶(hù):history -c
0x02 日志分析技巧
A、常用的shell命令
Linux下常用的shell命令如:find、grep 、egrep、awk、sed
小技巧:
1、grep顯示前后幾行信息:
?標(biāo)準(zhǔn)unix/linux下的grep通過(guò)下面參數(shù)控制上下文: ?grep -C 5 foo file 顯示file文件里匹配foo字串那行以及上下5行 ?grep -B 5 foo file 顯示foo及前5行 ?grep -A 5 foo file 顯示foo及后5行 ?查看grep版本號(hào)的方法是 ?grep -V2、grep 查找含有某字符串的所有文件
grep -rn "hello,world!" * : 表示當(dāng)前目錄所有文件,也可以是某個(gè)文件名 -r 是遞歸查找 -n 是顯示行號(hào) -R 查找所有文件包含子目錄 -i 忽略大小寫(xiě)3、如何顯示一個(gè)文件的某幾行:
cat input_file | tail -n +1000 | head -n 2000 #從第1000行開(kāi)始,顯示2000行。即顯示1000~2999行4、find /etc -name init
//在目錄/etc中查找文件init5、只是顯示/etc/passwd的賬戶(hù)
`cat /etc/passwd |awk -F ':' '{print $1}'` //awk -F指定域分隔符為':',將記錄按指定的域分隔符劃分域,填充域,?$0則表示所有域,$1表示第一個(gè)域,?$n表示第n個(gè)域。6、sed -i '153,$d' .bash_history
刪除歷史操作記錄,只保留前153行B、日志分析技巧
A、/var/log/secure
1、定位有多少I(mǎi)P在爆破主機(jī)的root帳號(hào): 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爆破用戶(hù)名字典是什么?grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr2、登錄成功的IP有哪些: grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more登錄成功的日期、用戶(hù)名、IP: grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'3、增加一個(gè)用戶(hù)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/secure4、刪除用戶(hù)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/secure5、su切換用戶(hù): Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)sudo授權(quán)執(zhí)行: sudo -l Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now2、/var/log/yum.log
軟件安裝升級(jí)卸載日志:
yum install gcc[root@bogon ~]# more /var/log/yum.logJul 10 00:18:23 Updated: cpp-4.8.5-28.el7_5.1.x86_64 Jul 10 00:18:24 Updated: libgcc-4.8.5-28.el7_5.1.x86_64 Jul 10 00:18:24 Updated: libgomp-4.8.5-28.el7_5.1.x86_64 Jul 10 00:18:28 Updated: gcc-4.8.5-28.el7_5.1.x86_64 Jul 10 00:18:28 Updated: libgcc-4.8.5-28.el7_5.1.i686總結(jié)
以上是生活随笔為你收集整理的Linux日志安全分析技巧的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 利好蔚来ES7 特斯拉Model Y长续
- 下一篇: 修改Linux主机名和IP