應(yīng)急響應(yīng)總結(jié)與心得分享
作者:巧克力威化餅 編輯:白帽子社區(qū)運(yùn)營(yíng)團(tuán)隊(duì)
"白帽子社區(qū)在線CTF靶場(chǎng)BMZCTF,歡迎各位在這里練習(xí)、學(xué)習(xí),BMZCTF全身心為網(wǎng)絡(luò)安全賽手提供優(yōu)質(zhì)學(xué)習(xí)環(huán)境,鏈接(http://www.bmzclub.cn/)
"
點(diǎn)擊鏈接參與白帽子社區(qū)贈(zèng)書(shū)活動(dòng)(5月29日上午12:00結(jié)束):https://mp.weixin.qq.com/s/D5vc4Mxn3NBF-_Uq56YlyA


那么問(wèn)題又來(lái)了,應(yīng)急前我們應(yīng)該干嘛呢?應(yīng)急時(shí)我們應(yīng)該干嘛呢?應(yīng)急后我們應(yīng)該干嘛呢?
首先,我們應(yīng)該有一個(gè)好的整體思路。

信息收集:收集到發(fā)生安全事件的資產(chǎn)設(shè)備,整理時(shí)間線,是否存在惡意文件樣本,是什么操作系統(tǒng)等。
判斷事件類型:判斷是否為安全事件,是web入侵,還是系統(tǒng)入侵,還是網(wǎng)絡(luò)攻擊。
深入排查:通過(guò)分析日志、啟動(dòng)項(xiàng)、系統(tǒng)用戶、進(jìn)程、惡意文件等找尋入侵來(lái)源。
清除處置:殺掉惡意進(jìn)程、文件,配合運(yùn)維人員打好補(bǔ)丁
輸出文檔:分析整體流程,產(chǎn)出報(bào)告。


https://github.com/mrknow001/Mind_Map/blob/main/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94/%E5%BA%94%E6%80%A5%E5%93%8D%E5%BA%94%E6%80%BB%E7%BB%93%E6%80%9D%E7%BB%B4%E5%AF%BC%E5%9B%BE.png
在了解事件的基礎(chǔ)情況后,使用一些好的排查工具能讓我們快速定位到突破口,節(jié)省大量的時(shí)間。正所謂工欲善其事,必先利其器,下述推薦一些常用的排查工具。
網(wǎng)絡(luò)分析排查工具
當(dāng)我們需要查看傳輸?shù)臄?shù)據(jù)包時(shí),可能會(huì)經(jīng)常用到下述這些網(wǎng)絡(luò)排查工具
Wireshark
一款常用的網(wǎng)絡(luò)分析排查工具,可用來(lái)分析網(wǎng)絡(luò)攻擊等事件。如下圖,wireshark看出來(lái)主機(jī)正在遭受arp攻擊。


Tcpview
微軟內(nèi)置工具集,網(wǎng)絡(luò)連接查看工具,體積小,效果比較直觀。
Tcpdump
如果系統(tǒng)是linux的話,推薦使用tcpdump,比較輕量,也更方便。
常用命令:
https://www.jianshu.com/p/d9162722f189
進(jìn)程分析排查工具
有時(shí)候有些進(jìn)程無(wú)法直接通過(guò)簡(jiǎn)單的命令查詢到,這個(gè)時(shí)候我們可以借助下述工具對(duì)惡意進(jìn)程進(jìn)行分析和排查。
PChunter

ProcessHacker

啟動(dòng)項(xiàng)分析工具
一般是為了方便定位病毒啟動(dòng)項(xiàng),常用的工具為AutoRuns(win上使用)。
AutoRuns

其它類型的工具
像有些特定的病毒,需要專殺工具去查殺和修復(fù)正常文件;再或者我們能Everything工具搜索關(guān)鍵字等;再或者用D盾或者河馬查殺后門(mén)等。

綜合查詢工具
按照常規(guī)查詢方向一個(gè)一個(gè)排查可能需要大量的時(shí)間,這個(gè)時(shí)候有個(gè)自動(dòng)化腳本就顯得尤為重要了,這里推薦兩個(gè)好的的綜合查詢工具。
GScan
這款工具Checklist比較全面,檢測(cè)速度相對(duì)來(lái)說(shuō)也比較快。


