入侵排查思路 (1)- 日誌分析
日誌分析預設日誌路徑: /var/log
檢視日誌配置情況: more /etc/rsyslog.conf
重要日誌:
登入失敗記錄: /var/log/btmp
最後一次登入: /var/log/lastlog
登入成功記錄: /var/log/wtmp
登入日誌記錄: /var/log/secure
日誌分析常用命令:
grep -rn "
hello,world!
"cat input_file | tail -n + 1000 | head -n 2000(顯示1000-2999行)
find /etc -name init #在目錄/etc中查詢檔案init
sed -i '
153,$d
'.bash_history #刪除歷史操作記錄,只保留前153行
grep -c 5
foo file #顯示file檔案裡匹配foo那行以及上下5行
定位有多少ip在爆破主機的root賬號
grep
"failed password for root
" /var/log/secure | awk '
'| sort | uniq -c | sort -nr |more
爆破使用者名稱字典
grep
"failed password
" /var/log/secure|perl -e '
while($_=<>)'
|uniq -c | sort --nr
登入成功ip
grep
"accepted
" /var/log/secure | awk '
' | sort | uniq -c | sort -nr |more
登入成功的日期、使用者名稱、ip:
grep
"accepted
" /var/log/secure | awk '
'軟體安裝公升級解除安裝日誌:
more /var/log/yum.log
入侵排查思路(2)- 賬號安全
使用者資訊檔案: /etc/passwd入侵排查:影子檔案: /etc/shadow
who #檢視當前登入使用者(tty本地登入,pts遠端登入)
w #檢視系統資訊,想知道某一時刻使用者的行為
查詢特權使用者(uid為0): awk -f: '$3==0' /etc/passwd
查詢可以遠端登入的賬號資訊: awk '/\$1|\$6/' /etc/passwd
禁用或刪除多餘可疑的賬號:
usermod -l user #禁用賬號,賬號無法登入
userdel -r user #將刪除user使用者,並且將/home目錄下的user目錄一併刪除
入侵排查思路(3)- 歷史命令
root的歷史命令: history其他賬號的歷史命令: /home各賬號目錄下的 .bash_history
歷史操作命令的清除: history -c
入侵排查:
進入使用者目錄:
cat .bash_history >> history.txt
入侵排查思路(4)- 埠&程序&開機啟動項
檢查異常埠:使用netstat網路連線命令,分析可疑埠、ip、pid
netstat -antlp|more
檢查異常程序:
使用ps命令,分析程序
ps aux |grep pid
使用 netset 和 ps 等命令時,可以靈活配合 grep命令獲取資訊
netstat -anp | grep -i listen
lsof -i:port #程序和埠對應關係
ps -aux檢視程序資訊(ps -ef 對於**shell,更便於發現)
檢查開機啟動項:
系統預設執行級別: vi /etc/inittab
開機啟動配置檔案: /etc/rc.local
入侵排查:
啟動項檔案:
more /etc/rc.local /etc/rc.d/rc[0~6
].dls -l /etc/rc.d/rc3.d/定時任務
crontab -l 列出某個使用者cron服務的詳細內容
crontab -r 刪除某個使用者 cront任務(刪除所有的計畫任務)
crontab -e 使用編輯器編輯當前的crontab檔案
重點關注以下目錄是否存在惡意指令碼:
/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/*
more /etc/cron.daily/* #檢視目錄下所有檔案
系統服務
服務自啟動:
修改 /etc/re.d/rc.local 檔案,加入 /etc/init.d/httpd start
查詢rpm包安裝的服務:
chkconfig --list #查詢服務自啟動狀態,可以看到所有的rpm包安裝的服務
ps aux | grep crond #檢視當前服務
系統在3和5級別下的啟動項
中文環境
chkconfig --list | grep "3:啟動\|5:啟動"
英文環境
chkconfig --list | grep "3:on\|5:on"
查詢原始碼包安裝的服務:
檢視服務安裝位置,一般在 /user/local/
搜尋 /etc/rc.d/init.d/ 檢視是否存在
檢查異常檔案
檢視敏感目錄,如 /tmp目錄下的檔案,同時注意隱藏資料夾,以「..」為名稱的資料夾具有隱藏屬性
得到發現webshell、遠控木馬的建立時間,找出同一時間建立的檔案
find /opt -iname "*" -atime 1 -type f #找出 /opt 下一天前訪問過的檔案
針對可疑檔案可以使用 stat進行建立修改時間
LINUX 安全運維 (一)
linux 安全非常重要!曲突徙薪!這個成語的意思是 一人家的廚房堆著大量柴禾,某人指出這樣危險,很容易著火,建議改善 彎曲 煙道,移走柴禾.但主人不聽.一日果真著火,四鄰趕來救援,主人房屋被焚,損失慘重,準備了豐盛食品招待四鄰,唯獨沒有請那個提建議的人.平時做好防禦工作,比出故障了要強吧!linu...
Linux安全運維命令
黑客再次擊中網際網路心臟 linux太符合rfc5961標準 所以出現linux tcp漏洞 的內容引發了業界對於linux安全性的思考,本文將linux安全運維經常用到的幾個命令介紹給大家。linux和最初玩的windows伺服器不一樣,linux下,除了管理面板搞定的東西,其他幾乎全部都是命令列...
Linux系統運維
linux系統運維 本書作者劉遄 liu chu n 從事於linux運維技術行業,高中時期便因興趣的驅使而較早地接觸到了linux系統並開始學習運維技術,並且在2012年獲得紅帽工程師rhce 6版本證書,在2015年初又分別獲得紅帽工程師rhce 7版本證書與紅帽架構師認證rhca頂級證書。儘管...