iT邦幫忙

2026 iThome 鐵人賽

DAY 10
0
Security

從告警到結案報告:30 天勒索軟體事件應變實戰系列 第 10

Day 10|PowerShell 濫用與日誌記錄

  • 分享至 

  • xImage
  •  

案情推進

不管攻擊者是從 RDP、漏洞利用,還是釣魚進來,
入侵成功後會需要進一步執行指令、下載工具、操作系統。

在 Windows 環境裡,PowerShell 是攻擊者常使用的選項

因為它本就是 Windows 的系統管理工具,合法、功能完整,而且很多企業每天都在使用。

也正因如此,對攻擊者來說它很方便。

今天來看 PowerShell 被濫用,以及怎麼紀錄它的行為。


本日探討

  1. 為什麼攻擊者偏愛 PowerShell?什麼是「就地取材(LOLBins)」
  2. 預設的 PowerShell 沒有很多紀錄,該開哪些日誌?
  3. 如果沒開日誌,還有哪個檔案分析

一、攻擊者選擇 PowerShell

攻擊者如果帶進一支陌生執行檔:evil.exe

很可能直接碰到:

  • Antivirus
  • EDR
  • Application Control
  • Reputation Detection
  • Hash / Signature Detection

所以常見做法是使用系統本來就存在的工具。

這類思路被稱為:Living off the Land

也就是「就地取材」。

這些被被攻擊者濫用的合法系統工具 LOLBins(Living Off the Land Binaries)如:

  • powershell.exe
  • cmd.exe
  • rundll32.exe
  • certutil.exe

它們本身都能直接當作 IOC,因為管理員、安裝程式、系統服務,本來就可能使用。

所以藍隊不能寫一條:
只要 powershell.exe 執行Critical Alert

需要參考:

  • 誰執行它
  • Parent Process 是誰
  • Command Line 是什麼
  • 執行後連到哪裡
  • 有沒有建立檔案
  • 前後還發生什麼

也就是不能只看工具名稱,要看行為。


因為 LoLBins 的程式很多,這裡專注討論 Powershell

PowerShell 幾乎無所不能:

  • 下載檔案
  • 記憶體裡執行程式碼(不落地成檔案)
  • 操作系統
  • 連 C2
  • 把指令編碼、混淆

二、預設的 PowerShell 是「盲區」

Windows 預設不太紀錄 Powershell 執行內容,需要自己在 Windows 裡面開啟設定

如果是去幫客戶做鑑識,預設很常不會開啟紀錄 Powershell 內容

實務調查裡,最常關注的通常是:

4104 — Script Block Logging

因為它能讓分析師看到 PowerShell 實際處理的 Script Block

設定 Powershell 教學: https://www.youtube.com/watch?v=hO4qBUadMe4
過去發生 Powershell 日誌被攻擊: https://nsfocusglobal.com/attack-and-defense-around-powershell-event-logging/
補充:就算某公司「沒有」主動開啟 4103/4104,有時日誌裡仍會零星出現這些事件(微軟內建的一些偵測機制會觸發)。所以分析第三方環境時,永遠去翻一下,可能有意外收穫。


4104 告訴我們:「它執行了什麼 Script。」

4103 則可以補充:「它呼叫了哪些 PowerShell 元件與命令。」

例如:

  • Invoke-Command
  • Get-Process
  • New-Item
  • Set-ItemProperty

這些資訊在建立 PowerShell 活動時間軸時很有價值。

尤其如果想知道:這個 Session 到底碰了哪些 Cmdlet?

4103 可以是很好的補充來源。

三、最後的救命稻草:PSReadLine

實務上很常處理客戶電腦,任何進階日誌都沒有開啟

最後救命稻草就是 PSReadLine

底下圖為自己電腦上看 PSReadLine 紀錄

參考微軟資料:https://learn.microsoft.com/en-us/powershell/module/psreadline/about/about_psreadline?view=powershell-7.6&viewFallbackFrom=powershell-7.2#command-history


藍隊視角:哪些 PowerShell 特徵值得 Hunting

底下列出常見高風險特徵


今日重點

  1. 攻擊者用 PowerShell(LOLBins),用合法工具做壞事,需要透過前後關係判斷是否惡意。
  2. 一定要開 4104 腳本區塊記錄,它連混淆後的真實內容都會錄下來。
  3. 沒開日誌時,PSReadLine 的 ConsoleHost_history.txt 是救命證物(但沒時間戳,需對時)。

明日預告

Day 11

我們探討當攻擊者入侵機器後,會嘗試關閉系統的:防禦。比如:

  • 關閉 Windows Defender
  • 繞過安全機制
  • 帶入自己的工具(BYOT)

我們會來探討這些「卸甲」動作會留下什麼痕跡。


上一篇
Day 09|感染途徑 3:網路釣魚與惡意 Office 文件
下一篇
Day 11|卸下防禦:關閉 Defender、繞過安全機制與 BYOT
系列文
從告警到結案報告:30 天勒索軟體事件應變實戰16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言