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