[笔记] 关于CreateProcessWithLogonW函数创建进程

函数介绍

https://learn.microsoft.com/zh-cn/windows/win32/api/winbase/nf-winbase-createprocesswithlogonw

cpp 复制代码
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
);

几种使用方法

使用存在的账号信息创建进程

使用空网络账号信息创建进程

所以即使账号信息实际不存在也可以创建进程,只是无权访问网络资源

cpp 复制代码
if (!CreateProcessWithLogonW(L"MalseclogonUser", L"MalseclogonDomain", L"MalseclogonPwd", LOGON_NETCREDENTIALS_ONLY, NULL, cmdline, 0, NULL, NULL, &startInfo, &procInfo)) {
	printf("CreateProcessWithLogonW() failed with error code %d \n", GetLastError());
} else {
	// the returned handles in procInfo are wrong and duped into the spoofed parent process, so we can't close handles or wait for process end.
	printf("Spoofed process %S created correctly as child of PID %d using CreateProcessWithLogonW()!", cmdline, pid);
}
相关推荐
ljt272496066133 分钟前
Compose笔记(六十八)--MutableStateFlow
android·笔记·android jetpack
强子感冒了43 分钟前
Java 学习笔记:File类核心API详解与使用指南
java·笔记·学习
别了,李亚普诺夫1 小时前
USB拓展坞-PCB设计学习笔记
笔记·学习
逑之1 小时前
C语言笔记14:结构体、联合体、枚举
c语言·开发语言·笔记
claider2 小时前
Vim User Manual 阅读笔记 User_03.txt move around
笔记·编辑器·vim
saoys2 小时前
Opencv 学习笔记:一文掌握四种经典图像滤波(均值 / 高斯 / 中值 / 双边)
笔记·opencv·学习
淬炼之火2 小时前
笔记:Cross Modal Fusion-Mamba
图像处理·笔记·计算机视觉·多模态·特征融合
逑之3 小时前
C语言笔记16:文件操作
c语言·笔记·单片机
wdfk_prog3 小时前
[Linux]学习笔记系列 -- 底层CPU与体系结构宏
linux·笔记·学习
逑之3 小时前
C语言笔记15:动态内存管理
c语言·网络·笔记