Skip to content
Suzu

【LOLBAS鐵人賽Day24】Cipher.exe:反鑑識清理工具

介紹 Windows 內建 cipher.exe 的 /w 參數如何三階段覆寫磁碟未使用空間,抹除已刪除檔案的殘留痕跡,並提供對應的稽核與偵測 IOCs。

Series
30 posts
View the complete series →
On this page

Cipher.exe 是 Windows 內建的加密工具,
他的**/w參數**可徹底覆寫已刪除檔案的磁碟空間,
讓鑑識人員難以還原任何痕跡。

Cipher.exe 介紹


cipher.exe 是 Windows 內建的工具,
主要是用來管理 NTFS 上用 EFS 加密的檔案跟資料夾。
功能有這些:

  • 加密/解密檔案、資料夾
  • 顯示檔案的加密狀態
  • 備份與還原 EFS 加密憑證
  • 徹底覆寫並清除磁碟區上已刪除檔案所占用的未使用空間

上面提到覆寫的功能,其實就是我們這篇的主要重點,
一般來說刪檔案的時候,
Windows 其實只是在檔案系統上的索引把它標記成「已刪除」,
然後釋放他佔用的空間,

但原始的 binary file 還是會保留在磁碟上,
直到新的資料來覆寫他,
所以我們就可以透過覆寫全部未佔用空間來完成反鑑識的清理。

工具特性


  • 路徑: C:\Windows\System32\cipher.exe
  • 濫用點: /w參數三階段覆寫(0x00→0xFF→隨機)
  • 優勢: 覆寫模式與 DoD 5220.22-M 的三趟覆寫概念相似,傳統硬碟上極難還原

核心攻擊Demo


攻擊的核心在於 cipher.exe 的 /w 參數。

cipher.exe /w:<directory_path>
  • /w (Wipe):這個參數會執行一個三階段的覆寫流程,來清除指定路徑所在磁碟區的所有未使用的空間:
    • 第一階段:寫入 0x00 (零)。
    • 第二階段:寫入 0xFF (一)。
    • 第三階段:寫入隨機數字。

這個流程的覆寫模式與美國國防部 DoD 5220.22-M 資料銷毀標準的三趟覆寫(0、1、隨機)概念相似,經過這三輪覆寫後,在傳統硬碟上原始資料基本上不可能再透過軟體或硬體方式還原。
不過要注意,Microsoft 官方文件並未聲稱 cipher.exe 通過 DoD 5220.22-M 認證(該標準還要求驗證程序,且現已多被 NIST SP 800-88 取代);而且在 SSD 上,因為 wear-leveling 與 over-provisioning 的關係,作業系統層級的覆寫並不保證資料真的被抹除。

Demo: 抹除已刪除的惡意工具

Step 1: 模擬一個殘留的惡意檔案

# 建立一個模擬的日誌檔
echo "Target system compromised" > C:\LOLBAS\cipher\log.txt

# 刪除這個檔案
del C:\LOLBAS\cipher\log.txt

Step 2: 開始反鑑識清理

# /w: 指定執行清理功能
# C:\LOLBAS\cipher\ : 指定一個目標路徑。cipher 會清理這個路徑所在的整個磁碟區未使用空間
cipher.exe /w:C:\LOLBAS\cipher\

過程裡面打開 task manager 應該就會看到 磁碟I/O 變超級高,
而且會花一段時間才完成,
這段時間 cipher 就是去把所以未佔用空間都覆寫過一輪了。

cipher.exe /w 執行時磁碟 I/O 飆高的工作管理員畫面

防禦措施


# 限制cipher執行
icacls C:\Windows\System32\cipher.exe /deny Everyone:(RX)

# 啟用命令稽核
auditpol /set /subcategory:"Process Creation" /success:enable

IOCs


  • cipher.exe執行時間超過30秒
  • 命令包含/w:參數
  • 磁碟I/O突然100%
  • 可用空間暫時降為0(cipher /w 會先建立暫存檔把未使用空間填滿再覆寫)

總結


Cipher /w 提供了接近軍規標準的資料銷毀效果,是攻擊者清理痕跡的實用工具。
在傳統硬碟上經過三階段覆寫後,鑑識工具基本上無法還原原始資料;
但對 SSD 等快閃儲存媒體,覆寫的效果會受到控制器行為影響,不能保證百分之百抹除。

今天的文章主要面向不是做攻擊的部分,
但清理也是很重要的一環,
希望可以這篇文章帶給大家幫助,
就這樣,明天見!

Share this page