想簡單分享一下之前在 MxDR(Managed Extended Detection and Response)待了半年給我的一些經驗,今天想換個角度:從防守方的位置回頭看,我們平常做的那些攻擊動作,哪幾個其實很容易被偵測到。
在 MxDR 上追一個可疑程序,大致會看三件事:
知道防守方在看這三件事,就能回頭想:我的哪些動作會剛好撞上它們。
這半年看下來,最常露餡的大概是這幾種:
1. 直接用現成攻擊工具:像 Mimikatz、PsExec、各種 C2 框架,功能成熟又好用,但也太有名——檔案 hash 早就被威脅情資收錄,很多也沒有合法簽章,就算改了名字,行為(例如去讀 LSASS)還是一樣,一比對就中。
2. 在 cmd / PowerShell 用 base64:攻擊者常把指令做成 base64(例如 PowerShell 的 -enc)來躲關鍵字比對。但「把一串 base64 解碼後直接拿去執行」這個行為本身就會被抓,而且 -enc 這種寫法合法管理員幾乎不用,反而更顯眼。
3. 把惡意檔丟在 Windows 暫存路徑:%TEMP%、AppData\Local\Temp、C:\Windows\Temp 這些地方一般使用者就能寫,也容易混在正常暫存檔裡。但反過來,「一個剛落地、沒簽章、又從暫存路徑被執行的檔案」幾乎不會是正常程式,這正好是很好認的偵測點。
4. 橫向移動:從一台被控制的主機往內網其他主機移動時,天生要跨主機連線——兩台平常不通訊的主機突然用 SMB、RDP 或 WinRM 連上,或一台機器突然對一堆主機發起連線,網路這端一看就知道不對。
上面每一條,單獨看都可能被當成雜訊:一個暫存檔、一條內網連線、一段 base64,每天都有。MxDR 真正在做的,是把這些痕跡按時間和同一個來源串成一條鏈——所以就算前面某幾步很安靜,只要有一步被抓到,整條路徑就會被回頭挖出來。
今天從 MxDR 的角度回頭看,整理了幾個最容易被偵測到的動作:用現成工具、base64 指令、丟暫存路徑、橫向移動。這些是我那半年看到的,難免有不足,有實務經驗的前輩如果有可以補充的,歡迎指教。