一、排查思路
在攻防演練保障期間,一線工程師在實施主機入侵痕跡排查服務時可能面臨時間緊、任務急、需要排查的主機數量眾多情況。為了確保實施人員在有限的時間範圍內,可以高效且保證質量的前提下完成主機入侵痕跡排查工作,本人總結了自己的一些經驗,下面的內容特此分享主機入侵痕跡排查服務中重點、關鍵的排查項,僅作為參考使用。
1.1初步篩選排查資產
一般情況下,客戶資產都比較多,想要對所有的資產主機進行入侵痕跡排查基本不太現實,等你全部都排查完了,攻擊者該做的事早就做完了,想要的目的也早就達到了。那麼針對客戶資產量大的情況,我們應該怎麼處理?
首先,在排查前,作為項目經理,應該與客戶溝通好,取得授權,確認排查範圍和排查方案和辦法,客戶若是沒有授意或者同意,那麼下面的操作都是違規操作,甚至有的還違法。
取得客戶同意後,我們再從資產面臨的風險等級、資產的重要程度、攻擊者的攻擊思路、手法及目標選擇傾向幾個方面去初步篩選出排查資產。這裡建議從以下資產範圍選取:
曾失陷資產:在以前的紅藍對抗、攻防演練、或者真實的黑客攻擊事件中被攻陷的主機,曾失陷資產應作為排查的重點對象。
網際網路暴露脆弱資產:從網際網路暴露資產中篩選出使用了高危漏洞頻發的組件/應用(組件如Weblogic、JBoss、Fastjson、Shiro、Struts2等)。還有一個點需要注意,就是客戶是否具有有效的資產管理,是否能夠清晰明確識別出哪些資產用了什麼組件,如果不能的話,只能通過之前的滲透測試結果來篩選出脆弱資產。
關鍵資產:如域控等可以導致大量主機失陷的集權類資產。
1.2確定排查資產
主機入侵痕跡排查工作建議在一周內對數量控制在20臺以內的主機進行排查。經過初步篩選的資產數量如果遠遠大於20臺主機,需要從資產裡面進行二次篩選,如果存在曾失陷資產,排查主機範圍可以定為曾失陷資產;如果不存在曾失陷資產,排查主機範圍可以定為脆弱資產,具體可以根據客戶自身實際情況調整。
需要注意是,如果排查資產中包含曾失陷資產的話,需要向客戶索要歷史攻防演練/應急等報告,在排查時需結合歷史報告和指導手冊內容一起進行排查,需要特別留意歷史報告中攻擊者的入侵痕跡是否已經完全清理。
1.3入侵痕跡排查
在實際情況下,攻擊者在進行攻擊時使用的攻擊手法、攻擊思路、行為等各有差異,無論是考慮實現成本還是效率問題,都難以通過很精細很全面的排查項去實施主機入侵痕跡排查,但是我們可以從攻擊中可能會產生的一些比較共性的行為特徵、關鍵的項進行排查。
對於主機的入侵痕跡排查,主要從網絡連接、進程信息、後門帳號、計劃任務、登錄日誌、自啟動項、文件等方面進行排查。比如,如果存在存活後門,主機可能會向C2發起網絡連接,因此可以從網絡連接排查入手,如果存在異常的網絡連接,則必然說明存在惡意的進程正在運行,則可以通過網絡連接定位到對應進程,再根據進程定位到惡意文件。如果攻擊者企圖維持主機控制權限的話,則可能會通過添加後門帳號、修改自啟動項,或者添加計劃任務等方式來維持權限,對應的我們可以通過排查帳號、自啟動項、計劃任務來發現相應的入侵痕跡。
二、排查內容
2.1windows主機
攻擊者一般使用 attrib +s +h 命令隱藏惡意程序,故在排查痕跡前需打開「工具—文件夾選項—查看」。按照下圖中的設置,即可顯示所有文件。
2.1.1網絡連接
排查步驟:
在CMD中執行 netstat -ano 查看目前的網絡連接。
這種情況一般都比較正常,只有80和443埠,一般都是正常業務開放埠。
分析方法:
如果網絡連接出現以下情況,則當前主機可能已經失陷:
1、主機存在對內網網段大量主機的某些埠(常見如22,445,3389,6379等埠)或者全埠發起網絡連接嘗試,這種情況一般是當前主機被攻擊者當作跳板機對內網實施埠掃描或者口令暴力破解等攻擊。
2、主機和外網IP已經建立連接(ESTABLISHED狀態)或者嘗試建立連接(SYN_SENT狀態),可以先查詢IP所屬地,如果IP為國外IP或者歸屬各種雲廠商,則需要重點關注。進一步可以通過威脅情報(https://x.threatbook.cn/等)查詢IP是否已經被標註為惡意IP。
3、如果無法直接從網絡連接情況判斷是否為異常連接,可以根據網絡連接找到對應的進程ID,判斷進程是否異常。如果不能從進程判斷,可以進一步找到進程對應文件,將對應文件上傳至virustotal(https://www.virustotal.com)進行檢測。如上面截圖中對內網掃描的進程ID是2144,在任務管理器中發現對應的文件是svchost.exe。
上傳至virustotal檢測的結果為惡意文件。
若在排查網絡連接中,任務管理器只能看到有命令行工具(如powershell、cmd)powershell進程與外聯IP建立會話,無法看到進程對應的運行參數。此時可藉助Process Explorer進一步觀察powershell的運行參數。如下在Process Explorer中發現powershell執行了cobalt strike腳本的痕跡。
2.1.2敏感目錄
排查步驟:
查看攻擊方常喜歡上傳的目錄是否有可疑文件。
分析方法:
1、各個盤符下的臨時目錄,如C:\TEMP、C:\Windows\Temp等。
2、%APPDATA%,在文件夾窗口地址欄輸入%APPDATA%,回車即可打開當前用戶的appdata目錄。
如Administrator用戶對應的%APPDATA%目錄C:\Users\Administrator\AppData\Roaming。可以按照修改日期排序篩選出比較臨近時間有變更的文件。
3、瀏覽器的下載目錄
4、用戶最近文件%UserProfile%\Recent,如Administrator對應的目錄為C:\Users\Administrator\Recent
5、回收站,如C盤下回收站C:$Recycle.Bin
對於腳本文件可直接查看內容判定是否為惡意,若是遇到exe可執行文件,可將對應文件上傳至virustotal(https://www.virustotal.com)進行檢測。
2.1.3後門文件
排查步驟:
查看粘滯鍵exe;
查看註冊表中映像的鍵值。
分析方法:
1、查看粘滯鍵exe
查看C:\Windows\System32\下的sethc.exe文件的創建、修改時間是否正常,如下圖,一般情況下,系統文件的創建時間與修改時間應相同,sethc的創建時間與修改時間不同,可確定sethc已被替換成後門文件。由於攻擊者可修改文件時間,上述簡單粗暴的判斷方式可能不靠譜,可將sethc拷貝出來、上傳至VT檢測危害。
2、查看註冊表中映像的鍵值
檢查註冊表「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options」下所有exe項中是否有debugger鍵,若有debugger鍵,將其鍵值對應的程序上傳至VT檢測。如下圖,攻擊者利用該映像劫持的攻擊者方式,在sethc.exe項中新建debugger鍵值指向artifact.exe,攻擊效果為當連續按5下shift鍵後,不會執行sethc.exe,而是轉而執行劫持後的artifact.exe文件。於是在排查中發現有debugger鍵值,均可認為指定的文件為後門文件,待上傳VT後確認其危害。
這裡沒有debugger鍵,下面的圖是有的:
2.1.4後門帳號
排查步驟:
打開regedit查看註冊表中的帳號;
查看administrators組中是否存在賦權異常的帳號。
分析方法:
查看註冊表中HKLM\SAM\SAM\Domains\Account\Users\Names中是否有多餘的帳號(可詢問客戶運維人員以確定帳號存在的必要性)。正常情況下,上述路徑的SAM權限僅system用戶可查看,需要給administrator用戶授權才能打開完整路徑。對SAM右鍵、給administator用戶添加完全控制權限(下圖的權限操作方法適用於win7及以上作業系統):
win2003、XP等低版本系統的操作方法請使用下圖的流程給administrators組添加權限。
帶有$符號的帳號特指隱藏帳號(如aaaa$),正常業務中不需要創建隱藏帳號,可判斷帶有$符號的均為後門帳號。然後在客戶運維的協助下排查其他的異常帳號。
如下圖中,除了aaaa$可直接判斷外,root帳號為高度關注對象。(註:aaaa$中的鍵值0x3ea表示該帳號與Users表中相應數值的表相對應,在刪除帳號時需一起刪除)
註:異常帳號刪除後需要將之前授權的administrator移除SAM權限。
查看administrators組中是否存在賦權異常的帳號。比如正常情況下guest用戶處于禁用狀態、普通應用帳戶(weblogic、apache、mysql)不需要在administrators組中。如下圖,執行命令net user guest查看guest帳號的信息,如果guest帳號被啟用,且在管理員組成員中有guest用戶,需要詢問客戶運維人員該guest帳戶啟用的必要性以及加入管理組是否有必要,否則可認為攻擊者將系統自帶用戶guest啟用並提權至管理員組後作為後門帳號使用。
執行net localgroup Administrators關注管理員組別是否存在異常帳號:
2.1.5自啟動項
排查步驟:
使用Autoruns工具查看自啟動項
查看組策略中的腳本
查看註冊表中的腳本、程序等
查看各帳號自啟目錄下的腳本、程序等
查看Windows服務中的可執行文件路徑
分析方法:
1、使用Autoruns:
使用工具能較全面地查看系統中的自啟動項。在得到客戶授權,能夠在可能失陷的主機上傳排查工具時,可使用Autoruns工具進行詳細的自啟動項排查。排查中主要關注粉色條目,建議與客戶運維人員一同查看,以及時排除業務所需的正常自啟項。如下圖,在Everything欄中,查看粉色的條目中發現常見的sethc被劫持為cmd,Command Processor鍵值(默認為空)關聯到名為windowsupdate.exe(效果為啟動cmd時,被關聯的程序會靜默運行)。sethc的劫持可確認為入侵痕跡,Command Processor鍵值的關聯程序需要找客戶進一步確認是否業務所需,或將windowsupdate.exe上傳VT檢測。
另外,這個工具很好用 ,特別小,可以直接上傳文件到VT進行檢測。
2、查看組策略:
在無法使用工具、只能手工排查的情況下,可查看常見的自啟項是否有異常文件。打開gpedit.msc—計算機配置/用戶配置—Windows設置—腳本,在此處可設置伺服器啟動/關機或者用戶登錄/註銷時執行的腳本。下圖1、2兩處的腳本均需要查看是否添加有腳本。
我這裡沒有腳本。
2.1.6日誌
工程師基本都會看日誌,windows日誌也就那些內容,比較簡單,我就不細述,主要寫一下幾個比較重要的點,基本上就可以排查出是否有異常登錄了。
排查步驟:
查看登錄日誌中暴力破解痕跡;
查看帳號管理日誌中帳號的新增、修改痕跡;
查看遠程桌面登錄日誌中的登錄痕跡。
三、總結一下
技能都是需要動手的,然後思路需要清晰,操作要細緻,跟客戶要保持溝通,切記不能悶著擅自操作!
來源:FreeBuf
版權申明:內容來源網絡,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝!
感謝閱讀