主要是階段性的總結一些Linux下的應急響應常用命令及技巧
文章目錄
登錄和終端信息
查看登錄用戶信息
last
用於顯示系統第一次開機以來登錄用戶信息
使用權限:所有使用者。
最後一列顯示主機IP地址
last -n 5 -a -i
查看登錄失敗信息
會讀取位於/var/log目錄下,名稱爲btmp的文件,並把該文件內容記錄的登入失敗的用戶名單,全部顯示出來
lastb
查看用戶上一次的登錄情況
lastlog
查看當前登錄系統的情況
who
w
顯示來源who -l -H
查看登錄成功信息
grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr
查看登錄失敗信息
``
強制用戶下線
pkill -kill -t pts/1 (pts/1爲異常tty終端)
終端歷史命令
·history
.bash_history
用戶信息
查看是否有新增用戶
less /etc/passwd
查看是否有特權用戶
grep :0 /etc/passwd
查看/etc/passwd最後修改時間
ll -l /etc/passwd
查看特權用戶
awk -F: '$3==0 {print $5}' /etc/passwd
查看是否存在空口令用戶
awk -F: 'length($2)==0 {print $1}' /etc/shadow
進程信息
查看進程
ps aux
檢查可疑進程
lsof命令
用於查看你進程開打的文件,打開文件的進程,進程打開的端口(TCP、UDP)。找回/恢復刪除的文件。是十分方便的系統監視工具,因爲lsof命令需要訪問核心內存和各種文件,所以需要root用戶執行。
原理
在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。所以如傳輸控制協議 (TCP) 和用戶數據報協議 (UDP) 套接字等,系統在後臺都爲該應用程序分配了一個文件描述符,無論這個文件的本質如何,該文件描述符爲應用程序與基礎操作系統之間的交互提供了通用接口。因 爲應用程序打開文件的描述符列表提供了大量關於這個應用程序本身的信息,因此通過lsof工具能夠查看這個列表對系統監測以及排錯將是很有幫助的。
lsof -p <pid>
實例
查看root啓動了什麼進程 lsof -u root
8080端口是哪個進程打開的lsof -i:8080
進程信息
ps aux
ps -ef
查看進程cpu佔比
top
檢查隱藏進程
ps -ef|awk ‘{print }’|sort -n|uniq >1
ls /porc |sort -n|uniq >2
diff 1 2
文件信息
md5校驗完整性
md5sum <文件名>
查找suid和sgid文件
具有setUID(-perm -4000)或者具有setGID(-perm -2000)權限的命令
find / -uid 0 -perm -4000 -o -perm -2000 -print
檢查文件的完整性(還有其它/bin目錄下的文件)
rpm -qf /bin/ls
可疑文件篩查
根目錄下所有.jsp後綴文件
find / -name *.jsp
查找24h內被修改的jsp文件
find ./ -mtime 0 -name "*.jsp"
查找7天內被修改的jsp文件
find ./ -mtime -7 -name "*.jsp"
最近3天創建的文件
find -type f -ctime -3
最近3天修改過的文件
find -type f -mtime -3
需要重點關注一下 /tmp、/var/tmp、/dev/shm目錄,這些目錄下所有用戶具備可讀可寫可執行權限.
在線查毒網站
https://www.virustotal.com
http://www.virscan.org
網絡信息
netstat
實際的玩法很多,這裏只能舉幾個例子
netstat -anp
netstat -antlp | grep ESTABLISHED
查看已建立的網絡連接賬中是否存在異常
netstat -antlp | grep LISTEN
查看已監聽端口中是否存在異常
ip link | grep PROMISC
正常網卡不該在promisc模式,假如有輸出,說明可能存在sniffer
arp –a
查看arp記錄是否正常
iptraf
(工具) 觀察UDP包是否大量發包,如果是,可能被安裝後門
後門及計劃任務
Linux多以寫到計劃任務的形式
crontab -l
cat /etc/crontab
ls /etc/cron.*
ls /var/spool/cron/
注:一般用戶級別的crontab,位於/var/spool/cron下;系統級別的crontab,位於/etc/crontab;另外還有:/etc/cron.hourly、 /etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly、/etc/anacrontab 等週期性執行腳本的目錄。
cat /etc/rc.d/rc.local
ls /etc/rc.d
ls /etc/rc3.d
cat /etc/inittab
vim $HOME/.ssh/authorized_keys 查看ssh鏈接文件
chkconfig --list 檢查自啓服務
webshell和rookit
幾個工具
webshell檢測:shellpub http://www.shellpub.com/
rookit檢測:rkhunter http://rkhunter.sourceforge.net/
rookit檢測:chkrootkit http://www.chkrootkit.org/
日誌分析
cat /var/log/secure
cat /var/log/messages
cat /var/log/maillog
linux日誌默認保存在/var/log目錄下。
主要日誌文件介紹:
/var/log/messages:內核及公共消息日誌
/var/log/cron:計劃任務日誌
/var/log/dmesg:系統引導日誌
/var/log/maillog:郵件系統日誌
/var/log/lastlog:用戶登錄日誌
/var/log/boot.log:記錄系統在引導過程中發生的時間
/var/log/secure:用戶驗證相關的安全性事件
/var/log/wtmp:當前登錄用戶詳細信息
/var/log/btmp:記錄失敗的的記錄
/var/run/utmp:用戶登錄、註銷及系統開、關等事件;
日誌格式
記錄時間:表示消息發出的日期和時間
主機名:表示生成消息的服務器的名字
生成消息的子系統的名字:來自內核則標識kernel,來自進程標識進程,方括號中表示進程的PID
消息:剩下的部分表示消息的內容
中間件日誌
如nginx、apache、tomcat、jboss、weblogic、websphere的默認日誌位置,具體視版本及運維而定,不同版本出入可能比較大,例如一般情況下apache默認日誌路徑/var/log/httpd/
misc
檢查載入模塊
檢查已載入的模塊中是否異常模塊
lsmod
如果顯示有可疑模塊使用modinfo查看詳細模塊信息
modinfo <模塊名>
確認是異常模塊可以嘗試卸載
rmmod <模塊名>
分析流量
用tcpdump進行流量分析,這裏不做展開了
linux應急響應集成工具
GScan
地址
https://github.com/grayddq/GScan
簡介
爲安全應急響應人員對Linux主機排查時提供便利,實現主機側Checklist的自動全面化檢測,根據檢測結果自動數據聚合,進行黑客攻擊路徑溯源。