- 用戶排查
- 歷史命令
- 網(wǎng)絡(luò)排查
- 進(jìn)程排查
- 文件排查
- 持久化排查
- 日志分析
通過系統(tǒng)運(yùn)行狀態(tài)、安全設(shè)備告警,主機(jī)異?,F(xiàn)象來發(fā)現(xiàn)可疑現(xiàn)象通常的可疑現(xiàn)象有:資源占用、異常登錄、異常文件、異常連接、異常進(jìn)程等。
用戶排查
如果發(fā)現(xiàn)異常用戶活動(dòng),例如嘗試多次登錄失敗、執(zhí)行不正常的命令等,應(yīng)該及時(shí)采取措施,包括禁止用戶登錄、修改用戶密碼等。
- 查看 uid 或 gid 為 0 的用戶(默認(rèn)系統(tǒng)只存在root一個(gè)特權(quán)賬戶)
grep :0 /etc/passwd
- 查看 passwd 文件的最后修改記錄
stat /etc/passwd
- 統(tǒng)計(jì)所有用戶的 shell 相關(guān)信息
cat /etc/passwd | awk -F: '{print $7}' | sort | uniq
- 重點(diǎn)檢查有登錄權(quán)限的用戶
cat /etc/passwd | grep bash
- 查看用戶登錄信息
last # 查看用戶最近登錄信息
lastb # 查看錯(cuò)誤的用戶登錄信息
lastlog # 查看所有用戶最后一次登錄信息
- 查看允許 sudo 的用戶
more /etc/sudoers | egrep -v "^#|^$"
- 繼續(xù)檢查 wheel 組包含的用戶,wheel組通常用于授權(quán)用戶擁有使用 sudo
grep wheel /etc/group
- 查看空口令的用戶
awk -F: 'length($2)==0 {print $1}' /etc/passwd
- 查看可以遠(yuǎn)程登錄的帳號(hào)信息
awk '/\$1|\$6/{print $1}' /etc/shadow
歷史命令
history 記錄位于用戶 home 目錄下的 .bash_history 文件中,可以直接 cat ~/.bash_history
查看歷史記錄。
網(wǎng)絡(luò)排查
檢查系統(tǒng)上正在監(jiān)聽的網(wǎng)絡(luò)連接和端口情況,以及用戶的網(wǎng)絡(luò)活動(dòng),發(fā)現(xiàn)存在異常的網(wǎng)絡(luò)行為。
- 查看本機(jī)開放的端口信息
netstat -antulp 或 ss -antulp 或 lsof -i
- 查看當(dāng)前已建立的 TCP 連接
netstat -antulp | grep ESTABLISHED
- 查看反彈連接
netstat -antulp | grep bash
- 查看某一端口的具體應(yīng)用
lsof -i:22
- 查看路由表:
route -n
- 查看 DNS 配置信息:
cat /etc/resolv.conf
進(jìn)程排查
Linux 默認(rèn)的進(jìn)程權(quán)限分離,每個(gè)進(jìn)程有不同的權(quán)限,所以從進(jìn)程用戶名上能給我們很多信息。比如 webshell 執(zhí)行反彈連接,會(huì)顯示 apache 的用戶權(quán)限。
- 查看資源占用
top
- 查看所有進(jìn)程
ps -ef
- 根據(jù)進(jìn)程 PID 查看進(jìn)程詳細(xì)信息
lsof -p PID
- 查看進(jìn)程的啟動(dòng)時(shí)間
ps -p PID -o lstart
- 對(duì)于一些異常的文件可以用 strings 顯示里面的可讀字符串進(jìn)行初步判斷
strings /usr/sbin/sshd | more
- 查看進(jìn)程可執(zhí)行文件
ps -eo pid,cmd
- 查看進(jìn)程樹
pstree
文件排查
- 顯示文件的詳細(xì)信息
stat filename
- 查找根目錄下,修改時(shí)間小于1天的文件
find / -mtime -1
- 結(jié)合文件名進(jìn)一步查找
find /var/www/html/ -mtime -1 -name *.php
- 查看系統(tǒng)命令是否存在異常,如大小、修改時(shí)間、創(chuàng)建時(shí)間等
ls -altS /usr/sbin | head -30
持久化排查
Linux的持久化方式通常有以下這幾種方式:定時(shí)任務(wù)、開機(jī)服務(wù)、開機(jī)啟動(dòng)、驅(qū)動(dòng)加載。
定時(shí)任務(wù)排查
列出當(dāng)前用戶的定時(shí)任務(wù)列表:
crontab -l
定時(shí)任務(wù)還應(yīng)檢查以下文件和文件夾:
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
開機(jī)啟動(dòng)項(xiàng)排查
查看系統(tǒng)服務(wù)
- 查看所有系統(tǒng)服務(wù)的狀態(tài)和啟動(dòng)方式
systemctl list-unit-files --type=service
- 查看當(dāng)前正在運(yùn)行的服務(wù)
systemctl list-units --type=service --all
Linux 開機(jī)有多種運(yùn)行級(jí)別,不同級(jí)別下加載的啟動(dòng)文件也不相同
查看當(dāng)前啟動(dòng)級(jí)別
runlevel
不同啟動(dòng)級(jí)別會(huì)加載不同啟動(dòng)文件,需要關(guān)注檢查啟動(dòng)腳本目錄
/etc/rc.d/*
/etc/rc.local
/etc/rc[0-6].d
/etc/inittab
日志分析
Linux 使用 rsyslog 管理日志,包括系統(tǒng)登錄日志、服務(wù)訪問日志、網(wǎng)站日志、數(shù)據(jù)庫日志等。
日志默認(rèn)存放位置 /var/log/
目錄,查看日志配置情況 vim /etc/rsyslog.conf
。
通常關(guān)注的系統(tǒng)日志有:
-
/var/log/messages:內(nèi)核及公共消息日志,會(huì)記錄linux系統(tǒng)的絕大多數(shù)重要信息
-
/var/log/cron:系統(tǒng)定時(shí)任務(wù)相關(guān)的日志
-
/var/log/dmesg:系統(tǒng)引導(dǎo)日志,系統(tǒng)在開機(jī)時(shí)內(nèi)核自檢的信息,dmesg命令直接查看
-
/var/log/boot.log:記錄系統(tǒng)在引導(dǎo)過程中發(fā)生的,包含系統(tǒng)啟動(dòng)時(shí)的日志,包括自啟動(dòng)的服務(wù)
-
/var/log/secure:用戶驗(yàn)證相關(guān)的安全性事件,如SSH登錄,su切換用戶,sudo授權(quán)等
-
/var/run/utmp:正在登錄系統(tǒng)的用戶信息,默認(rèn)由who和w記錄當(dāng)前登錄用戶的信息
-
/var/log/wtmp:當(dāng)前登錄用戶詳細(xì)信息,二進(jìn)制文件,使用last命令來查看
-
/var/log/btmp:記錄錯(cuò)誤登錄日志,二進(jìn)制文件,使用lastb命令查看
-
/var/log/lastlog:用戶最后一次登錄時(shí)間的日志,二進(jìn)制文件,使用lastlog命令查看
-
/var/log/maillog:郵件系統(tǒng)日志
應(yīng)用日志:
Nginx日志:
- /var/log/nginx/access.log
Apache日志:
-
/var/log/httpd/access.log
-
/var/log/apache/ access.log
-
/var/log/apache2/ access.log
-
/var/log/httpd-access.log
Mysql日志:
- /var/log/mysql/
Linux 可以使用 sed、awk、grep 文件三劍客從日志中快速提取信息。
- 定位有多少IP在爆破主機(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
- 爆破用戶名字典:
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1 \n";}'|uniq -c|sort -nr
- 登錄成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登錄成功的日期、用戶名、IP:文章來源:http://www.zghlxwxcb.cn/news/detail-860115.html
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
若有錯(cuò)誤,歡迎指正!o( ̄▽ ̄)ブ文章來源地址http://www.zghlxwxcb.cn/news/detail-860115.html
到了這里,關(guān)于Linux應(yīng)急響應(yīng)小結(jié)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!