dfirtriage
一款用于基于Windows的事件響應(yīng)的數(shù)字取證工具,該工具將在執(zhí)行時(shí)自動(dòng)運(yùn)行各種命令。所獲取的數(shù)據(jù)將駐留在執(zhí)行目錄的根目錄中。DFIRTriage可以從USB驅(qū)動(dòng)器運(yùn)行,也可以在目標(biāo)上的遠(yuǎn)程外殼中執(zhí)行。僅支持Windows。

工具集分享
網(wǎng)上有一些大佬將資源整合了,這里附上下載鏈接地址,請(qǐng)確保安全情況下使用。
tips:請(qǐng)確保安全情況下使用
https://github.com/theLSA/hack-er-toolshttps://www.52pojie.cn/thread-1315923-1-1.html

在某些情況下,我們需要手動(dòng)分析和排查,這個(gè)時(shí)候就需要掌握一些應(yīng)急的命令和技巧,下述分別以linux和windows來(lái)闡述。
Windows
排查系統(tǒng)賬號(hào)
查看服務(wù)器是否新增用戶,是否存在弱口令,是否開(kāi)了redis、遠(yuǎn)程桌面、ssh是否開(kāi)啟等。
測(cè)試方法:
可以通過(guò)咨詢客戶,或者通過(guò)命令行查詢,再或者通過(guò)簡(jiǎn)單的掃描得到
查看服務(wù)器是否存在可疑賬號(hào)、隱藏賬戶、新增賬號(hào)
Win+R -> lusrmgr.msc或通過(guò)注冊(cè)表查看(記得賦予對(duì)SAM鍵的權(quán)限)
Win+R -> regedit.exeHKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names
如下圖可以看出目標(biāo)服務(wù)器被添加了隱藏賬戶test$


日志分析與排查
系統(tǒng)日志分析
Win+R>eventvwr.msc
導(dǎo)出Windows的安全日志,利用LogParser進(jìn)行分析,或者通過(guò)手動(dòng)分析。
Windows常見(jiàn)的日志事件ID附:Vista/Win7/Win8/Win10/Server2008/Server2012及之后的版本說(shuō)明1102 清理審計(jì)日志4624 賬號(hào)成功登錄4625 賬號(hào)登錄失敗4768 Kerberos身份驗(yàn)證(TGT請(qǐng)求)4769 Kerberos服務(wù)票證請(qǐng)求4776 NTLM身份驗(yàn)證4672 授予特殊權(quán)限4720 創(chuàng)建用戶4726 刪除用戶4728 將成員添加到啟用安全的全局組中4729 將成員從安全的全局組中移除4732 將成員添加到啟用安全的本地組中4733 將成員從啟用安全的本地組中移除4756 將成員添加到啟用安全的通用組中4757 將成員從啟用安全的通用組中移除4719 系統(tǒng)審計(jì)策略修改
LogParser常用命令https://www.jianshu.com/p/0f3ec2fb57a4
例:查看事件258的記錄

Web日志分析
先找到中間件的web日志,打包到本地進(jìn)行分析
檢查異常進(jìn)程、端口
攻擊者如果入侵主機(jī)后一般會(huì)上傳惡意文件,這個(gè)時(shí)候一般會(huì)有外聯(lián)情況,所以我們需要查看主機(jī)是否存在異常進(jìn)程、端口
netstat -anotasklist | find"PID"

如果找尋到惡意進(jìn)程,可以使用以下命令獲取系統(tǒng)進(jìn)程詳細(xì)信息
簡(jiǎn)單使用:
cmd >wmic process復(fù)雜一點(diǎn):
:1.txtcaption:進(jìn)程名commandline:進(jìn)程名、進(jìn)程執(zhí)行參數(shù)、程序執(zhí)行路徑creationDate:進(jìn)程啟動(dòng)時(shí)間(格式為:年月日時(shí)分秒)executablepath:程序執(zhí)行路徑handle:進(jìn)程pidhandleCount:該進(jìn)程的父pid

