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