網絡攻防對抗之“左右互搏術”
本文介紹了一種從攻防兩個維度研究分析網絡安全對抗技術的方法。該方法基于Sysmon日志、ATT&CK標簽日志、操作系統日志的分析實踐,通過幾種典型攻防對抗技術示例,著重介紹和分析攻擊在主機層面特征,為藍隊人員“看得見”“看得清”網絡威脅,提供了一種簡單易學的技術修煉方法。也借此拋磚引玉,希望在安全規則優化或威脅狩獵的專家能有更多此方面技術分享。
1、“左右互搏術”
這里的“左右互搏術”,喻意為安全人員一邊模擬紅隊或入侵者或企業內惡意人員的攻擊,一邊作為防守方從網絡、主機等多層面檢測和分析攻擊,有助于安全人員理解掌握相關攻擊技術原理、技術特征及其產生的日志、告警等信息。若將相關經驗應用到企業生產環境,那么為企業優化網絡安全告警解析規則、快速分析溯源攻擊、威脅狩獵、針對性增強防護檢測措施等方面,將是大有裨益的。
2、資源準備
測試驗證主要資源及軟硬件配置信息如下。
筆記本電腦:CPU 4核1.8GHz、內存16GB、SSD硬盤1T,虛擬化軟件VMware Workstation Pro 15。
SEIM(安全信息和事件管理系統):Elastic ELK Docker虛擬機推薦分配12GB內存。
日志采集軟件:Sysmon+modular sysmonconfig.xml配置文件,日志傳送軟件winlogbeat和filebeat。
攻擊機:互聯網云主機+CobaltStrike(以下簡稱CS)+云函數及API網關,虛擬機Windows10+CS+紅隊工具,虛擬機Kali或Ubuntu+Impacket等工具。
靶機:Windows2016、Windows11、Windows10、CentOS 8、Ubuntu20.04等虛擬機。
3、基于Sysmon的“左右互搏術”
Sysmon是微軟安全人員開發的一種 Windows系統服務和設備驅動程序,一旦安裝在系統上,就會在系統重啟后保持駐留狀態,以監視系統活動并將其記錄到 Windows事件日志。它能提供有關進程創建、網絡連接和文件創建時間更改等詳細信息。通過使用Windows事件查看器或SIEM代理收集它生成的事件并進行安全分析,可了解入侵者和惡意軟件如何在網絡系統上運行,從而識別惡意或異?;顒?。目前,Sysmon也有支持Linux版本,但其檢測功能還比較弱,支持的操作系統類型較少。
以下介紹三方面場景,主要介紹在主機側對有關攻擊的檢測發現。篇幅有限,未對有關攻擊與檢測技術原理,防護措施等深入展開說明。
3.1EventID 1進程創建
Sysmon EventID 1是為有關新創建進程提供擴展信息,能提供有關進程執行上下文的完整命令行。
攻擊者入侵系統往往會創建進程與C2等遠控服務器建立通信連接,因此一般可通過Sysmon EventID 1進程創建事件來發現入侵行為。
3.1.1 紅隊攻擊
紅隊在內網橫向移動過程中,可能會使用Impacket套件等工具?,F在模擬紅隊執行psexec.py橫向移動一臺Windows主機,執行效果如下圖所示。
使用psexec.py時,靶機出現病毒告警,改用smbexec.py則不會被防病毒軟件(這里指Defender)查殺,且能與靶機保持正常通信,執行效果見下圖。
3.1.2 藍隊防守
藍隊可以從有關攻擊工具的源代碼(如有)或惡意樣本、網絡通信數據包、主機日志等方面來進行安全分析。
1)代碼層面分析
通過查看psexec.py代碼,可以深入了解其工作原理。下圖代碼展示了psexec.py首先會使用SMB協議進行會話協商,通過可寫共享上傳隨機文件名的exe文件,隨后打開SVCManager并創建服務,之后啟動服務與遠控端建立通信連接。
2)網絡層面分析
通過wireshark獲取網絡數據包,驗證了psexec.py開始使用了SMB協議進行會話協商,通過深入分析網絡數據包,觀察其是否有明顯特征。
3)主機層面行為分析
通過Elastic ELK平臺集中分析主機層面攻擊行為,搜索eventID為1的事件,下圖顯示了紅隊執行psexec.py攻擊及whoami命令后,在靶機上產生了2個進程。
但由于psexec.py執行有很多明顯的特征,已被大多數防病毒軟件查殺,以下是Windows defender查殺告警。
smbexec.py之所以沒有被防病毒軟件查殺,原因是其利用一個批處理文件和一個臨時文件來執行和轉發消息,達到免殺效果,如下圖所示。
通過查看smbexec.py源代碼,也可以驗證此技術特征。
4)主機操作系統日志分析
藍隊也可以通過查看Windows操作系統安全日志,ID編號為4624,發現用戶異常登錄,如下圖所示。
3.2EventID 3&22網絡外連
Sysmon EventID 3和22是網絡外連事件。EventID 3是記錄系統TCP/UDP網絡連接。每個連接都通過ProcessId和ProcessGuid字段鏈接到一個進程。該事件還包含源和目標主機IP地址、端口號和IPv6 狀態。EventID 22是DNS查詢,無論DNS查詢結果成功還是失敗、緩存與否,進程執行DNS查詢時都會生成此事件。
搜索EventID 3,查看測試CS木馬在靶機上的進程名稱、網絡外連IP和端口等信息,如下圖所示。
搜索EventID 22,顯示CS木馬外聯C2時,通過DNS解析了C2使用的云函數API網關的域名。因此,藍隊可將EventID 3和22檢測到的外連IP和域名,與威脅情報庫匹配來發現一些攻擊行為。
下圖是一個典型的CS木馬執行后外連C2后產生的Sysmon告警日志柱狀圖??梢杂^測到木馬執行后,先會產生大量多種EventID日志,再到后來遠控通信產生的大量網絡連接數據包(下圖綠色部分),藍隊可以將其作為一種典型攻擊行為進行跟蹤。
對于初步識別出的可疑進程,可依托Elastic ELK進程關聯分析功能,讓藍隊很容易理解攻擊行為,并高效地開展攻擊溯源或威脅狩獵。
3.3EventID 17&18命名管道
Sysmon EventID 17在創建命名管道時生成,而惡意軟件通常使用命名管道進行進程間通信。EventID 18則是在客戶和服務端之間建立命名管道連接時形成事件記錄。
以下兩圖分別展示了CS木馬在靶機上產生的命名管道創建和連接日志。
CS有很多用于后滲透的攻擊模塊,其加載通常借助調用Windows DLL方式來實現。這些攻擊模塊會通過命名管道的形式與Beacon通信,默認管道名稱有\MSSE-、\postex_、\postex ssh*、\status_、\msagent_。這為藍隊分析判斷攻擊者使用哪種武器,有一定參考意義。
通過對Sysmon每一個EventID事件分析,藍隊將會發現很多有安全價值的信息,對不同EventID進行關聯,將會在入侵檢測方面有較大的發揮空間。例如,通過監控單個或所有主機Sysmon EventID的走勢圖,也是可以發現攻擊異常。
4、基于ATT&CK的“左右互搏術”
借助ATT&CK模型,可以讓藍隊更容易理解分析攻擊者所使用的技戰術和工具,甚至能分析判斷出其屬于哪個團伙,也便于安全人員間交流。
本項測試基于Sysmon產生的帶有ATT&CK標簽的日志。通過ATT&CK技戰術分析日志,非常有助于藍隊攻擊溯源和威脅狩獵。遺憾的是,目前少有EDR、HIDS廠家將帶有ATT&CK標簽的日志接口開放,不利于藍隊使用該模型來開發關聯檢測規則。
4.1ATT&CK T1003操作系統憑證導出
在網絡攻擊中,憑證導出是最常見的攻擊行為之一。目前,ATT&CK模型中操作系統憑證導出有以下8種子技術:
T1003.001: LSASS Memory
T1003.002: Security Account Manager
T1003.003: NTDS
T1003.004: LSA Secrets
T1003.005: Cached Domain Credentials
T1003.006: DCSync
T1003.007: Proc Filesystem
T1003.008: /etc/passwd and /etc/shadow
這里測試T1003.001:LSASS Memory和T1003.006:DCSync。
4.1.1 紅隊攻擊
紅隊有時會將LSASS進程內存轉儲后,通過mimikatz離線導出賬號密碼及哈希。值得注意的是,安裝了KB2871997補丁或者系統版本大于Windows server 2012的,系統內存已不再保存明文密碼,且只有Administrator(SID 500)默認賬號可被用于PTH哈希傳遞攻擊。
假設紅隊導出上述的某個賬號密碼屬于域管理員組或具有DCsync權限,則可使用secretsdump.py來導出域控AD目錄所有賬號及密碼哈希。
而在大型域環境,一般會使用BloodHound(下圖)等工具來查找具有DCSync權限的賬戶。
4.1.2 藍隊防守
針對紅隊第一種攻擊技術,藍隊通過搜索T1003.001或Credential Dumping關鍵詞,如下圖所示,會發現紅隊訪問lsass.exe進程的行為。
結合Sysmon EventID 11或直接查找lsass.dmp文件,或通過ELK自定義搜索結果來快速檢索。如下圖所示,檢測到lsass內存轉儲行為。值得注意的是,測試發現mimikatz shell里執行的命令,Sysmon并沒有相關日志記錄。
在紅隊進行第二種技術攻擊時,即使用secretsdump.py導出域控AD目錄所有賬號和哈希時,Sysmon并沒有產生有關日志,而Windows安全日志里則產生了大量4622事件(A security package has been loaded by the Local Security Authority)。藍隊可以通過ELK預置規則或修改預置規則進行關聯告警。需要提醒的是每一條安全檢測規則均應經過實際測試驗證有效。
根據紅隊使用DCsync攻擊技術及Windows安全日志,藍隊可創建兩條規則:規則一是檢測使用hacker賬戶進行NTLM V2認證登錄:winlog.event_data.LmPackageName:
"NTLM V2"(還可以增加更多字段以提高檢測的準確度);規則二是將DCsync攻擊產生的日志中有關字段(any where event.actinotallow=="目錄服務訪問" and event.code=="4662"and winlog.event_data.AccessMask:"0x100"等)進行關聯并設置閾值,經測試產生了相關告警。如果兩條規則產生的告警同時出現,更充分說明正在發生PTH和DCsync攻擊,如下圖所示。
4.2ATT&CK T1136.001創建賬號
紅隊在攻擊Linux系統后,有可能會創建賬號。Sysmon for Linux可以檢測此類攻擊行為,修改Sysmon配置文件,添加如下圖所示檢測規則,可檢測Linux賬號創建行為。
在ELK中查詢創建賬號時,Sysmon有生成“T1136.001:Local Account”ATT&CK標簽的日志。
同Sysmon EventID走勢圖一樣,藍隊也可以通過監控單個或所有主機“TechniqueID”走勢圖來發現攻擊行為或其他異常。
5、基于操作系統日志的“左右互搏術”
Windows操作系統中有Powershell、Defender、USB和WIFI使用等相關日志,因此,藍隊應能從這些日志中發現一些入侵攻擊或惡意行為。
5.1PTH哈希傳遞攻擊場景
紅隊在內網橫向移動過程中,往往會利用已掌握的個別系統賬號密碼,使用CME等工具對內網服務器實施SSH、SMB等協議密碼噴灑攻擊或PTH哈希傳遞攻擊。
5.1.1 紅隊攻擊
模擬紅隊使用crackmapexec套件工具,利用已獲得賬號及其哈希值,進行哈希傳遞攻擊。下圖顯示發現有兩個系統存在相同的賬號密碼。
5.1.2 藍隊防守
1)網絡層面分析
通過分析網絡數據包,未發現明顯攻擊特征。藍隊可在實際生產環境中驗證是否能產生密碼噴灑告警。
2)主機層面行為分析
使用場景4.1.2中的PTH哈希傳遞攻擊檢測規則“NTLMV2訪問”,發現了CME工具發起的PTH哈希傳遞攻擊。
5.2SID history權限維持場景
SID history是攻擊者用到的比較隱蔽的一種權限維持方法。藍隊應當經常檢查域控是否有賬號存在500 SID history權限,可通過powershell命令排查(Get-ADUser -Filter "SIDHistory -like ''" -Properties SIDHistory| ` Where { $_.SIDHistory -Like "-500" })。
Window安全日志ID 4765事件為SID History添加到用戶時生成。如果沒有查找到4765事件,則可查找ID 4738事件,并查看有關用戶的SID history變更情況。下圖顯示,為hacker賬號添加了500 SID history。
5.3防泄密場景
如果企業有封閉網絡環境,禁止服務器接入USB存儲設備,防止敏感數據被竊取。那么作為一種審計措施,將檢索“event.code:207 and 驅動器”形成如下搜索結果,從而檢測相關服務器是否發生了失泄密事件。
5.4WIFI非法外連場景
如果企業有封閉網絡環境,禁止非法網絡外連。作為一種審計措施,將檢索“event.code:8001 and 無線”形成如下搜索結果,從而檢測是否發生了非法網絡外連行為。這種違規行為在封閉網絡環境下時有發生,值得特別關注。
5.5病毒告警場景
如果企業使用Windows Defender防病毒軟件,那么可以將Defender日志集中收集分析。檢索“event.code:1116”和“event.code:1117”形成如下搜索結果,從而快速發現惡意文件和攻擊行為。
6、總結
通過以上攻防對抗技術測試,將Sysmon EventID日志、帶有ATT&CK標簽日志和操作系統等日志,通過SEIM、SOC等安全系統進行關聯分析,能有效提升企業網絡威脅檢測能力。
當然使用Sysmon也有其局限性,通過卸載Sysmon或關閉Sysmon進程或hook ETW,達到繞過Sysmon檢測,或者將winlogbeat、filebeat這類傳送日志的進程關閉,從而使SEIM無法收到相關日志及檢測發現攻擊行為。
另外,還有一些攻擊者熱衷于使用LOLBAS攻擊(Living Off The Land Binaries, Scripts and Libraries)。這類程序一般具有微軟或第三方認證機構的數字簽名,所以不會被防病毒軟件查殺,因此,往往被攻擊者用于下載惡意程序、執行惡意代碼、繞過UAC等內網滲透活動。藍隊可針對此類攻擊方式,梳理這些程序或命令執行時最常使用的技術參數,將其納入自定義檢測告警規則,從而發現LOLBAS類攻擊。
網絡攻防對抗就像貓鼠游戲,藍隊需要持續跟蹤了解掌握常見攻擊技術,根據自身業務安全場景需要,通過持續優化安全系統告警規則,結合網絡安全有效性驗證及紅藍對抗實戰化檢驗,及時檢測發現深層次網絡攻擊行為和異常。
7、相關資源
以下為測試過程中參考或應用到的部分資源鏈接信息。
1)https://attack.mitre.org/versions/v12/
2)https://github.com/deviantony/docker-elk
3)https://github.com/elastic/detection-rules
4)https://github.com/SigmaHQ/sigma/tree/master/rules
5)https://car.mitre.org/analytics/by_technique
6)https://github.com/12306Bro/Threathunting-book
7)https://lolbas-project.github.io/
本文作者:tom0099, 轉載請注明來自??FreeBuf.COM??