查看 Windows 事件日志时,我看到提到了两种用户:主题用户名和目标用户名。
对于身份验证日志(例如 4624 登录事件),我理解主题用户名是执行身份验证的用户,即系统。而目标用户名是尝试进行身份验证的用户。
但是,对于进程创建(eventcode 4688)这样的日志,主体用户是谁,目标用户又是谁呢?
我唯一能想到的是,如果使用模拟令牌,那么主体可以是执行操作的用户,而目标可以是代表其执行操作的用户。但我不认为这是正确答案。
有任何想法吗?
答案1
这是事件 ID 4624:
"account was successfully logged on"
尝试登录的用户可能与登录的用户不同。
因此,我们有主题用户名和目标用户名。
这是事件 ID 4688:
"new process has been created"
某个用户正在启动某个新进程。因此,我们有主题用户名。
新进程可能由同一用户拥有。
那就是当使用创建进程A,这是很常见的。
我们还可以使用创建进程作为用户A&创建进程与登录名&创建进程WithTokenW,其中我们有目标用户名。
在这些情况下,主题用户名与目标用户名不同。
以下是 C++ 示例:
BOOL CreateProcessWithLogonW(
[in] LPCWSTR lpUsername,
[in, optional] LPCWSTR lpDomain,
[in] LPCWSTR lpPassword,
[in] DWORD dwLogonFlags,
[in, optional] LPCWSTR lpApplicationName,
[in, out, optional] LPWSTR lpCommandLine,
[in] DWORD dwCreationFlags,
[in, optional] LPVOID lpEnvironment,
[in, optional] LPCWSTR lpCurrentDirectory,
[in] LPSTARTUPINFOW lpStartupInfo,
[out] LPPROCESS_INFORMATION lpProcessInformation
);
在这种情况下,我们在此处有目标用户名详细信息:
[in] LPCWSTR lpUsername,
[in, optional] LPCWSTR lpDomain,
[in] LPCWSTR lpPassword,
[in] DWORD dwLogonFlags,
因此,即使事件 ID 为 4624 和事件 ID 为 4688,拥有主题用户名和目标用户名也是非常必要的。