像有些比較難找出的惡意進(jìn)程,可以嘗試用上述工具集里的工具進(jìn)行針對(duì)性的排查。
檢查系統(tǒng)相關(guān)信息
通過(guò)檢查系統(tǒng)版本和判斷補(bǔ)丁信息,再回憶近期是否有什么重大型漏洞,或者是去提權(quán)輔助界面看看是否存在可利用的信息。
cmd > systeminfo
查看用戶目錄及文件,如果攻擊者新建賬號(hào)的話會(huì)生成一個(gè)用戶目錄,同時(shí)可以根據(jù)文件的事件排序,看看是否有可疑的文件夾
Win+R >cmd >%UserProfile%\Recent檢查計(jì)劃任務(wù)、啟動(dòng)項(xiàng)、服務(wù)、環(huán)境變量
檢查主機(jī)是否存在計(jì)劃任務(wù)
Cmd > schtasks或at檢查主機(jī)是否存在異常啟動(dòng)項(xiàng)
Win+R >regedit打開(kāi)注冊(cè)表,查看開(kāi)機(jī)啟動(dòng)項(xiàng)是否正常,特別注意以下三個(gè)注冊(cè)表項(xiàng)
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\runHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runonce
檢查主機(jī)是否存在異常服務(wù)
Win+R >services.msc檢查主機(jī)環(huán)境變量是否存在異常
使用set命令將環(huán)境變量導(dǎo)出檢查

惡意文件及病毒查殺
惡意病毒查殺:建議下載安全軟件,對(duì)系統(tǒng)進(jìn)行全盤(pán)掃描并查殺。
惡意文件查殺:像如果是webshell這種,可以使用D盾,河馬等查殺工具進(jìn)行查殺。
防火墻及殺毒軟件排查
檢查操作系統(tǒng)防火墻是否存在異常
windows操作防火墻配置著允許/拒絕通行的入站/出站規(guī)則,可根據(jù)防火墻配置判斷該主機(jī)在同網(wǎng)段內(nèi)的可攻擊面積。
netsh firewall show state //查看防火墻此時(shí)狀態(tài)netsh advfirewall firewall show rulename=all dir=in //入站規(guī)則netsh advfirewall firewallshow rule name=all dir=out //出站規(guī)則

