應(yīng)急響應(yīng)-從理論到實(shí)戰(zhàn)
第一章:了解應(yīng)急響應(yīng)
作為網(wǎng)絡(luò)安全從業(yè)人員,網(wǎng)絡(luò)安全我們并不陌生,網(wǎng)絡(luò)安全是指網(wǎng)絡(luò)系統(tǒng)的硬件、軟件及其系統(tǒng)中的數(shù)據(jù)受到保護(hù),不因偶然的或者惡意的原因而遭到破壞、更改、泄露,保證系統(tǒng)連續(xù)、可靠、正常運(yùn)行,網(wǎng)絡(luò)服務(wù)不中斷。面對(duì)各種新奇怪異的病毒和不計(jì)其數(shù)的安全漏洞,建立有效的網(wǎng)絡(luò)安全應(yīng)急體系并使之不斷完善,已成為信息化社會(huì)發(fā)展的必然需要。
至此,網(wǎng)絡(luò)安全應(yīng)急響應(yīng)就呼之欲出了,網(wǎng)絡(luò)安全應(yīng)急響應(yīng)是指針對(duì)已經(jīng)發(fā)生或可能發(fā)生的安全事件進(jìn)行監(jiān)控、分析、協(xié)調(diào)、處理、保護(hù)資產(chǎn)安全。網(wǎng)絡(luò)安全應(yīng)急響應(yīng)主要是為了人們對(duì)網(wǎng)絡(luò)安全有所認(rèn)識(shí)、有所準(zhǔn)備,以便在遇到突發(fā)網(wǎng)絡(luò)安全事件時(shí)做到有序應(yīng)對(duì)、妥善處理。
第二章:應(yīng)急響應(yīng)流程
對(duì)于初學(xué)者來說,首先我們?cè)撝牢覀內(nèi)绾蝸響?yīng)對(duì)一次真正的應(yīng)急響應(yīng)工作,通過全流程來進(jìn)行學(xué)習(xí)更有利于我們快速上手。
一、響應(yīng):
(1)事件類型判斷:
(2)信息收集
信息收集主要是做:流量、日志、可疑進(jìn)程的內(nèi)存、失陷系統(tǒng)鏡像、惡意樣本、客戶資產(chǎn)收集、資產(chǎn)相關(guān)漏洞測(cè)試報(bào)告、防御設(shè)備的日志。此處附上推薦應(yīng)急響應(yīng)工具,鏈接如下:??https://github.com/ra66itmachine/GetInfo/??
- 阻斷所謂阻斷只有三步:關(guān)站、關(guān)服務(wù)、拔網(wǎng)線。
(1)切斷網(wǎng)絡(luò)
情況分很多種:失陷后業(yè)務(wù)仍正常運(yùn)行、失陷后業(yè)務(wù)受滯、失陷后業(yè)務(wù)停擺。不同的情況,網(wǎng)絡(luò)切斷因地制宜。
切斷網(wǎng)絡(luò)的目的:觀察病毒行為、觀察流量特征、阻斷對(duì)內(nèi)通信、阻斷對(duì)外連接。
舉個(gè)例子:一個(gè)醫(yī)院大規(guī)模失陷,但是業(yè)務(wù)正常運(yùn)作,這時(shí)候可以選擇切斷部分不重要的主機(jī)去觀察行為。
(2)阻斷傳播
傳播包括:對(duì)內(nèi)傳播(感染)、對(duì)外傳播(外聯(lián))
對(duì)內(nèi)傳播(感染):進(jìn)程注入/遷移、第三方軟件感染、服務(wù)傳播(ftp/ssh爆破等)
對(duì)外傳播(外聯(lián)):挖礦行為、外聯(lián)攻擊、c2通信
阻斷傳播應(yīng)從:軟件層面、流量層面、代碼層面、網(wǎng)絡(luò)層面。
例如:排查軟件被劫持、排查流量發(fā)現(xiàn)無文件落地、利用代碼審計(jì)發(fā)現(xiàn)容器加載內(nèi)存馬、阻斷網(wǎng)絡(luò)發(fā)現(xiàn)通過服務(wù)傳播的病毒。
(3)隔離核心資產(chǎn)/隔離受害主體(群體)
這一步是應(yīng)急響應(yīng)的最終目的,無論實(shí)施過程如何、無論使用什么工具都必須保證被保護(hù)與淪陷方的隔離。
隔離核心資產(chǎn)是為了做到三個(gè)原則:保護(hù)、避害、不損害。
隔離受害主體(群體)是為了保護(hù)第一現(xiàn)場(chǎng)、收集攻擊者信息等。
- 分析
分析是前提是提煉,提煉出關(guān)鍵信息分析。而提煉的前提是熟悉,了解攻擊手法。
(1)日志、流量、樣本分析
分析三大件:日志、流量、樣本。
日志主要注意的是:時(shí)間、動(dòng)作、結(jié)果;這個(gè)行為什么時(shí)候開始、什么時(shí)候結(jié)束,這個(gè)動(dòng)作是登陸、退出、修改等、造成的結(jié)果是登陸成功/失敗、上傳/下載了文件、執(zhí)行了代碼等。
流量主要注意的是:狀態(tài)碼、交互過程、數(shù)據(jù)合理性;每一次交互的狀態(tài)碼,交互過程中是否符合該種協(xié)議的正確交互過程,每個(gè)字段的填充、每次流量的渲染是否正常。
樣本主要注意的是:?jiǎn)?dòng)方式、偽裝方式、作用;根據(jù)啟動(dòng)方式去選擇沙箱或者分析工具;偽裝方式判斷是否加殼做免殺和打擊方式;根據(jù)作用去判斷受害范圍。
日志屬于靜態(tài)信息需要應(yīng)急人員清晰分辨出日志表達(dá)的內(nèi)容和快速篩選出可疑的點(diǎn)。流量和樣本屬于動(dòng)態(tài)信息,應(yīng)急人員需要擁有一定的滲透能力去分辨交互行為。
(2)行為分析&還原攻擊過程
從行為出發(fā),還原攻擊路徑,推演攻擊過程。
行為分析基于三大件分析,結(jié)合系統(tǒng)表現(xiàn)出來的情況做分析,例如:?jiǎn)?dòng)項(xiàng)、啟動(dòng)腳本、進(jìn)程、內(nèi)存等。
還原攻擊過程需要對(duì)攻擊大致的情況有一個(gè)綜合判斷,且必須具備滲透能力,再此基礎(chǔ)上放入沙箱重新復(fù)現(xiàn)攻擊過程,對(duì)后續(xù)的步驟提供幫助。
①下面是我整理出來的windows和linux應(yīng)急響應(yīng)的基本手工分析收集命令:
第一步:系統(tǒng)排查
1.windows系統(tǒng)
命令行中輸入【msinfo32】命令--查看服務(wù)、驅(qū)動(dòng)
命令行中輸入【systeminfo】命令--簡(jiǎn)單查看系統(tǒng)版本/主機(jī)名
2.linux系統(tǒng)
命令行中輸入【lscpu】命令,可查看 CPU 相關(guān)信息
命令行中輸入【uname -a】命令,可查看當(dāng)前操作系統(tǒng)信息
命令行中輸入【cat /proc/version】命令,可查看當(dāng)前操作系統(tǒng)版本信息
命令行中輸入【lsmod】命令,可查看所有已載入系統(tǒng)的模塊信息
第二步:?jiǎn)?dòng)項(xiàng)
1.windows系統(tǒng)
命令行中輸入【msconfig】命令,可查看啟動(dòng)項(xiàng)的詳細(xì)信息
2.linux系統(tǒng)
使用【cat /etc/init.d/rc.local】命令,可查看 init.d 文件夾下的 rc.local 文件內(nèi)容。
使用【cat /etc/rc.local】命令,可查看 rc.local 文件內(nèi)容。
使用【ls -alt /etc/init.d】命令,可查看 init.d 文件夾下所有文件的詳細(xì)信息
第三步:任務(wù)計(jì)劃
1.windows系統(tǒng)
終端輸入【Get-ScheduledTask】命令,可查看當(dāng)前系統(tǒng)中所有任務(wù)計(jì)劃的信息
命令行中輸入【schtasks】命令,可獲取任務(wù)計(jì)劃的信息
2.linux系統(tǒng)
命令行中輸入【crontab -l】命令,可查看當(dāng)前的任務(wù)計(jì)劃
輸入【ls /etc/cron*】命令查看 etc 目錄下的所有任務(wù)計(jì)劃文件
第四步:防火墻
1.windows系統(tǒng)
命令行中輸入【netsh】命令進(jìn)行查看。
使用【netsh Firewall show state】命令,可顯示當(dāng)前防火墻的網(wǎng)絡(luò)配置狀態(tài)
2.linux系統(tǒng)
無
第五步:進(jìn)程排查
1.windows系統(tǒng)
命令行中輸入【tasklist】命令,可顯示運(yùn)行在計(jì)算機(jī)中的所有進(jìn)程
輸入【tasklist /svc】命令,可以顯示每個(gè)進(jìn)程和服務(wù)的對(duì)應(yīng)情況
輸入【tasklist /m】命令進(jìn)行查詢某些加載 DLL 的惡意進(jìn)程
使用【netstat -ano | findstr "ESTABLISHED"】命令查看目前的網(wǎng)絡(luò)連接,定位可疑的 ESTABLISHED
使用【tasklist | find "2856"】命令可查看具體的程序
使用【Get-Wmi ObjectWin32_Process | select Name, ProcessId, ParentProcessId, Path】命令中 Get-WmiObject Win32_Process 表示獲取進(jìn)程的所有信息
使用【wmic process get name,parentprocessid,processid /format:csv】命令,以 csv 格式來顯示進(jìn)程的名稱、父進(jìn)程 ID、進(jìn)程 ID
2.linux系統(tǒng)
利用【ls -alt /proc/PID】命令,可查看其對(duì)應(yīng)的可執(zhí)行程序
使用【kill -9 PID】命令結(jié)束進(jìn)程
第六步:服務(wù)排查
1.windows系統(tǒng)
輸入【services.msc】命令,可打開【服務(wù)】窗口
2.linux系統(tǒng)
命令行中輸入【chkconfig --list】命令,可以查看系統(tǒng)運(yùn)行的服務(wù)
第七步:文件痕跡排查
1.windows系統(tǒng)
檢查各個(gè)盤下的 temp(tmp)相關(guān)目錄、瀏覽器的歷史記錄、下載文件和 cookie 信息
使用【forfiles /m *.exe /d +2020/2/12 /s /p c:\ /c "cmd /c echo @path @fdate @ftime" 2>null】命令就是對(duì) 2020/2/12 后的exe 新建文件進(jìn)行搜索。
2.linux系統(tǒng)
檢查/tmp 目錄和命令目錄/usr/bin /usr/sbin
檢查~/.ssh 及/etc/ssh 也經(jīng)常作為一些后門配置的路徑
使用命令【find / -ctime 0 -name "*.sh"】,可查找一天內(nèi)新增的 sh 文件
第八步:日志排查
1.windows系統(tǒng)
使用【Get-WinEvent -FilterHashtable @{LogName='Security';ID='4625'}】命令,
也可獲取安全性日志下事件 ID 為 4625 的所有日志信息
FullEventLogView 工具(綠色安裝,方便使用)
2.linux系統(tǒng)
Linux 系統(tǒng)中的日志一般存放在目錄“/var/log/”下
第九步:內(nèi)存排查和流量分析
常用的提取工具有 Dumpit、Redline、RAM Capturer、FTK Imager 等--提取出的文件上傳到 virustotal 平臺(tái)并進(jìn)行掃描判斷
常用的內(nèi)存分析工具有Redline/Volatility,舉例wireshark
使用【ip.addr ==ip】命令,可對(duì)特定 IP 地址進(jìn)行過濾
使用【ip.src==ip】命令,可對(duì)指定的源 IP 地址進(jìn)行過濾
直接輸入 HTTP、HTTPS、SMTP、ARP 等協(xié)議進(jìn)行篩選
使用【top.port==端口號(hào)】或【udp.port==端口號(hào)】命令,可對(duì)端口進(jìn)行過濾
使用【tcp contains strings】命令,可對(duì)數(shù)據(jù)包中的關(guān)鍵字進(jìn)行檢索
第十步:Linux 系統(tǒng)排查webshell
find ./ -type f -name "*.jsp" |xargs grep "exec("
find ./ -type f -name "*.php" |xargs grep "eval("
find ./ -type f -name "*.asp" |xargs grep "execute("
find ./ -type f -name "*.aspx" |xargs grep "eval("
搜索目錄下適配當(dāng)前應(yīng)用的網(wǎng)頁文件,查看內(nèi)容是否有 Webshell 特征,很多木馬和大馬都帶有典型的命令執(zhí)行特征函數(shù),如 exec()、eval()、execute()等
四、清除
我們要做的與滲透無異——“做好清除,藏好自己”。(1)非對(duì)抗情況下在不存在對(duì)抗的情況下,最極端就是全盤重裝,稍次就是數(shù)據(jù)遷移后對(duì)系統(tǒng)盤重裝。在普通情況下,我們可以進(jìn)行針對(duì)性的殺進(jìn)程、刪文件、殺軟清除。(2)存在對(duì)抗情況下對(duì)抗情況就是:頑固馬與不死馬存在,或者被持續(xù)攻擊(apt)。
這樣的情況下,首選是在允許情況下打補(bǔ)丁,再恢復(fù)。找到攻擊行為的源頭,先補(bǔ)上漏洞再清除。
五、加固
加固就是打補(bǔ)丁、對(duì)系統(tǒng)進(jìn)行限制(網(wǎng)絡(luò)隔離、行為管理等)、升級(jí)防御設(shè)備、完善防御流程(防御設(shè)備的部署、人員的部署、規(guī)則庫的升級(jí))
第三章:應(yīng)急響應(yīng)實(shí)戰(zhàn)
在了解過應(yīng)急響應(yīng)的一些基本概念和指導(dǎo)手冊(cè),當(dāng)然唯有實(shí)戰(zhàn)操作才能讓我們更快的掌握應(yīng)急響應(yīng)的基操。
打開靶機(jī),先看題目,讓我們來看看應(yīng)急響應(yīng)我們需要做什么~
開整開整,給出我們遠(yuǎn)程連接主機(jī),不管那么多,先登上去看看
發(fā)現(xiàn)只有一個(gè)phpstudy_pro界面,其他的啥也沒有。
第一步,提權(quán)方式
我們首先判斷應(yīng)急響應(yīng)事件類型,才能對(duì)癥下藥,這不巧了,看一下題目要找木馬,找后門,這場(chǎng)景都給出答案找webshell,按照套路,根據(jù)我搜集起來的webshell工具(如下),先整活起來~
河馬掃一下站點(diǎn)目錄如圖1,掃出了16個(gè)可疑后門如圖2,查看這些.php文件如下如圖3,人為確認(rèn)后一個(gè)也不是,并沒有找到所謂的木馬
圖1
圖2
圖3
估摸著是做了免殺處理,查看一下apache日志
通過日志可以發(fā)現(xiàn)最開時(shí)是在進(jìn)行sql注入,各種payload,后面就開始掃目錄了
初步一看也沒有找到所謂的木馬文件,既然他進(jìn)行了sql注入,就有可能通過sql拿到shell進(jìn)而提權(quán),于就去sql文件夾下面看看,
結(jié)果就找到了udf.dll文件,那么第一步黑客的提權(quán)方式就應(yīng)該是udf提權(quán)了
第二步,找“黑客的webshell”
這里實(shí)在沒有什么好的套路,只能從日志分析圖1中來發(fā)現(xiàn),這是一件很大的工作量,發(fā)現(xiàn)是從一堆post請(qǐng)求日志中,發(fā)現(xiàn)了一個(gè)get請(qǐng)求,然后就去看了一下,結(jié)果真是webshell,webshell在/dede/inc/config_sys.php
圖1
第三步 黑客的賬號(hào)
這個(gè)就是比較簡(jiǎn)單了,windows和linux中查看基礎(chǔ)信息的活,我們?cè)趙indows下用net user查看~
刪除的話倆種方式,①命令行模式:net user xxx /delete;②圖像化界面:服務(wù)器管理器-->配置-->本地用戶和組-->用戶,刪除用戶就行
第四步 后門木馬
我們使用命令 netstat -ano查看,這個(gè)無論是windows還是linux中都是通用的,如下,netstat -ano 查看目前建立的連接,直接鎖定23.23.23.23
第五步 加固服務(wù)器
也是比較簡(jiǎn)單的題,我們?cè)陂_始菜單->本地安全策略->賬戶策略->密碼策略 修改密碼最小長度即可。
另外多提一句,linux中在加固服務(wù)器基本操作中,我們使用vim編輯器編輯/etc/pam.d/system-auth參數(shù)即可~
第六步 刪除木馬
通過第四步得到的IP找到進(jìn)程號(hào)6184,使用【tasklist | find "6184"】命令可查看具體的程序,最后直接鎖定system6.exe,刪除就完成
Ps:這里的system6.exe為啟動(dòng)項(xiàng)中,我們直接在系統(tǒng)配置中關(guān)閉啟動(dòng)項(xiàng)在刪除也是不能成功的,這里推薦D盾,安裝后直接在進(jìn)程查看也能發(fā)現(xiàn)system6.exe,可以直接關(guān)閉程序在刪除。
第七步 修復(fù)漏洞
由第一步已知是udf提權(quán),udf即用戶自己自定義函數(shù),通過添加新函數(shù),擴(kuò)充mysql的功能,而使用udf提權(quán),需要通過sql來進(jìn)行文件讀寫,故限制其文件讀寫的權(quán)限即可修復(fù)該漏洞,這里查找資料,發(fā)現(xiàn)secure_file_priv 可以實(shí)現(xiàn)修復(fù)漏洞
我們?cè)趍ysql配置文件下my.ini中【mysqld】中添加secure_file_priv=null 如下
重啟一下mysql數(shù)據(jù)庫,再去check一下,搞定!
理論加實(shí)踐,應(yīng)急響應(yīng)輕松拿下!
第四章:應(yīng)急響應(yīng)總結(jié)
- 應(yīng)急人員應(yīng)有自己的方法論,對(duì)不同攻擊的威脅建模,擁有威脅情報(bào)分析能力,結(jié)合工具的輔助進(jìn)行現(xiàn)場(chǎng)響應(yīng)與遠(yuǎn)程支撐。
工具和排查點(diǎn)大同小異,提升方法在于應(yīng)急人員的是否熟悉該種攻擊,利用特征和行為去排查更節(jié)省時(shí)間。
3.紅藍(lán)同源,應(yīng)急響應(yīng)屬于藍(lán)隊(duì),但必須具備一定的滲透能力。
Ps:下面是我整理歸納出來的一些提高效率的工具
01、多引擎在線病毒掃描
當(dāng)發(fā)現(xiàn)一個(gè)可疑的異常文件,使用多個(gè)不同的病毒引擎進(jìn)行掃描檢測(cè),確認(rèn)文件是否是惡意代碼。
①VirSCAN:免費(fèi)多引擎在線病毒掃描1.02版,支持47個(gè)殺毒引擎。
https://www.virscan.org/
②VirusTotal:一個(gè)提供免費(fèi)的可疑文件分析服務(wù)的網(wǎng)站。
https://www.virustotal.com/
③Jotti:惡意軟件掃描系統(tǒng),使用幾個(gè)反病毒程序進(jìn)行掃描可疑文件。
https://virusscan.jotti.org
02、病毒查殺軟件
聯(lián)網(wǎng)狀態(tài)下,直接下載殺毒軟件進(jìn)行全盤掃描查殺。
①360殺毒:整合了五大領(lǐng)先查殺引擎,殺毒查殺率比較高。
https://sd.#/
②火絨安全軟件:一款非常精致的軟件,包含了火絨劍,安全專業(yè)人士很好用的分析工具。
https://www.huorong.cn/
03、病毒清除工具
無法聯(lián)網(wǎng)時(shí),可使用綠色免安裝的病毒清除工具,掃描電腦中的所有文件。
①Dr.Web CureIt:綠色免安裝版本,具有單機(jī)版Dr.Web的所有功能。
https://free.drweb.ru/download+cureit+free/
②Rootkit后門檢測(cè)工具:用于在本地檢查rootkit后面的工具。
chkrootkit:http://www.chkrootkit.org
04、勒索病毒搜索引擎
勒索病毒自救最有力的工具,輸入病毒名或加密文件后綴名,就可以找到解密工具或者了解病毒詳情。
①【騰訊】 勒索病毒搜索引擎,支持檢索支持檢索超過 1000+ 種常見勒索病毒。
https://guanjia.qq.com/pr/ls/
②【360】 勒索病毒搜索引擎,支持檢索超過上800種常見勒索病毒。
http://lesuobingdu.#05
05、Webshell檢測(cè)工具
網(wǎng)站被入侵時(shí),我們需要一款Webshell檢測(cè)工具,來幫助我們發(fā)現(xiàn)webshell,進(jìn)一步排查系統(tǒng)可能存在的安全漏洞。
①D盾_Web查殺:http://www.d99net.net/index.asp
②百度WEBDIR+:https://scanner.baidu.com/
③河馬webshell查殺:http://www.shellpub.com
06、安全分析工具
①SysinternalsSuite:包含一系列免費(fèi)的系統(tǒng)分析工具,如Process Explorer、啟動(dòng)項(xiàng)分析工具 AutoRuns等。
https://docs.microsoft.com/zh-cn/sysinternals/downloads/
②PCHunter:一款強(qiáng)大的手工殺毒輔助工具。
http://www.xuetr.com
07、日志分析工具
我們經(jīng)常需要處理各種日志,如系統(tǒng)日志、WEB日志、DNS日志等,一款簡(jiǎn)單好用的日志分析工具,可以大大提升效率。
①Log Parser:微軟公司出品的日志分析工具,它功能強(qiáng)大,使用簡(jiǎn)單。
https://www.microsoft.com/en-us/download/details.aspx?id=24659
②EmEditor :可能是世界上最快的Windows文本編輯器,支持高達(dá)248 GB的大文本。
https://www.emeditor.com/#download
本文作者:zhj123456, 轉(zhuǎn)載請(qǐng)注明來自FreeBuf.COM