通过注册表与API实现无感监控与内存转储
静默进程退出(Silent Process Exit)是Windows 7开始引入的进程监控机制,可捕获两种特殊终止行为:
ExitProcess()
的主动退出TerminateProcess()
强制结束该机制的核心价值在于:
Windows Registry Editor Version 5.00
; 启用进程监控标志
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Target.exe]
"GlobalFlag"=dword:00000200
; 配置转储行为
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\Target.exe]
"ReportingMode"=dword:00000002
"LocalDumpFolder"="C:\\Dump"
"DumpType"=dword:00000002
参数说明:
GlobalFlag=0x200
:激活FLG_MONITOR_SILENT_PROCESS_EXIT
标志ReportingMode=0x2
:启用本地转储(LOCAL_DUMP)DumpType=0x2
:完整内存转储(MiniDumpWithFullMemory)reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Target.exe" /v GlobalFlag /t REG_DWORD /d 0x200 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\Target.exe" /v ReportingMode /t REG_DWORD /d 0x2 /f
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\Target.exe" /v LocalDumpFolder /t REG_SZ /d "C:\Dump" /f
通过RtlReportSilentProcessExit
API模拟退出行为:
#include <Windows.h>
#include <iostream>
typedef NTSTATUS(NTAPI* RtlReportSilentProcessExit)(HANDLE, NTSTATUS);
int main() {
// 提权操作
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &hToken);
LookupPrivilegeValue(NULL, SE_DEBUG_NAME, &tkp.Privileges[0].Luid);
AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(tkp), NULL, NULL);
// 获取目标进程句柄
DWORD pid = 1234;
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
// 触发转储
auto func = (RtlReportSilentProcessExit)GetProcAddress(
GetModuleHandle(L"ntdll.dll"), "RtlReportSilentProcessExit");
func(hProcess, 0);
CloseHandle(hProcess);
return 0;
}
技术要点:
SeDebugPrivilege
权限!analyze -v // 自动分析崩溃原因
k // 显示调用堆栈
!peb // 查看进程环境块
!thread // 查看线程状态
在事件查看器中筛选:
Image File Execution Options
写入权限RtlReportSilentProcessExit
API调用1、 渗透测试:通过lsass.exe
内存转储提取NTLM哈希
2、软件调试:捕获服务进程异常退出现场
3、安全分析:检测隐蔽的进程终止行为
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。