檢查殺軟是否檢測(cè)出異常
如果目標(biāo)主機(jī)安裝了殺軟,攻擊者在入侵主機(jī)時(shí)殺軟難免會(huì)記錄到部分痕跡,這個(gè)時(shí)候我們可以對(duì)殺軟日志記錄進(jìn)行分析。
Linux
如果是linux系統(tǒng)應(yīng)急的話,可能需要掌握一些常見(jiàn)的排查命令
Uptime:查看當(dāng)前系統(tǒng)時(shí)間,存在用戶,負(fù)載等信息Stat:會(huì)顯示文件UID,文件名,文件屬性,文件訪問(wèn)時(shí)間等Lsof:列出來(lái)當(dāng)前系統(tǒng)打開(kāi)文件Find:目錄文件列出來(lái),也可以查找文件md5sum:該命令用于生成和校驗(yàn)文件的md5值Ps:列舉常用進(jìn)程Netstat:查看網(wǎng)絡(luò)連接及開(kāi)放端口號(hào)Top:經(jīng)常用來(lái)監(jiān)控linux的系統(tǒng)狀況
更多命令參數(shù)請(qǐng)查看下述鏈接:
https://www.hackjie.com/1402.html在了解這些命令之后,才只是我們正式排查的開(kāi)始,接下來(lái)我們可以按照下述方式進(jìn)行排查。
排查系統(tǒng)賬號(hào)
通過(guò)以下命令查看系統(tǒng)用戶
/etc/passwd //該文件用于用戶登錄時(shí)校驗(yàn) 用戶的口令/etc/shadow //存放相應(yīng)的用戶密碼,又稱為影子文件/etc/group //記錄組ID和組名的對(duì)應(yīng)文件
查詢特權(quán)用戶:cat /etc/passwd | awk-F":" '$3==0{print $1}'查詢可以遠(yuǎn)程登錄的賬號(hào):cat /etc/shadow |awk'/\$1|\$6/{print $1}'查詢具有sudo權(quán)限賬號(hào):more /etc/sudoers | grep -v "^#\|^$" | grep"ALL=(ALL)"
查看歷史記錄
一般是如下兩個(gè)命令
history //記錄執(zhí)行過(guò)的命令.bash_history //記錄執(zhí)行過(guò)的命令
二者區(qū)別
history顯示內(nèi)存和~/.bash_history中的所有內(nèi)容;內(nèi)存中的內(nèi)容并沒(méi)有立刻寫(xiě)入~/.bash_history,只有當(dāng)當(dāng)前shell關(guān)閉時(shí)才會(huì)將內(nèi)存內(nèi)容寫(xiě)入shell。
檢查異常進(jìn)程、端口
netstat -antlp //查看端口命令,a是查看所有ps -aux //查看進(jìn)程命令
檢查開(kāi)機(jī)啟動(dòng)項(xiàng)、定時(shí)任務(wù)、服務(wù)、異常文件
查看啟動(dòng)項(xiàng)常用方式
more /etc/rc.local/etc/rc.d/rc[0-6].dls -l /etc/rc.d/rc3.d
查看服務(wù)常用方式
chkconfig -list //列出chkconfig所知道的所有的服務(wù)的情況
查看定時(shí)任務(wù)
/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/*/etc/cron.daily/*
查看異常文件
可以查看臨時(shí)目錄下的文件,也可以查看. .. 等前綴 或關(guān)鍵字的異常文件
查看系統(tǒng)環(huán)境變量
Linux的系統(tǒng)級(jí)環(huán)境變量位于/etc/目錄中,用戶級(jí)環(huán)境變量位于~/目錄中。
??吹降膬蓚€(gè)目錄:
/etc/profile/home/用戶/.bash.profile
env:該命令顯示所有的環(huán)境變量set:該命令顯示所有本地定義的Shell變量
tips:alias也可以實(shí)現(xiàn)隱藏指定程序的內(nèi)容回顯,應(yīng)值得注意日志分析與排查
Linux下的日志記錄一般都在/var/log文件下,以下收集了一些常用的篩選方式
原文鏈接:https://mp.weixin.qq.com/s/bYVebbDIL18odT0ShA6s7Q1、定位有多少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爆破用戶名字典是什么?
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、增加一個(gè)用戶kali日志:
Jul 10 00:12:15 localhost useradd[2382]:new group: name=kali, GID=1001Jul 10 00:12:15 localhost useradd[2382]:new user: name=kali, UID=1001, GID=1001, home=/home/kali, shell=/bin/bashJul 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授權(quán)執(zhí)行:sudo -lJul 10 00:43:09localhost sudo: good : TTY=pts/4 ;PWD=/home/good ; USER=root
防火墻及殺毒軟件排查
檢查操作系統(tǒng)防火墻是否存在異常
linux操作防火墻配置著允許/拒絕通行的入站/出站規(guī)則,可根據(jù)防火墻配置判斷該主機(jī)在同網(wǎng)段內(nèi)的可攻擊面積。
不同的linux版本可能命令會(huì)不一樣,這里以centos為例
Centos 6.x版本iptables:
service iptables status //查看防火墻狀態(tài)service iptables start //開(kāi)啟防火墻
Centos 7版本 firewall:
開(kāi)放特定端口:
firewall-cmd --zone=public --add-port=8080/tcp --permanent查看防火墻狀態(tài):
firewall-cmd --state重啟防火墻:
systemctl restart firewalld查看端口列表:
firewall-cmd --zone=public --list-ports
二者的配置一般在/etc/sysconfig/iptables 或 /etc/firewalld/zones/pulic.xml下
檢查殺軟是否檢測(cè)出異常
如果目標(biāo)主機(jī)安裝了殺軟,攻擊者在入侵主機(jī)時(shí)殺軟難免會(huì)記錄到部分痕跡,這個(gè)時(shí)候我們可以對(duì)殺軟日志記錄進(jìn)行分析。
報(bào)告模板
相信通過(guò)上述方式排查后,或多或少會(huì)有些收獲吧,這個(gè)時(shí)候我們需要輸出報(bào)告文檔,這里收集了網(wǎng)上的一些簡(jiǎn)單文檔,總體格式都差不多,后續(xù)可以自行添加和刪除。
https://www.uedbox.com/post/9816/
最后,望各位師傅項(xiàng)目接的多,漏洞一挖一個(gè)準(zhǔn),最好沒(méi)有應(yīng)急突發(fā)情況,文章寫(xiě)的不好,望多多擔(dān)待,不喜勿噴,DD怕疼。
參考文章鏈接:
https://www.freebuf.com/articles/terminal/192859.htmlhttps://mp.weixin.qq.com/s/bYVebbDIL18odT0ShA6s7Q
